Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du kommer åt resurser som lagringsplatser eller Azure-resurser under anpassningsprocessen måste du autentisera på ett säkert sätt. Du kan referera till Azure Key Vault-hemligheter i dina anpassningsfiler för att undvika att exponera känslig information, och du kan använda tjänstens huvudnamn för att autentisera till Azure för säker resursåtkomst. Den här artikeln beskriver hur du hanterar och kommer åt resurser på ett säkert sätt under anpassningen av dev box.
Använda key vault-hemligheter i anpassningsfiler
Använd hemligheter från Azure Key Vault i yaml-anpassningar för att klona privata lagringsplatser eller köra uppgifter som kräver en åtkomsttoken. I en anpassningsfil använder du till exempel en personlig åtkomsttoken (PAT) som lagras i Azure Key Vault för att få åtkomst till en privat lagringsplats.
Både team- och användaranpassningar stöder hämtning av hemligheter från ett nyckelvalv. Teamanpassningar, som använder bilddefinitionsfiler, definierar basavbildningen för utvecklingsrutan med parametern image och listar de uppgifter som körs när en utvecklingsruta skapas. Användaranpassningar visar de uppgifter som körs när en utvecklingsruta skapas.
Om du vill använda en hemlighet, som en PAT, i dina anpassningsfiler lagrar du den som en nyckelvalvshemlighet. I följande exempel visas hur du refererar till en nyckelvalvshemlighet i båda typerna av anpassningar.
Konfigurera nyckelvalvsåtkomst för anpassningar
Om du vill konfigurera nyckelvalvshemligheter för användning i ditt team eller dina användaranpassningar kontrollerar du att Dev Center-projektets hanterade identitet har rollen Key Vault Secrets User i nyckelvalvet.
Om ditt nyckelvalv är privat kan du låta betrodda Microsoft-tjänster kringgå brandväggen eftersom Dev Center ännu inte stöder tjänsttaggar.
Följande skärmbild visar alternativet att tillåta betrodda Microsoft-tjänster att kringgå brandväggen i Azure Key Vault-inställningar.
Mer information om hur du låter betrodda Microsoft-tjänster kringgå brandväggen finns i Konfigurera nätverksinställningar för Azure Key Vault.
Ytterligare konfiguration för användaranpassningar
Så här konfigurerar du key vault-hemligheter för användaranpassningar:
- Se till att Dev Center-projektets hanterade identitet har både rollerna Key Vault Reader och Key Vault Secrets User i ditt nyckelvalv.
- Bevilja rollen Key Vault Secrets User för hemligheten till varje användare eller grupp som behöver den under anpassningen av Dev Box, inklusive dev center-hanterad identitet, administratörskonton och andra nödvändiga användare eller grupper.
Exempel på teamanpassningar
Den här syntaxen använder en nyckelvalvshemlighet (PAT) i en bilddefinitionsfil.
KEY_VAULT_SECRET_URI är URI:n för hemligheten i ditt nyckelvalv.
$schema: "<SCHEMA_VERSION>"
name: "<IMAGE_DEFINITION_NAME>"
image: "<BASE_IMAGE>"
description: "<DESCRIPTION>"
tasks:
- name: <TASK_NAME>
description: <TASK_DESCRIPTION>
parameters:
repositoryUrl: <REPOSITORY_URL>
directory: <DIRECTORY_PATH>
pat: "{{<KEY_VAULT_SECRET_URI>}}"
I det här exemplet används uppgiften git-clone :
$schema: "1.0"
name: "example-image-definition"
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
description: "Clones a public example Git repository"
tasks:
- name: git-clone
description: Clone this repository into C:\workspaces
parameters:
repositoryUrl: https://github.com/example-org/example-repo.git
directory: C:\workspaces
pat: "{{https://contoso-vault.vault.azure.net/secrets/github-pat}}"
Eller så kan du referera till hemligheten i linje med en inbyggd uppgift, som du ser i följande exempel:
$schema: "1.0"
name: "example-image-definition"
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
description: "Clones a public example Git repository"
tasks:
- name: git-clone
description: Clone this repository into C:\Workspaces
parameters:
command: MyCommand –MyParam "{{KEY_VAULT_SECRET_URI}}"
Exempel på användaranpassningar
Med användaranpassningar kan du hämta en Azure DevOps-token för att klona privata lagringsplatser utan att uttryckligen ange en PAT från nyckelvalvet. Tjänsten byter automatiskt ut din Azure-token mot en Azure DevOps-token vid körning.
Det här exemplet visar ADO-förkortningen ({{ado://...}}). Tjänsten byter ut din Azure-token mot en Azure DevOps-token vid körning, så du behöver inte lagra en PAT i Key Vault.
$schema: "1.0"
tasks:
- name: git-clone
description: Clone this repository into C:\workspaces
parameters:
repositoryUrl: https://dev.azure.com/example-org/MyProject/_git/example-repo
directory: C:\workspaces
pat: '{{ado://example-org}}'
Dev Box Visual Studio Code-tillägget och Dev Box CLI stöder inte injicering av känslig information i anpassade arbetsflöden för testning av interna loopar.
Autentisera till Azure-resurser med tjänstens huvudnamn
Med tjänstens huvudnamn kan du autentisera på ett säkert sätt mot Azure-resurser utan att exponera användarautentiseringsuppgifter. Skapa ett huvudnamn för tjänsten, tilldela de roller som krävs och använd det för att autentisera i en anpassningsaktivitet. Hydratisera lösenordet från Key Vault vid anpassningen med hjälp av den befintliga funktionen hemligheter.
Skapa ett huvudnamn för tjänsten i Azure Active Directory (Azure AD) och tilldela det de nödvändiga rollerna för de resurser som du vill använda.
Utdata är ett JSON-objekt som innehåller tjänsthuvudnamnets appId, displayName, lösenord och tenant, som används för autentisering och auktorisering i Azure Automation-scenarier.
Exempel: CLI-utdata när du skapar ett huvudnamn för tjänsten. Lagra det returnerade lösenordet i Key Vault och bevilja rollen Key Vault Secrets User till Dev Center-projektidentiteten så att anpassningen kan hydrera hemligheten vid körning.
$ az ad sp create-for-rbac -n DevBoxCustomizationsTest { "appId": "...", "displayName": "DevBoxCustomizationsTest", "password": "...", "tenant": "..." }Lagra lösenordet som returneras ovan i en Key Vault-hemlighet, så här:
https://mykeyvault.vault.azure.net/secrets/passwordI Key Vault beviljar du rollen Key Vault Secrets User till projektidentiteten.
Nu kan du autentisera i anpassningsuppgifter och uppdatera lösenordet för tjänsthuvudman från Key Vault under anpassningstiden.
Exempel: Ladda ned en fil från Azure Storage
I följande exempel visas hur du laddar ned en fil från ett lagringskonto. YAML-kodfragmentet definierar en Dev Box-anpassning som utför två huvudsakliga uppgifter:
Installerar Azure CLI med hjälp av winget-pakethanteraren.
Kör ett PowerShell-skript som:
- Loggar in på Azure med ett huvudnamn för tjänsten med lösenordet säkert hämtat från Azure Key Vault.
- Laddar ned en blob (fil) från ett Azure Storage-konto med hjälp av den autentiserade sessionen.
Exempel: anpassning som återfuktar ett lösenord för tjänstens huvudnamn från Key Vault och använder det för att autentisera och ladda ned en blob från Azure Storage. Lagra lösenordet för tjänstens autentiseringsuppgifter i Key Vault och se till att projektidentiteten har rollen Key Vault Secrets User.
$schema: "1.0" name: "devbox-customization" tasks: - name: ~/winget parameters: package: Microsoft.AzureCLI - name: ~/powershell parameters: command: | az login --service-principal ` --username <appId> ` --password {{https://mykeyvault.vault.azure.net/secrets/password}} ` --tenant <tenantId> az storage blob download ` --account-name <storage_account_name> ` --container-name <container_name> ` --name <blob_name> ` --file <local_file_path> ` --auth-mode login
Med den här konfigurationen kan du automatisera säker användning av Azure-resurser under Dev Box-etableringen utan att exponera autentiseringsuppgifter i skriptet.
Exempel: Ladda ned en artefakt från Azure DevOps
Hämta kompileringsartefakter från Azure DevOps (ADO) med hjälp av en tjänsteprincip för autentisering. Lägg till tjänstens huvudansvars Program-ID (appId) som en användare i din Azure DevOps-organisation och tilldela sedan huvudansvaret till gruppen Läsare. Det här steget ger de behörigheter som krävs för att använda byggartefakter.
När du har konfigurerat de här stegen använder du autentiseringsuppgifterna för tjänsthuvudmannen i anpassningsuppdrag för att autentisera och ladda ned artefakter på ett säkert sätt från Azure DevOps.
Lägga till ett huvudnamn för tjänsten i en Azure DevOps-organisation
Så här lägger du till ett huvudnamn för tjänsten i din Azure DevOps-organisation:
Logga in på din Azure DevOps-organisation och öppna Organisationsinställningar.
I menyn väljer du Användare.
På sidan Användare väljer du Lägg till användare.
I dialogrutan Lägg till nya användare anger du följande information:
- Användare: Ange tjänstens huvudnamns program-ID (appId) som användarens e-post.
- Åtkomstnivå: Välj Grundläggande.
- Lägg till i projektet: Välj det projekt där du vill lägga till tjänstens huvudnamn.
- Azure DevOps-grupper: Tilldela tjänstens huvudnamn till gruppen Läsare .
Slutför processen för att bevilja nödvändiga behörigheter.
Mer information om hur du lägger till användare i DevOps-organisationer finns i Lägga till organisationsanvändare och hantera åtkomst.