Megosztás a következőn keresztül:


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.

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. 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;

  1. Jelentkezzen be az Azure Portalra, majd válassza a Cloud Shell gombot a jobb felső sarokban.

  2. 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>
    
  3. Á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>
    
  4. Új erőforráscsoport létrehozása.

    az group create --name <YOUR_RESOURCE_GROUP_NAME>
    
  5. Hozzon létre egy új Azure Key Vaultot.

    az keyvault create \
      --name <YOUR_KEY_VAULT_NAME> \
      --resource-group <YOUR_RESOURCE_GROUP_NAME>
    
  6. 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

  1. Jelentkezzen be az Azure Portalra, majd keresse meg a Felügyelt identitások szolgáltatást a keresősávon.

  2. 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.
  3. Ha elkészült, válassza a Véleményezés + létrehozás lehetőséget .

  4. 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.

  5. 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

  1. Lépjen az Azure Portalra, és a keresősávon keresse meg a korábban létrehozott kulcstartót.

  2. Válassza az Access-szabályzatok, majd a Létrehozás lehetőséget egy új szabályzat hozzáadásához.

  3. A Titkos engedélyek területen jelölje be a Beolvasás és lista jelölőnégyzetet.

  4. 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.

  5. Válassza a Tovább, majd a Tovább elemet még egyszer.

  6. 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

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. 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.

  3. Válassza az Azure Resource Managert, majd a Tovább gombot.

  4. Identitástípus esetén válassza a felügyelt identitást a legördülő menüben.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. Válassza a Mentés lehetőséget a szolgáltatáskapcsolat érvényesítéséhez és létrehozásához.

    Képernyőkép a felügyelt identitás ARM-szolgáltatáskapcsolat létrehozásáról.

Kulcstartó titkos kulcsának elérése a folyamatból

  1. Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.

  2. Válassza a Folyamatok, majd az Új folyamat lehetőséget.

  3. Válassza az Azure Repos Git (YAML) lehetőséget, majd válassza ki az adattárat.

  4. Válassza ki a Starter-folyamatsablont .

  5. Az alapértelmezett folyamat tartalmaz egy echo parancsokat futtató szkriptet. Ezekre nincs szükség, hogy törölhessük őket.

  6. 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
    
  7. 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'
    
  8. 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.

  9. Válassza ki a CmdLine feladatot a naplók megtekintéséhez.

    Képernyőkép a parancssori feladatnaplókról.

  10. 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.

    Képernyőkép a közzétett összetevőről az összegzés lapon.

  11. A letöltéshez válassza a drop>secret.txt lehetőséget.

    Képernyőkép a közzétett összetevő letöltéséről.

  12. 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:

  1. 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.

  2. 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