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


Az Azure Key Vault titkos kulcsainak 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.

Adattár létrehozása

Ha már rendelkezik saját adattárral, folytassa a következő lépésben. Ellenkező esetben kövesse az alábbi utasításokat az adattár inicializálásához. Ezt az Azure-adattárat fogjuk használni a folyamat beállításához.

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

  2. Válassza az Adattár lehetőséget, majd az Inicializálás lehetőséget a fő ág inicializálásához egy README-vel.

    Képernyőkép egy adattár README-fájllal való inicializálásáról.

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>
    

Key Vault hozzáférési szabályzatok beállítása

Az Azure Key Vault eléréséhez be kell állítanunk egy szolgáltatásnevet, hogy hozzáférést biztosítsunk az Azure Pipelineshoz. Az alábbi útmutatót követve hozzon létre egy egyszerű szolgáltatást az Azure CLI-vel, majd folytassa az ebben a szakaszban ismertetett következő lépésekkel.

  1. Lépjen az Azure Portalra, majd a keresősáv használatával keresse meg a korábban létrehozott kulcstartót.

    Képernyőkép az Azure Key Vault kereséséről.

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

  3. A Titkos engedélyek területen válassza a Beolvasás és a Lista lehetőséget.

  4. Válassza a Tovább lehetőséget, majd válassza ki a korábban létrehozott szolgáltatásnevet. A szolgáltatásnév olyan objektum, amely egy olyan alkalmazást vagy szolgáltatást jelöl, amely hozzáférést kér az Azure-erőforrásokhoz.

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

  6. Tekintse át a szabályzatokat, majd válassza a Létrehozás lehetőséget, ha elkészült.

Feljegyzés

Az Azure szerepköralapú hozzáférés-vezérlést (Azure RBAC) használó Azure Key Vaultok nem támogatottak.

Szerepkör-hozzárendelés hozzáadása

A következő lépésben létrehozunk egy ARM-szolgáltatáskapcsolatot a szolgáltatásnév használatával. A kapcsolat ellenőrzése előtt olvasási hozzáférést kell biztosítanunk a szolgáltatásnévnek az előfizetés szintjén:

  1. Navigálás az Azure Portalra

  2. Válassza az Előfizetések lehetőséget a bal oldali navigációs panelen, majd keresse meg és válassza ki az előfizetést.

  3. Válassza a Hozzáférés-vezérlés, majd a Szerepkör-hozzárendelés hozzáadása>lehetőséget.

    Képernyőkép arról, hogyan vehet fel új szerepkör-hozzárendelést az előfizetés szintjén.

  4. Válassza a Szerepkör lap Olvasó elemét, majd a Tovább gombot.

  5. Válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget, majd válassza a Tagok kijelölése lehetőséget.

    Képernyőkép arról, hogyan adhat hozzá tagokat a szerepkör-hozzárendeléshez az Azure-ban.

  6. A keresősávon keresse meg a szolgáltatásnevet, majd jelölje ki a "+" jelet, majd kattintson a Kiválasztás gombra.

  7. Válassza a Véleményezés + hozzárendelés lehetőséget, tekintse át a beállításokat, majd válassza a Véleményezés + hozzárendelés lehetőséget még egyszer a lehetőségek megerősítéséhez és a szerepkör-hozzárendelés hozzáadásához.

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 lehetőséget.

  4. Válassza a Szolgáltatásnév (manuális) lehetőséget, majd a Tovább gombot.

  5. Válassza az Azure Cloud for Environment és az Előfizetés lehetőséget a hatókörszinthez, majd adja meg az előfizetés azonosítóját és az előfizetés nevét.

  6. Töltse ki a következő mezőket a szolgáltatásnév létrehozásakor kapott információkkal, majd válassza az Ellenőrzés , ha elkészült:

    • Szolgáltatásnév azonosítója: A szolgáltatásnév appId azonosítója.
    • Egyszerű szolgáltatáskulcs: A szolgáltatásnév jelszava.
    • Bérlőazonosító: A szolgáltatásnév bérlője.
  7. Ha az ellenőrzés sikeres volt, adjon meg egy nevet és leírást (nem kötelező) a szolgáltatáskapcsolathoz, majd jelölje be a Hozzáférési engedély megadása az összes folyamathoz jelölőnégyzetet.

  8. Ha elkészült, válassza az Ellenőrzés és mentés lehetőséget.

    Képernyőkép egy új Azure Resource Manager-szolgáltatáskapcsolat szolgáltatásnévvel történő létrehozásáról.

  1. Jelentkezzen be az Azure DevOps-gyűjteménybe, és lépjen a projekthez.

  2. Válassza a Projektbeállítások>Szolgáltatáskapcsolatok>Új szolgáltatáskapcsolat lehetőséget, majd az Azure Resource Managert választva hozzon létre egy új ARM-szolgáltatáskapcsolatot.

  3. Adjon nevet a szolgáltatáskapcsolatnak, majd válassza az Azure Cloud for Environment és az Előfizetés lehetőséget a hatókörszinthez.

  4. Adja meg az előfizetés azonosítóját és az előfizetés nevét.

  5. Töltse ki a következő mezőket a szolgáltatásnév létrehozásakor kapott információkkal, majd válassza a Kapcsolat ellenőrzése elemet, amikor elkészült:

    • Szolgáltatásnév ügyfélazonosítója: A szolgáltatásnév appId azonosítója.
    • Egyszerű szolgáltatáskulcs: A szolgáltatásnév jelszava.
    • Bérlőazonosító: A szolgáltatásnév bérlője.
  6. Jelölje be az Összes folyamat használatának engedélyezése jelölőnégyzetet , majd ha végzett, válassza az Ok gombot .

    Képernyőkép arról, hogyan hozható létre új ARM-szolgáltatáskapcsolat szolgáltatásnévvel az Azure DevOps Server 2019-ben.

