Azure Key Vault titkos kódjainak használata az Azure Pipelinesban
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Key Vault lehetővé teszi, hogy a fejlesztők biztonságosan tárolják és kezeljék az olyan bizalmas információkat, mint az API-kulcsok, a hitelesítő adatok vagy a tanúsítványok. Az Azure Key Vault szolgáltatás kétféle tárolót támogat: tárolókat és felügyelt HSM-készleteket (hardveres biztonsági modul). A tárolók szoftveres és HSM-alapú kulcsokat, titkos kulcsokat és tanúsítványokat is tárolhatnak, míg a felügyelt HSM-készletek kizárólag a HSM által támogatott kulcsokat támogatják.
Az oktatóanyag során a következőket fogja elsajátítani:
- Azure Key Vault létrehozása az Azure CLI használatával
- Titkos kulcs hozzáadása és az Azure Key Vaulthoz való hozzáférés konfigurálása
- Titkos kódok használata a folyamatban
Előfeltételek
Egy Azure DevOps-szervezet és egy projekt. Ha még nem tette meg, hozzon létre egy szervezetet vagy projektet.
Azure-előfizetés. Hozzon létre ingyenes Azure-fiókot, ha még nem rendelkezik ilyen fiókkal.
A mintakód letöltése
Ha már rendelkezik saját adattárral, folytassa a következő lépésben. Ellenkező esetben importálja a következő mintaadattárat az Azure-adattárba.
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza az Adattár lehetőséget, majd az Importálás lehetőséget. Adja meg a következő adattár URL-címét, majd válassza az Importálás lehetőséget.
https://github.com/MicrosoftDocs/pipelines-dotnet-core
Azure Key Vault létrehozása;
Jelentkezzen be az Azure Portalra, majd válassza a Cloud Shell gombot a jobb felső sarokban.
Ha egynél több Azure-előfizetés van társítva a fiókjához, az alábbi paranccsal adjon meg egy alapértelmezett előfizetést. Az előfizetések listájának létrehozásához használhatja
az account list
.az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>
Állítsa be az alapértelmezett Azure-régiót. Az elérhető régiók listáját is létrehozhatja
az account list-locations
.az config set defaults.location=<YOUR_REGION>
Új erőforráscsoport létrehozása.
az group create --name <YOUR_RESOURCE_GROUP_NAME>
Hozzon létre egy új Azure Key Vaultot.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>
Hozzon létre egy új titkos kulcsot az Azure Key Vaultban.
az keyvault secret set \ --name <YOUR_SECRET_NAME> \ --value <YOUR_ACTUAL_SECRET> \ --vault-name <YOUR_KEY_VAULT_NAME>
Hitelesítés beállítása
Felhasználó által hozzárendelt felügyelt identitás létrehozása
Jelentkezzen be az Azure Portalra, majd keresse meg a Felügyelt identitások szolgáltatást a keresősávon.
Válassza a Létrehozás lehetőséget, és töltse ki a szükséges mezőket az alábbiak szerint:
- Előfizetés: Válassza ki az előfizetést a legördülő menüből.
- Erőforráscsoport: Válasszon ki egy meglévő erőforráscsoportot, vagy hozzon létre egy újat.
- Régió: Válasszon egy régiót a legördülő menüből.
- Név: Adja meg a felhasználó által hozzárendelt felügyelt identitás nevét.
Ha elkészült, válassza a Véleményezés + létrehozás lehetőséget .
Az üzembe helyezés befejezése után válassza az Ugrás az erőforrásra lehetőséget, majd másolja ki az előfizetés és az ügyfélazonosító értékeit a következő lépésekben.
Lépjen a Beállítások tulajdonságai elemre>, és másolja ki a felügyelt identitás bérlőazonosítójának értékét későbbi használatra.
Key Vault hozzáférési szabályzatok beállítása
Lépjen az Azure Portalra, és a keresősávon keresse meg a korábban létrehozott kulcstartót.
Válassza az Access-szabályzatok, majd a Létrehozás lehetőséget egy új szabályzat hozzáadásához.
A Titkos engedélyek területen jelölje be a Beolvasás és lista jelölőnégyzetet.
Válassza a Tovább lehetőséget, majd illessze be a korábban létrehozott felügyelt identitás ügyfél-azonosítóját a keresősávba. Válassza ki a felügyelt identitást.
Válassza a Tovább, majd a Tovább elemet még egyszer.
Tekintse át az új szabályzatokat, majd válassza a Létrehozás lehetőséget, ha elkészült.
Szolgáltatáskapcsolat létrehozása
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Projektbeállítások>szolgáltatáskapcsolatok lehetőséget, majd válassza az Új szolgáltatáskapcsolat lehetőséget egy új szolgáltatáskapcsolat létrehozásához.
Válassza az Azure Resource Managert, majd a Tovább gombot.
Identitástípus esetén válassza a felügyelt identitást a legördülő menüben.
Az 1. lépés: Felügyelt identitás részleteihez töltse ki a mezőket az alábbiak szerint:
Előfizetés felügyelt identitáshoz: Válassza ki a felügyelt identitást tartalmazó előfizetést.
Felügyelt identitás erőforráscsoportja: Válassza ki a felügyelt identitást üzemeltető erőforráscsoportot.
Felügyelt identitás: Válassza ki a felügyelt identitást a legördülő menüből.
A 2. lépésben: Azure Scope, töltse ki a mezőket az alábbiak szerint:
Szolgáltatási kapcsolat hatókörszintje: Válassza az Előfizetés lehetőséget.
Szolgáltatáskapcsolatra vonatkozó előfizetés: Válassza ki azt az előfizetést, amelyhez a felügyelt identitás hozzáfér.
Szolgáltatáskapcsolat erőforráscsoportja: (Nem kötelező) Adja meg, hogy a felügyelt identitás hozzáférése egyetlen erőforráscsoportra legyen korlátozva.
3. lépés: Szolgáltatáskapcsolat részletei:
Szolgáltatáskapcsolat neve: Adja meg a szolgáltatáskapcsolat nevét.
Szolgáltatásfelügyeleti referencia: (nem kötelező) Egy ITSM-adatbázis környezeti információi.
Leírás: (Nem kötelező) Adjon meg egy leírást.
A Biztonság területen jelölje be az Összes folyamat hozzáférési engedélyének megadása jelölőnégyzetet, hogy az összes folyamat használhassa ezt a szolgáltatáskapcsolatot. Ha nem választja ezt a beállítást, manuálisan kell hozzáférést adnia a szolgáltatáskapcsolatot használó összes folyamathoz.
Válassza a Mentés lehetőséget a szolgáltatáskapcsolat érvényesítéséhez és létrehozásához.
Kulcstartó titkos kulcsának elérése a folyamatból
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza a Folyamatok, majd az Új folyamat lehetőséget.
Válassza az Azure Repos Git (YAML) lehetőséget, majd válassza ki az adattárat.
Válassza ki a Starter-folyamatsablont .
Az alapértelmezett folyamat tartalmaz egy echo parancsokat futtató szkriptet. Ezekre nincs szükség, hogy törölhessük őket.
Adja hozzá az AzureKeyVault-feladatot, és cserélje le a helyőrzőket a korábban létrehozott szolgáltatáskapcsolat nevére és a kulcstartó nevére. A YAML-fájlnak az alábbi kódrészlethez kell hasonlítania:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false
Vegyük fel a következő feladatokat a titkos kód másolásához és közzétételéhez. Ez a példa csak bemutató célokra szolgál, és éles környezetben nem implementálható.
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 displayName: Create file inputs: script: 'echo $(SECRET_NAME) > secret.txt' - task: CopyFiles@2 displayName: Copy file inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: Publish Artifact inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
Válassza a Mentés és futtatás lehetőséget, majd jelölje ki még egyszer a módosítások véglegesítéséhez és a folyamat aktiválásához. Előfordulhat, hogy a rendszer megkéri, hogy engedélyezze a folyamat hozzáférését az Azure-erőforrásokhoz, ha a rendszer az Engedélyezés lehetőséget kéri. Csak egyszer kell jóváhagynia a folyamatot.
Válassza ki a CmdLine feladatot a naplók megtekintéséhez.
Miután a folyamatfuttatás befejeződött, térjen vissza a folyamat összegzéséhez, és válassza ki a közzétett összetevőt.
A letöltéshez válassza a drop>secret.txt lehetőséget.
Nyissa meg az imént letöltött szövegfájlt, a szövegfájlnak tartalmaznia kell az Azure Key Vault titkos kódját.
Figyelmeztetés
Ez az oktatóanyag csak oktatási célokra szolgál. A biztonsági ajánlott eljárásokról és a titkos kulcsok biztonságos használatáról az Azure Key Vault segítségével a kiszolgálóalkalmazások titkos kulcsainak kezelése című témakörben olvashat.
Az erőforrások eltávolítása
A létrehozott erőforrások törléséhez kövesse az alábbi lépéseket:
Ha létrehozott egy új szervezetet a projekt üzemeltetéséhez, tekintse meg , hogyan törölheti a szervezetet, egyébként törölheti a projektet.
Az oktatóanyag során létrehozott összes Azure-erőforrás egyetlen erőforráscsoportban van üzemeltetve. Futtassa az alábbi parancsot az erőforráscsoport és az összes erőforrás törléséhez.
az group delete --name <YOUR_RESOURCE_GROUP_NAME>
GYIK
K: A következő hibaüzenet jelenik meg: "a felhasználó vagy csoport nem rendelkezik titkos kódok listájának engedélyével", mit tegyek?
Válasz: Ha hibaüzenet jelenik meg, amely azt jelzi, hogy a felhasználó vagy csoport nem rendelkezik titkos kulcslistára vonatkozó engedéllyel a Key Vaultban, futtassa az alábbi parancsokat, hogy engedélyezze az alkalmazás számára a kulcs vagy titkos kulcs elérését az Azure Key Vaultban:
az account set --subscription <YOUR_SUBSCRIPTION_ID>
az login
$spnObjectId = az ad sp show --id <YOUR_SERVICE_PRINCIPAL_ID>
az keyvault set-policy --name <YOUR_KEY_VAULT_NAME> --object-id $spnObjectId --secret-permissions get list