O cmdlet Set-AzKeyVaultAccessPolicy concede ou modifica permissões existentes para um usuário, aplicativo ou grupo de segurança executar as operações especificadas com um cofre de chaves. Ele não modifica as permissões que outros usuários, aplicativos ou grupos de segurança têm no cofre de chaves.
Se você estiver definindo permissões para um grupo de segurança, essa operação afetará apenas os usuários desse grupo de segurança.
Todos os diretórios a seguir devem ser o mesmo diretório do Azure:
O diretório padrão da assinatura do Azure na qual reside o cofre de chaves.
O diretório do Azure que contém o usuário ou grupo de aplicativos ao qual você está concedendo permissões.
Exemplos de cenários em que essas condições não são atendidas e esse cmdlet não funcionará são:
Autorizando um usuário de uma organização diferente a gerenciar seu cofre de chaves.
Cada organização tem seu próprio diretório.
Sua conta do Azure tem vários diretórios.
Se você registrar um aplicativo em um diretório diferente do diretório padrão, não poderá autorizar esse aplicativo a usar o cofre de chaves.
O aplicativo deve estar no diretório padrão.
Observe que, embora a especificação do grupo de recursos seja opcional para esse cmdlet, você deve fazer isso para obter um melhor desempenho.
O cmdlet pode chamar abaixo da API do Microsoft Graph de acordo com os parâmetros de entrada:
GET /directoryObjects/{id}
GET /users/{id}
GET /users
GET /servicePrincipals/{id}
GET /servicePrincipals
GET /groups/{id}
Observação
Ao usar uma entidade de serviço para conceder permissões de política de acesso, você deve usar o -BypassObjectIdValidation parâmetro.
Exemplos
Exemplo 1: conceder permissões a um usuário para um cofre de chaves e modificar as permissões
Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys create,import,delete,list -PermissionsToSecrets set,delete -PassThru
Vault Name : Contoso03Vault
Resource Group Name : myrg
Location : westus
Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers
/Microsoft.KeyVault/vaults/contoso03vault
Vault URI : https://contoso03vault.vault.azure.net/
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
SKU : Standard
Enabled For Deployment? : True
Enabled For Template Deployment? : False
Enabled For Disk Encryption? : False
Soft Delete Enabled? : True
Access Policies :
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Application ID :
Display Name : User Name (username@microsoft.com)
Permissions to Keys : create, import, delete, list
Permissions to Secrets : set, delete
Permissions to Certificates :
Permissions to (Key Vault Managed) Storage :
Tags :
Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToSecrets set,delete,get -PassThru
Vault Name : Contoso03Vault
Resource Group Name : myrg
Location : westus
Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers
/Microsoft.KeyVault/vaults/contoso03vault
Vault URI : https://contoso03vault.vault.azure.net/
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
SKU : Standard
Enabled For Deployment? : True
Enabled For Template Deployment? : False
Enabled For Disk Encryption? : False
Soft Delete Enabled? : True
Access Policies :
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Application ID :
Display Name : User Name (username@microsoft.com)
Permissions to Keys : create, import, delete, list
Permissions to Secrets : set, delete, get
Permissions to Certificates :
Permissions to (Key Vault Managed) Storage :
Tags :
Set-AzKeyVaultAccessPolicy -VaultName 'Contoso03Vault' -UserPrincipalName 'PattiFuller@contoso.com' -PermissionsToKeys @() -PassThru
Vault Name : Contoso03Vault
Resource Group Name : myrg
Location : westus
Resource ID : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myrg/providers
/Microsoft.KeyVault/vaults/contoso03vault
Vault URI : https://contoso03vault.vault.azure.net/
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
SKU : Standard
Enabled For Deployment? : True
Enabled For Template Deployment? : False
Enabled For Disk Encryption? : False
Soft Delete Enabled? : True
Access Policies :
Tenant ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Application ID :
Display Name : User Name (username@microsoft.com)
Permissions to Keys :
Permissions to Secrets : set, delete, get
Permissions to Certificates :
Permissions to (Key Vault Managed) Storage :
Tags :
O primeiro comando concede permissões para um usuário em sua ID PattiFuller@contoso.comdo Microsoft Entra executar operações em chaves e segredos com um cofre de chaves chamado Contoso03Vault. O parâmetro PassThru resulta no objeto atualizado sendo retornado pelo cmdlet.
O segundo comando modifica as permissões concedidas no PattiFuller@contoso.com primeiro comando, para permitir a obtenção de segredos além de defini-los e excluí-los. As permissões para operações de chave permanecem inalteradas após esse comando.
O comando final modifica ainda mais as permissões existentes para PattiFuller@contoso.com remover todas as permissões para operações de chave. As permissões para operações secretas permanecem inalteradas após esse comando.
Exemplo 2: conceder permissões para uma entidade de serviço de aplicativo ler e gravar segredos
Esse comando concede permissões para um aplicativo para um cofre de chaves chamado Contoso03Vault.
O parâmetro ServicePrincipalName especifica o aplicativo. O aplicativo deve ser registrado na ID do Microsoft Entra. O valor do parâmetro ServicePrincipalName deve ser o nome da entidade de serviço do aplicativo ou o GUID da ID do aplicativo.
Este exemplo especifica o nome http://payroll.contoso.comda entidade de serviço e o comando concede permissões de aplicativo para ler e gravar segredos.
Exemplo 3: conceder permissões para um aplicativo usando sua ID de objeto
Esse comando concede ao aplicativo permissões para ler e gravar segredos.
Este exemplo especifica o aplicativo usando a ID do objeto da entidade de serviço do aplicativo.
Exemplo 4: conceder permissões para um nome de entidade de usuário
Esse comando concede as permissões para que os segredos sejam recuperados do cofre de chaves Contoso03Vault pelo provedor de recursos Microsoft.Compute.
Exemplo 6: conceder permissões a um grupo de segurança
Get-AzADGroup
Set-AzKeyVaultAccessPolicy -VaultName 'myownvault' -ObjectId (Get-AzADGroup -SearchString 'group2')[0].Id -PermissionsToKeys get, set -PermissionsToSecrets get, set
O primeiro comando usa o cmdlet Get-AzADGroup para obter todos os grupos do Active Directory. Na saída, você verá três grupos retornados, chamados group1, group2 e group3. Vários grupos podem ter o mesmo nome, mas sempre têm um ObjectId exclusivo. Quando mais de um grupo que tem o mesmo nome for retornado, use a ObjectId na saída para identificar o que você deseja usar.
Em seguida, use a saída desse comando com Set-AzKeyVaultAccessPolicy para conceder permissões ao group2 para o cofre de chaves, chamado myownvault. Este exemplo enumera os grupos chamados 'group2' embutidos na mesma linha de comando.
Pode haver vários grupos na lista retornada que são denominados 'group2'.
Este exemplo escolhe o primeiro, indicado pelo índice [0] na lista retornada.
Exemplo 7: Conceder à Proteção de Informações do Azure acesso à BYOK (chave de locatário gerenciada pelo cliente)
Esse comando autoriza a Proteção de Informações do Azure a usar uma chave gerenciada pelo cliente (o cenário traga sua própria chave ou "BYOK") como a chave de locatário da Proteção de Informações do Azure.
Ao executar esse comando, especifique seu próprio nome do cofre de chaves, mas você deve especificar o parâmetro ServicePrincipalName e especificar as permissões no exemplo.
Permite que você especifique uma ID de objeto sem validar se o objeto existe na ID do Microsoft Entra.
Use esse parâmetro somente se você quiser conceder acesso ao cofre de chaves a uma ID de objeto que se refere a um grupo de segurança delegado de outro locatário do Azure.
Especifica o endereço de email do usuário a quem conceder permissões.
Esse endereço de email deve existir no diretório associado à assinatura atual e ser exclusivo.
Permite que o provedor de recursos Microsoft.Compute recupere segredos desse cofre de chaves quando esse cofre de chaves é referenciado na criação de recursos, por exemplo, ao criar uma máquina virtual.
Especifica a ID do objeto do usuário ou da entidade de serviço na ID do Microsoft Entra para a qual conceder permissões. Seu valor está no formato de GUID.
Especifica uma matriz de permissões de certificado a serem concedidas a um usuário ou entidade de serviço.
'All' concederá todas as permissões, exceto 'Limpar' Os valores aceitáveis para este parâmetro:
Especifica uma matriz de permissões de operação de chave a serem concedidas a um usuário ou entidade de serviço.
'All' concederá todas as permissões, exceto 'Limpar' Os valores aceitáveis para este parâmetro:
Especifica uma matriz de permissões de operação secreta a serem concedidas a um usuário ou entidade de serviço.
'All' concederá todas as permissões, exceto 'Limpar' Os valores aceitáveis para este parâmetro:
Especifica a conta de armazenamento gerenciada e as permissões de operação de definição de SaS a serem concedidas a um usuário ou entidade de serviço.
'All' concederá todas as permissões, exceto 'Limpar' Os valores aceitáveis para este parâmetro:
Especifica o nome da entidade de serviço do aplicativo ao qual conceder permissões.
Especifique a ID do aplicativo, também conhecida como ID do cliente, registrada para o aplicativo na ID do Microsoft Entra. O aplicativo com o nome da entidade de serviço especificado por esse parâmetro deve ser registrado no diretório do Azure que contém sua assinatura atual.
A ID da assinatura.
Por padrão, os cmdlets são executados na assinatura definida no contexto atual. Se o usuário especificar outra assinatura, o cmdlet atual será executado na assinatura especificada pelo usuário.
A substituição de assinaturas só tem efeito durante o ciclo de vida do cmdlet atual. Ele não altera a assinatura no contexto e não afeta os cmdlets subsequentes.
Especifica o nome de entidade de usuário do usuário a quem conceder permissões.
Esse nome de entidade de usuário deve existir no diretório associado à assinatura atual.
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.