Správa tajných kódů na GitHubu
Tajemství jsou proměnné, které vytvoříte v organizaci, úložišti nebo prostředí úložiště. Tajné kódy jsou k dispozici pro použití v pracovních postupech GitHub Actions. GitHub Actions může číst tajný kód jenom v případě, že tajný kód explicitně zahrnete do pracovního postupu.
U tajných kódů uložených na úrovni organizace můžete pomocí zásad přístupu řídit, která úložiště můžou používat tajné kódy organizace. Tajné kódy na úrovni organizace umožňují sdílet tajné kódy mezi více úložišti. To snižuje potřebu vytváření duplicitních tajných kódů. Aktualizace tajného kódu organizace v jednom umístění také zajišťuje, aby se změna projevila ve všech pracovních postupech úložiště, které tento tajný klíč používají.
U tajných kódů uložených na úrovni prostředí můžete povolit požadovaným kontrolorům řídit přístup k tajným kódům. Úloha pracovního postupu nemá přístup k tajným údajům prostředí, pokud ji neschválí povinní schvalovatelé.
Poznámka:
Pracovní postupy můžete nakonfigurovat tak, aby se ověřily přímo v Azure pro přístup k prostředkům.
Pojmenování vašich tajemství
Na tajná jména platí následující pravidla:
- Názvy můžou obsahovat pouze alfanumerické znaky (
[a-z],[A-Z],[0-9]) nebo podtržítka (_). Mezery nejsou povolené. - Názvy nesmí začínat předponou
GITHUB_. - Názvy nesmí začínat číslem.
- Názvy nerozlišují malá a velká písmena.
- Názvy musí být jedinečné na úrovni, na které se vytvářejí.
Abyste zajistili, že GitHub vaše tajemství v protokolech skryje, nepoužívejte jako hodnoty tajemství strukturovaná data. Vyhněte se například vytváření tajných kódů, které obsahují JSON nebo kódované objekty blob Gitu.
Přístup k vašim tajemstvím
Nastavte tajný kód jako vstupní nebo proměnnou prostředí v souboru pracovního postupu, aby byl dostupný pro akci. Pokud máte přístup k úpravám souboru, můžete v souboru pracovního postupu používat a číst tajné kódy. Další informace najdete v accessových oprávněních na GitHubu.
Tajné kódy organizace a úložiště se čtou, když je spuštěný pracovní postup ve frontě, a tajné kódy prostředí se čtou při spuštění úlohy odkazující na prostředí. Tajné kódy můžete spravovat také pomocí rozhraní REST API.
Omezení oprávnění přihlašovacích údajů
Doporučuje se udělit minimální možná oprávnění. Například místo použití osobních přihlašovacích údajů použijte klíče pro nasazení nebo účet služby. Pokud je to vše potřebné, zvažte udělení oprávnění jen pro čtení a omezte přístup co nejvíce.
Při generování osobního přístupového tokenu (classic) vyberte nejmenší rozsahy, které jsou potřeba. Při generování jemně odstupňovaného osobního přístupového tokenu vyberte minimální oprávnění a požadovaný přístup k úložišti.
Vytváření tajemství
Pokud chcete vytvořit tajné kódy nebo proměnné na GitHubu pro úložiště osobních účtů, musíte být vlastníkem úložiště. Pokud chcete vytvořit tajné kódy nebo proměnné na GitHubu pro úložiště organizace, musíte mít admin přístup. Pokud chcete vytvořit tajné kódy nebo proměnné pro úložiště osobních účtů nebo úložiště organizace prostřednictvím rozhraní REST API, musíte mít přístup spolupracovníka.
Tajné kódy je možné vytvořit pomocí:
- V horním navigačním panelu úložiště vyberte Nastavení .
- V části Zabezpečení v levém navigačním podokně vyberte rozevírací seznam Tajné kódy a proměnné .
- Vyberte Akce pro přístup na stránku s tajnými klíči a proměnnými akcí.
Použití tajných kódů v pracovním postupu
Pokud chcete poskytnout akci s tajným kódem jako vstupní nebo proměnnou prostředí, můžete použít secrets kontext pro přístup k tajným kódům vytvořeným v úložišti. Následující kód ukazuje příklad přístupu k tajným kódům v pracovním postupu.
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}
Tajné kódy se nedají přímo odkazovat v if: podmíněných výrazech. Zvažte nastavení tajných kódů jako proměnných prostředí na úrovni úlohy a následné odkazování na proměnné prostředí k podmíněnému spuštění kroků v úloze.
Pokud hodnota tajného kódu není nastavená, návratová hodnota výrazu odkazujícího na tajný klíč (například ${{ secrets.SuperSecret }} v příkladu) je prázdný řetězec.