El cmdlet Set-AzKeyVaultAccessPolicy concede o modifica los permisos existentes para un usuario, aplicación o grupo de seguridad para realizar las operaciones especificadas con un almacén de claves. No modifica los permisos que tienen otros usuarios, aplicaciones o grupos de seguridad en el almacén de claves.
Si establece permisos para un grupo de seguridad, esta operación solo afecta a los usuarios de ese grupo de seguridad.
Todos los directorios siguientes deben ser el mismo directorio de Azure:
Directorio predeterminado de la suscripción de Azure en la que reside el almacén de claves.
Directorio de Azure que contiene el usuario o el grupo de aplicaciones al que va a conceder permisos.
Ejemplos de escenarios en los que no se cumplen estas condiciones y este cmdlet no funcionará:
Autorizar a un usuario de otra organización para administrar el almacén de claves.
Cada organización tiene su propio directorio.
La cuenta de Azure tiene varios directorios.
Si registra una aplicación en un directorio distinto del directorio predeterminado, no podrá autorizar a esa aplicación a usar el almacén de claves.
La aplicación debe estar en el directorio predeterminado.
Tenga en cuenta que, aunque especificar el grupo de recursos es opcional para este cmdlet, debe hacerlo para mejorar el rendimiento.
El cmdlet puede llamar a microsoft Graph API debajo según los parámetros de entrada:
GET /directoryObjects/{id}
GET /users/{id}
GET /users
GET /servicePrincipals/{id}
GET /servicePrincipals
GET /groups/{id}
Nota:
Al usar una entidad de servicio para conceder permisos de directiva de acceso, debe usar el -BypassObjectIdValidation parámetro .
Ejemplos
Ejemplo 1: Concesión de permisos a un usuario para un almacén de claves y modificación de los permisos
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 :
El primer comando concede permisos a un usuario en el identificador de Microsoft Entra, PattiFuller@contoso.com, para realizar operaciones en claves y secretos con un almacén de claves denominado Contoso03Vault. El parámetro PassThru da como resultado el objeto actualizado devuelto por el cmdlet .
El segundo comando modifica los permisos concedidos a PattiFuller@contoso.com en el primer comando para permitir ahora obtener secretos además de establecerlos y eliminarlos. Los permisos para las operaciones de clave permanecen sin cambios después de este comando.
El comando final modifica aún más los permisos existentes para PattiFuller@contoso.com quitar todos los permisos de las operaciones de clave. Los permisos para las operaciones secretas permanecen sin cambios después de este comando.
Ejemplo 2: Concesión de permisos para que una entidad de servicio de aplicación lea y escriba secretos
Este comando concede permisos para una aplicación para un almacén de claves denominado Contoso03Vault.
El parámetro ServicePrincipalName especifica la aplicación. La aplicación debe estar registrada en el identificador de Microsoft Entra. El valor del parámetro ServicePrincipalName debe ser el nombre de entidad de seguridad de servicio de la aplicación o el GUID del identificador de aplicación.
En este ejemplo se especifica el nombre http://payroll.contoso.comde la entidad de seguridad de servicio y el comando concede a la aplicación permisos para leer y escribir secretos.
Ejemplo 3: Concesión de permisos para una aplicación mediante su identificador de objeto
Este comando concede a la aplicación permisos para leer y escribir secretos.
En este ejemplo se especifica la aplicación mediante el identificador de objeto de la entidad de servicio de la aplicación.
Ejemplo 4: Concesión de permisos para un nombre principal de usuario
Este comando concede los permisos para que los secretos se recuperen del almacén de claves Contoso03Vault por el proveedor de recursos Microsoft.Compute.
Ejemplo 6: Concesión de permisos a un grupo de seguridad
Get-AzADGroup
Set-AzKeyVaultAccessPolicy -VaultName 'myownvault' -ObjectId (Get-AzADGroup -SearchString 'group2')[0].Id -PermissionsToKeys get, set -PermissionsToSecrets get, set
El primer comando usa el cmdlet Get-AzADGroup para obtener todos los grupos de Active Directory. En la salida, verá tres grupos devueltos, denominados group1, group2 y group3. Varios grupos pueden tener el mismo nombre, pero siempre tienen un objectId único. Cuando se devuelve más de un grupo que tiene el mismo nombre, use objectId en la salida para identificar el que desea usar.
A continuación, use la salida de este comando con Set-AzKeyVaultAccessPolicy para conceder permisos a group2 para el almacén de claves, denominado myownvault. En este ejemplo se enumeran los grupos denominados "group2" insertados en la misma línea de comandos.
Puede haber varios grupos en la lista devuelta denominadas "group2".
En este ejemplo se elige la primera, indicada por el índice [0] en la lista devuelta.
Ejemplo 7: Concesión de acceso de Azure Information Protection a la clave de inquilino administrada por el cliente (BYOK)
Este comando autoriza a Azure Information Protection a usar una clave administrada por el cliente (el escenario bring your own key o "BYOK") como clave de inquilino de Azure Information Protection.
Al ejecutar este comando, especifique su propio nombre del almacén de claves, pero debe especificar el parámetro ServicePrincipalName y especificar los permisos en el ejemplo.
Permite especificar un identificador de objeto sin validar que el objeto existe en Microsoft Entra ID.
Use este parámetro solo si desea conceder acceso al almacén de claves a un identificador de objeto que haga referencia a un grupo de seguridad delegado de otro inquilino de Azure.
Especifica la dirección de correo electrónico del usuario al que se van a conceder permisos.
Esta dirección de correo electrónico debe existir en el directorio asociado a la suscripción actual y ser único.
Permite al proveedor de recursos Microsoft.Compute recuperar secretos de este almacén de claves cuando se hace referencia a este almacén de claves en la creación de recursos, por ejemplo, al crear una máquina virtual.
Permite a Azure Resource Manager obtener secretos de este almacén de claves cuando se hace referencia a este almacén de claves en una implementación de plantilla.
Especifica el identificador de objeto del usuario o la entidad de servicio en el id. de Microsoft Entra para el que se van a conceder permisos. Su valor tiene el formato GUID.
Especifica una matriz de permisos de certificado para conceder a un usuario o entidad de servicio.
"All" concederá todos los permisos excepto "Purgar" Los valores aceptables para este parámetro:
Especifica una matriz de permisos de operación de clave para conceder a un usuario o entidad de servicio.
"All" concederá todos los permisos excepto "Purgar" Los valores aceptables para este parámetro:
Especifica una matriz de permisos de operación secreta para conceder a un usuario o entidad de servicio.
"All" concederá todos los permisos excepto "Purgar" Los valores aceptables para este parámetro:
Especifica los permisos de la cuenta de almacenamiento administrada y la operación de definición de SaS para conceder a un usuario o entidad de servicio.
"All" concederá todos los permisos excepto "Purgar" Los valores aceptables para este parámetro:
Especifica el nombre de la entidad de servicio de la aplicación a la que se van a conceder permisos.
Especifique el identificador de aplicación, también conocido como id. de cliente, registrado para la aplicación en Microsoft Entra ID. La aplicación con el nombre de entidad de seguridad de servicio que especifica este parámetro debe registrarse en el directorio de Azure que contiene la suscripción actual.
Identificador de la suscripción.
De forma predeterminada, los cmdlets se ejecutan en la suscripción que se establece en el contexto actual. Si el usuario especifica otra suscripción, el cmdlet actual se ejecuta en la suscripción especificada por el usuario.
La invalidación de suscripciones solo surte efecto durante el ciclo de vida del cmdlet actual. No cambia la suscripción en el contexto y no afecta a los cmdlets posteriores.
Especifica el nombre principal de usuario del usuario al que se van a conceder permisos.
Este nombre principal de usuario debe existir en el directorio asociado a la suscripción actual.
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.