Új folyamat létrehozása

  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 a Klasszikus szerkesztő használata klasszikus folyamat létrehozásához lehetőséget.

  4. Válassza az Azure Repos Git lehetőséget, válassza ki az adattárat és az alapértelmezett ágat, majd válassza a Folytatás lehetőséget.

  5. Válassza ki a .Net Desktop-folyamatsablont .

  6. Ebben a példában csak az utolsó két tevékenységre lesz szükségünk. Nyomja le a CTRL billentyűt, majd jelölje ki az első öt feladatot, kattintson a jobb gombbal, és törölje a kijelölt tevékenységek eltávolítása parancsot .

    Képernyőkép több folyamattevékenység törléséről.

  7. Válassza ki + az új feladat hozzáadásához. Keresse meg a parancssorifeladatot, jelölje ki, majd a Hozzáadás gombra kattintva adja hozzá a folyamathoz. A hozzáadás után konfigurálja az alábbiak szerint:

    • Megjelenítendő név: Fájl létrehozása
    • Szkript: echo $(YOUR_SECRET_NAME) > secret.txt

    Képernyőkép a parancssori feladat konfigurálásáról.

  8. Válassza ki + az új feladat hozzáadásához. Keresse meg az Azure Key Vault-feladatot, jelölje ki, majd a Hozzáadás* lehetőséget választva vegye fel a folyamatba. A hozzáadás után konfigurálja az alábbiak szerint:

    • Megjelenítendő név: Azure Key Vault
    • Azure-előfizetés: Válassza ki a korábban létrehozott egyszerű szolgáltatáskapcsolatot
    • Key Vault: válassza ki a kulcstartót
    • Titkos kódszűrő: A titkos kódok neveinek vesszővel tagolt listája, vagy hagyja * a titkos kulcsok letöltéséhez a kijelölt kulcstartóból

    Képernyőkép az Azure Key Vault-feladat klasszikus folyamatokban való beállításáról.

  9. Válassza ki a Fájlok másolása feladatot, és töltse ki a szükséges mezőket az alábbiak szerint:

    • Megjelenítendő név: Fájl másolása
    • Tartalom: secret.txt
    • Célmappa: $(build.artifactstagingdirectory)

    Képernyőkép a másolási fájlok feladatának beállításáról a klasszikus folyamatokban.

  10. Válassza ki az Összetevők közzététele feladatot, és töltse ki a szükséges mezőket az alábbiak szerint:

    • Megjelenítendő név: Összetevő közzététele
    • Közzétételi útvonal: $(build.artifactstagingdirectory)
    • Összetevő neve: drop
    • Összetevő közzétételi helye: Azure Pipelines

    Képernyőkép a közzétételi összetevők feladatának beállításáról a klasszikus folyamatokban.

  11. Válassza a Mentés és az üzenetsor lehetőséget, majd válassza a Futtatás lehetőséget a folyamat futtatásához.

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

  13. Válassza a drop>secret.txt a közzétett összetevő letöltéséhez.

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

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

  1. Jelentkezzen be az Azure DevOps-gyűjteménybe, és lépjen a projekthez.

  2. Válassza a Folyamatok, majd a Buildek lehetőséget.

  3. Válassza az Új>buildfolyamat lehetőséget.

  4. Válassza a Klasszikus szerkesztő használata új klasszikus buildelési folyamat létrehozásához lehetőséget.

  5. Válassza az Azure Repos Git lehetőséget, válassza ki az adattárat és az alapértelmezett ágat, majd válassza a Folytatás lehetőséget.

  6. Válassza ki a .Net Desktop-folyamatsablont , majd válassza az Alkalmaz lehetőséget.

  7. Ebben a példában csak az utolsó két tevékenységre lesz szükségünk. Nyomja le a CTRL billentyűt, majd jelölje ki az első öt feladatot, kattintson a jobb gombbal, és törölje a kijelölt tevékenységek eltávolítása parancsot .

    Képernyőkép arról, hogyan törölhet több folyamatfeladatot a klasszikus folyamatokban az Azure DevOps Server 2019-ben.

  8. Válassza ki + az új feladat hozzáadásához. Keresse meg a parancssorifeladatot, jelölje ki, majd a Hozzáadás gombra kattintva adja hozzá a folyamathoz. A hozzáadás után konfigurálja az alábbiak szerint:

    • Megjelenítendő név: Fájl létrehozása
    • Szkript: echo $(YOUR_SECRET_NAME) > secret.txt

    Képernyőkép a parancssori feladat konfigurálásáról a klasszikus folyamatokban az Azure DevOps Server 2019-ben.

  9. Válassza ki + az új feladat hozzáadásához. Keresse meg az Azure Key Vault-feladatot, jelölje ki, majd a Hozzáadás* lehetőséget választva vegye fel a folyamatba. A hozzáadás után konfigurálja az alábbiak szerint:

    • Megjelenítendő név: Azure Key Vault
    • Azure-előfizetés: Válassza ki a korábban létrehozott egyszerű szolgáltatáskapcsolatot
    • Key Vault: válassza ki a kulcstartót
    • Titkos kódszűrő: A titkos kódok neveinek vesszővel tagolt listája, vagy hagyja * a titkos kulcsok letöltéséhez a kijelölt kulcstartóból

    Képernyőkép arról, hogyan állíthatja be az Azure Key Vault-feladatot egy klasszikus folyamatban az Azure DevOps Server 2019-ben.

  10. Válassza ki a Fájlok másolása feladatot, és töltse ki a szükséges mezőket az alábbiak szerint:

    • Megjelenítendő név: Fájl másolása
    • Tartalom: secret.txt
    • Célmappa: $(build.artifactstagingdirectory)

    Képernyőkép a másolási fájlok feladatának beállításáról a klasszikus folyamatokban az Azure DevOps Server 2019-ben.

  11. Válassza ki az Összetevők közzététele feladatot, és töltse ki a szükséges mezőket az alábbiak szerint:

    • Megjelenítendő név: Összetevő közzététele
    • Közzétételi útvonal: $(build.artifactstagingdirectory)
    • Összetevő neve: drop
    • Összetevő közzétételi helye: Azure Pipelines

    Képernyőkép a közzétételi összetevők feladatának beállításáról a klasszikus folyamatokban az Azure DevOps Server 2019-ben.

  12. Válassza a Mentés & üzenetsor lehetőséget, majd a Mentés > üzenetsor lehetőséget a buildelési folyamat futtatásához.

  13. Miután a folyamatfuttatás befejeződött, válassza az Összetevők elemet, majd válassza az elvetést.

  14. Az újonnan megnyitott ablakban válassza a drop>secret.txt, a három pont ikon (...), majd a letöltés lehetőséget a szövegfájl mentéséhez.

  15. Nyissa meg az imént letöltött szövegfájlt, amely tartalmazza az Azure-kulcstartó 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:

$ErrorActionPreference="Stop";
$Credential = Get-Credential;
Connect-AzAccount -SubscriptionId <YOUR_SUBSCRIPTION_ID> -Credential $Credential;
$spn=(Get-AzureRmADServicePrincipal -SPN <YOUR_SERVICE_PRINCIPAL_ID>);
$spnObjectId=$spn.Id;
Set-AzureRmKeyVaultAccessPolicy -VaultName key-vault-tutorial -ObjectId $spnObjectId -PermissionsToSecrets get,list;