Freigeben über


Schnellstart: Erstellen Sie einen Azure-Schlüsselvault und ein Geheimnis mithilfe von Bicep

Azure Key Vault ist ein Clouddienst, der einen sicheren Speicher für geheime Schlüssel wie Schlüssel, Kennwörter, Zertifikate und andere geheime Schlüssel bereitstellt. In dieser Schnellstartanleitung geht es um die Bereitstellung einer Bicep-Datei zum Erstellen eines Schlüsseltresors und eines Geheimnisses.

Bicep ist eine domänenspezifische Sprache (DSL), die deklarative Syntax verwendet, um Azure Ressourcen bereitzustellen. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Erstellungserfahrung für Ihre Infrastruktur-as-Code-Lösungen in Azure.

Voraussetzungen

  • Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein free-Konto, bevor Sie beginnen.

  • Ihre Microsoft Entra Benutzerobjekt-ID wird von der Vorlage benötigt, um Berechtigungen zu konfigurieren. Die folgende Prozedur ruft die Objekt-ID (GUID) ab.

    1. Führen Sie den folgenden befehl Azure PowerShell oder Azure CLI aus, indem Sie Try it auswählen und dann das Skript in den Shellbereich einfügen. Klicken Sie zum Einfügen des Skripts mit der rechten Maustaste auf die Shell, und wählen Sie Einfügen aus.

      echo "Enter your email address that is used to sign in to Azure:" &&
      read upn &&
      az ad user show --id $upn --query "id" &&
      echo "Press [ENTER] to continue ..."
      
    2. Notieren Sie sich die Objekt-ID. Sie benötigen ihn im nächsten Abschnitt dieser Schnellstartanleitung.

Überprüfen Sie die Bicep-Datei

Von Bedeutung

Diese Schnellstartanleitung verwendet eine externe Vorlage, die einen Tresor mit älteren Zugriffsrichtlinien erstellt. Verwenden Sie für Produktionsbereitstellungen stattdessen Azure RBAC-Autorisierung. Weitere Informationen finden Sie unter Erstellen eines Azure-Schlüsseltresors und eines Schlüssels mit Bicep für eine Bicep-Vorlage, die enableRbacAuthorization: true verwendet, oder unter Sichern Sie Ihren Azure-Schlüsseltresor für umfassende Sicherheitsrichtlinien.

Die in dieser Schnellstartanleitung verwendete Vorlage stammt aus Azure Schnellstartvorlagen.

@description('Specifies the name of the key vault.')
param keyVaultName string

@description('Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location

@description('Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault.')
param enabledForDeployment bool = false

@description('Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys.')
param enabledForDiskEncryption bool = false

@description('Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault.')
param enabledForTemplateDeployment bool = false

@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId

@description('Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets.')
param objectId string

@description('Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge.')
param keysPermissions array = [
  'list'
]

@description('Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge.')
param secretsPermissions array = [
  'list'
]

@description('Specifies whether the key vault is a standard vault or a premium vault.')
@allowed([
  'standard'
  'premium'
])
param skuName string = 'standard'

@description('Specifies the name of the secret that you want to create.')
param secretName string

@description('Specifies the value of the secret that you want to create.')
@secure()
param secretValue string

resource kv 'Microsoft.KeyVault/vaults@2023-07-01' = {
  name: keyVaultName
  location: location
  properties: {
    enabledForDeployment: enabledForDeployment
    enabledForDiskEncryption: enabledForDiskEncryption
    enabledForTemplateDeployment: enabledForTemplateDeployment
    tenantId: tenantId
    enableSoftDelete: true
    softDeleteRetentionInDays: 90
    accessPolicies: [
      {
        objectId: objectId
        tenantId: tenantId
        permissions: {
          keys: keysPermissions
          secrets: secretsPermissions
        }
      }
    ]
    sku: {
      name: skuName
      family: 'A'
    }
    networkAcls: {
      defaultAction: 'Allow'
      bypass: 'AzureServices'
    }
  }
}

resource secret 'Microsoft.KeyVault/vaults/secrets@2023-07-01' = {
  parent: kv
  name: secretName
  properties: {
    value: secretValue
  }
}

output location string = location
output name string = kv.name
output resourceGroupName string = resourceGroup().name
output resourceId string = kv.id

Zwei Azure Ressourcen werden in der datei Bicep definiert:

Bereitstellen der Bicep-Datei

  1. Speichern Sie die Bicep Datei als main.bicep auf Ihren lokalen Computer.

  2. Stellen Sie die Bicep Datei entweder mit Azure CLI oder Azure PowerShell bereit.

    az group create --name myResourceGroup --location eastus
    az deployment group create --resource-group myResourceGroup --template-file main.bicep --parameters keyVaultName=<vault-name> objectId=<object-id>
    

    Hinweis

    Ersetzen Sie <vault-name> durch den Namen des Schlüsseltresors. Ersetzen Sie <object-id> durch die Objekt-ID eines Nutzers, eines Dienstprinzipals oder einer Sicherheitsgruppe im Microsoft Entra-Mandanten für den Tresor. Die Objekt-ID muss für die Liste der Zugriffsrichtlinien eindeutig sein. Rufen Sie sie mithilfe der Cmdlets „Get-AzADUser“ oder „Get-AzADServicePrincipal“ ab.

    Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.

Überprüfen der bereitgestellten Ressourcen

Sie können entweder das Azure-Portal verwenden, um den Schlüsseltresor und den geheimen Schlüssel zu überprüfen, oder das folgende Azure CLI oder Azure PowerShell Skript verwenden, um den erstellten Schlüssel auflisten zu können.

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."

Bereinigen von Ressourcen

Wenn sie nicht mehr benötigt wird, verwenden Sie das Azure Portal, Azure CLI oder Azure PowerShell, um die Ressourcengruppe und die zugehörigen Ressourcen zu löschen.

az group delete --name myResourceGroup

Nächste Schritte

In dieser Schnellstartanleitung haben Sie mithilfe von Bicep einen Schlüsseltresor und ein Geheimnis erstellt und dann die Bereitstellung überprüft. Weitere Informationen zu Key Vault und Bicep finden Sie in den folgenden Artikeln.