Sécuriser l’accès à un coffre de clésSecure access to a key vault

Azure Key Vault est un service cloud qui protège les clés et secrets de chiffrement comme les certificats, chaînes de connexion et mots de passe.Azure Key Vault is a cloud service that safeguards encryption keys and secrets like certificates, connection strings, and passwords. Comme il s’agit de données sensibles et critiques, vous devez sécuriser l’accès à vos coffres de clés en acceptant seulement les applications et les utilisateurs autorisés.Because this data is sensitive and business critical, you need to secure access to your key vaults by allowing only authorized applications and users. Cet article fournit une vue d’ensemble du modèle d’accès aux coffres de clés.This article provides an overview of the Key Vault access model. Il décrit l’authentification et l’autorisation, puis explique comment sécuriser l’accès à vos coffres de clés.It explains authentication and authorization, and describes how to secure access to your key vaults.

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Vue d’ensemble du modèle d’accèsAccess model overview

L’accès à un coffre de clés est contrôlé par le biais de deux interfaces : le plan de gestion et le plan de données.Access to a key vault is controlled through two interfaces: the management plane and the data plane. Le plan de gestion vous permet de gérer le coffre de clés.The management plane is where you manage Key Vault itself. Dans ce plan, vous pouvez notamment créer et supprimer des coffres de clés, récupérer des propriétés Key Vault et mettre à jour des stratégies d’accès.Operations in this plane include creating and deleting key vaults, retrieving Key Vault properties, and updating access policies. Le plan de données vous permet d’utiliser les données stockées dans un coffre de clés.The data plane is where you work with the data stored in a key vault. Vous pouvez ajouter, supprimer et modifier des clés, des secrets et des certificats.You can add, delete, and modify keys, secrets, and certificates.

Pour accéder à un coffre de clés dans l’un ou l’autre de ces plans, tout appelant (utilisateur ou application) doit être authentifié et autorisé.To access a key vault in either plane, all callers (users or applications) must have proper authentication and authorization. L’authentification établit l’identité de l’appelant.Authentication establishes the identity of the caller. L’autorisation détermine les opérations que l’appelant peut exécuter.Authorization determines which operations the caller can execute.

Les deux plans utilisent Azure Active Directory (Azure AD) pour l’authentification.Both planes use Azure Active Directory (Azure AD) for authentication. Pour l’autorisation, le plan de gestion utilise le contrôle d’accès en fonction du rôle (RBAC), tandis que le plan de données s’appuie sur une stratégie d’accès Key Vault.For authorization, the management plane uses role-based access control (RBAC) and the data plane uses a Key Vault access policy.

Authentification Active DirectoryActive Directory authentication

Quand vous créez un coffre de clés dans un abonnement Azure, il est automatiquement associé au locataire Azure AD de l’abonnement.When you create a key vault in an Azure subscription, it's automatically associated with the Azure AD tenant of the subscription. Tous les appelants dans les deux plans doivent s’inscrire auprès de ce locataire et s’authentifier pour accéder au coffre de clés.All callers in both planes must register in this tenant and authenticate to access the key vault. Dans les deux cas, les applications peuvent accéder au coffre de clés de deux façons :In both cases, applications can access Key Vault in two ways:

  • Accès utilisateur plus application : l’application accède au coffre de clés pour le compte d’un utilisateur connecté.User plus application access: The application accesses Key Vault on behalf of a signed-in user. Azure PowerShell et le portail Azure sont des exemples de ce type d’accès.Examples of this type of access include Azure PowerShell and the Azure portal. L’accès utilisateur est accordé de deux manières.User access is granted in two ways. Les utilisateurs peuvent accéder au coffre de clés à partir de n’importe quelle application ou ils doivent utiliser une application spécifique (appelée identité composée).Users can access Key Vault from any application, or they must use a specific application (referred to as compound identity).
  • Accès application uniquement : L’application s’exécute comme service de démon ou travail en arrière-plan.Application-only access: The application runs as a daemon service or background job. L’identité de l’application se voit octroyer l’accès au coffre de clés.The application identity is granted access to the key vault.

Pour les deux types d’accès, l’application s’authentifie auprès d’Azure AD.For both types of access, the application authenticates with Azure AD. L’application utilise une méthode d’authentification prise en charge en fonction du type d’application.The application uses any supported authentication method based on the application type. L’application acquiert un jeton pour une ressource dans le plan pour accorder l’accès.The application acquires a token for a resource in the plane to grant access. La ressource est un point de terminaison dans le plan de gestion ou de données, en fonction de l’environnement Azure.The resource is an endpoint in the management or data plane, based on the Azure environment. L’application utilise le jeton et envoie une demande d’API REST à Key Vault.The application uses the token and sends a REST API request to Key Vault. Pour en savoir plus, passez en revue le flux d’authentification intégral.To learn more, review the whole authentication flow.

Le modèle d’un mécanisme d’authentification unique auprès des deux plans présente plusieurs avantages :The model of a single mechanism for authentication to both planes has several benefits:

  • Les organisations peuvent contrôler de manière centralisée l’accès à tous leurs coffres de clés.Organizations can control access centrally to all key vaults in their organization.
  • Si un utilisateur part, il perd instantanément l’accès à tous les coffres de clés de l’organisation.If a user leaves, they instantly lose access to all key vaults in the organization.
  • Les organisations peuvent personnaliser l’authentification à l’aide des options dans Azure AD, par exemple pour activer l’authentification multifacteur afin de renforcer la sécurité.Organizations can customize authentication by using the options in Azure AD, such as to enable multi-factor authentication for added security.

Points de terminaison de ressourceResource endpoints

Les applications accèdent aux plans par le biais de points de terminaison.Applications access the planes through endpoints. Les contrôles d’accès pour les deux plans fonctionnent indépendamment.The access controls for the two planes work independently. Pour permettre à une application d’utiliser des clés dans un coffre de clés, vous accordez l’accès au plan de données à l’aide d’une stratégie d’accès Key Vault.To grant an application access to use keys in a key vault, you grant data plane access by using a Key Vault access policy. Pour permettre à un utilisateur de lire les propriétés et les étiquettes d’un coffre de clés, mais pas d’accéder aux données (clés, secrets ou certificats), vous accordez l’accès au plan de gestion avec RBAC.To grant a user read access to Key Vault properties and tags, but not access to data (keys, secrets, or certificates), you grant management plane access with RBAC.

Le tableau suivant présente les points de terminaison pour les plans de gestion et de données.The following table shows the endpoints for the management and data planes.

Plan d’accèsAccess plane Points de terminaison d’accèsAccess endpoints OpérationsOperations Mécanisme de contrôle d’accèsAccess control mechanism
Plan de gestionManagement plane Mondial :Global:
management.azure.com:443management.azure.com:443

Azure China 21Vianet:Azure China 21Vianet:
management.chinacloudapi.cn:443management.chinacloudapi.cn:443

Azure US Government :Azure US Government:
management.usgovcloudapi.net:443management.usgovcloudapi.net:443

Azure Germany :Azure Germany:
management.microsoftazure.de:443management.microsoftazure.de:443
Créer, lire, mettre à jour et supprimer des coffres de clésCreate, read, update, and delete key vaults

Définir des stratégies d’accès Key VaultSet Key Vault access policies

Définir des étiquettes Key VaultSet Key Vault tags
RBAC Azure Resource ManagerAzure Resource Manager RBAC
Plan de donnéesData plane Mondial :Global:
<nom du coffre>.vault.azure.net:443<vault-name>.vault.azure.net:443

Azure China 21Vianet:Azure China 21Vianet:
<nom du coffre>.vault.azure.cn:443<vault-name>.vault.azure.cn:443

Azure US Government :Azure US Government:
<nom du coffre>.vault.usgovcloudapi.net:443<vault-name>.vault.usgovcloudapi.net:443

Azure Germany :Azure Germany:
<nom du coffre>.vault.microsoftazure.de:443<vault-name>.vault.microsoftazure.de:443
Clés : déchiffrer, chiffrer,Keys: decrypt, encrypt,
unwrapper, wrapper, vérifier, signer,unwrap, wrap, verify, sign,
obtenir, lister, mettre à jour, créer,get, list, update, create,
importer, supprimer, sauvegarder, restaurerimport, delete, backup, restore

Secrets : obtenir, lister, définir, supprimerSecrets: get, list, set, delete
Stratégie d’accès au coffre de clésKey Vault access policy

Plan de gestion et RBACManagement plane and RBAC

Dans le plan de gestion, vous utilisez le contrôle d’accès en fonction du rôle (RBAC) pour autoriser les opérations qu’un appelant peut exécuter.In the management plane, you use RBAC(Role Based Access Control) to authorize the operations a caller can execute. Dans le modèle RBAC, chaque abonnement Azure a une instance d’Azure AD.In the RBAC model, each Azure subscription has an instance of Azure AD. Vous accordez l’accès aux utilisateurs, groupes et applications de ce répertoire.You grant access to users, groups, and applications from this directory. L’accès accordé permet de gérer les ressources de l’abonnement Azure qui reposent sur le modèle de déploiement Azure Resource Manager.Access is granted to manage resources in the Azure subscription that use the Azure Resource Manager deployment model. Pour accorder l’accès, utilisez le portail Azure, l’interface Azure CLI, Azure PowerShell ou les API REST Azure Resource Manager.To grant access, use the Azure portal, the Azure CLI, Azure PowerShell, or the Azure Resource Manager REST APIs.

Vous créez un coffre de clés dans un groupe de ressources et gérez l’accès à l’aide d’Azure AD.You create a key vault in a resource group and manage access by using Azure AD. Vous autorisez des utilisateurs ou des groupes à gérer les coffres de clés dans un groupe de ressources.You grant users or groups the ability to manage the key vaults in a resource group. Vous accordez l’accès à un niveau d’étendue spécifique en attribuant les rôles RBAC appropriés.You grant the access at a specific scope level by assigning appropriate RBAC roles. Pour permettre à un utilisateur de gérer des coffres de clés, vous attribuez un rôle key vault Contributor prédéfini à l’utilisateur dans une étendue spécifique.To grant access to a user to manage key vaults, you assign a predefined key vault Contributor role to the user at a specific scope. Les niveaux d’étendue suivants peuvent être attribués à un rôle RBAC :The following scopes levels can be assigned to an RBAC role:

  • Abonnement: un rôle RBAC attribué au niveau d’un abonnement s’applique à tous les groupes de ressources et à toutes les ressources au sein de cet abonnement.Subscription: An RBAC role assigned at the subscription level applies to all resource groups and resources within that subscription.
  • Groupe de ressources : un rôle RBAC attribué au niveau d’un groupe de ressources s’applique à toutes les ressources de ce groupe de ressources.Resource group: An RBAC role assigned at the resource group level applies to all resources in that resource group.
  • Ressource spécifique : un rôle RBAC attribué pour une ressource spécifique s’applique à cette ressource.Specific resource: An RBAC role assigned for a specific resource applies to that resource. Dans ce cas, la ressource est un coffre de clés spécifique.In this case, the resource is a specific key vault.

Il existe plusieurs rôles prédéfinis.There are several predefined roles. Si un rôle prédéfini ne répond pas à vos besoins, vous pouvez définir votre propre rôle.If a predefined role doesn't fit your needs, you can define your own role. Pour plus d’informations, consultez RBAC : pour les ressources Azure.For more information, see RBAC: Built-in roles.

Important

Si un utilisateur dispose d’autorisations Contributor sur un plan de gestion de coffre de clés, il peut s’accorder lui-même l’accès au plan de données en définissant une stratégie d’accès Key Vault.If a user has Contributor permissions to a key vault management plane, the user can grant themselves access to the data plane by setting a Key Vault access policy. Vous devez contrôler étroitement qui dispose d’un accès accordé par le rôle Contributor à vos coffres de clés.You should tightly control who has Contributor role access to your key vaults. Vérifiez que seules les personnes autorisées peuvent accéder à et gérer vos coffres de clés, vos clés, vos secrets et vos certificats.Ensure that only authorized persons can access and manage your key vaults, keys, secrets, and certificates.

Plan de données et stratégies d’accèsData plane and access policies

Vous accordez l’accès au plan de données en définissant des stratégies d’accès Key Vault pour un coffre de clés.You grant data plane access by setting Key Vault access policies for a key vault. Pour définir ces stratégies d’accès, un utilisateur, un groupe ou une application doit disposer d’autorisations Contributor pour le plan de gestion de ce coffre de clés.To set these access policies, a user, group, or application must have Contributor permissions for the management plane for that key vault.

Vous accordez l’accès à un utilisateur, un groupe ou une application afin d’exécuter des opérations spécifiques sur les clés ou secrets d’un coffre de clés.You grant a user, group, or application access to execute specific operations for keys or secrets in a key vault. Key Vault prend en charge jusqu’à 1 024 entrées de stratégie d’accès pour un coffre de clés.Key Vault supports up to 1,024 access policy entries for a key vault. Pour accorder l’accès au plan de données à plusieurs utilisateurs, créez un groupe de sécurité Azure AD et ajoutez des utilisateurs à ce groupe.To grant data plane access to several users, create an Azure AD security group and add users to that group.

Les stratégies d’accès Key Vault accordent des autorisations distinctement aux clés, secrets et certificats.Key Vault access policies grant permissions separately to keys, secrets, and certificate. Vous pouvez uniquement accorder un accès utilisateur à des clés (pas à des secrets).You can grant a user access only to keys and not to secrets. Les autorisations d’accès aux clés, secrets ou certificats sont définies au niveau du coffre.Access permissions for keys, secrets, and certificates are at the vault level. Les stratégies d’accès Key Vault ne prennent pas en charge les autorisations granulaires au niveau des objets, comme une clé, un secret ou un certificat spécifique.Key Vault access policies don't support granular, object-level permissions like a specific key, secret, or certificate. Pour définir des stratégies d’accès pour un coffre de clés, utilisez le portail Azure, l’interface Azure CLI, Azure PowerShell ou les API REST de gestion Key Vault.To set access policies for a key vault, use the Azure portal, the Azure CLI, Azure PowerShell, or the Key Vault Management REST APIs.

Important

Les stratégies d’accès Key Vault s’appliquent au niveau du coffre.Key Vault access policies apply at the vault level. Quand un utilisateur est autorisé à créer et à supprimer des clés, il peut effectuer ces opérations sur toutes les clés de ce coffre de clés.When a user is granted permission to create and delete keys, they can perform those operations on all keys in that key vault.

Vous pouvez limiter l’accès au plan de données en utilisant des points de terminaison de service de réseau virtuel pour Azure Key Vault.You can restrict data plane access by using virtual network service endpoints for Azure Key Vault. Vous pouvez configurer des pare-feu et des règles de réseau virtuel pour mettre en place une couche de sécurité supplémentaire.You can configure firewalls and virtual network rules for an additional layer of security.

ExemplesExample

Dans cet exemple, nous développons une application qui utilise un certificat pour SSL, Stockage Azure pour stocker les données et une clé RSA 2 048 bits pour les opérations de signature.In this example, we're developing an application that uses a certificate for SSL, Azure Storage to store data, and an RSA 2,048-bit key for sign operations. Notre application s’exécute dans une machine virtuelle Azure (ou un groupe de machines virtuelles identiques).Our application runs in an Azure virtual machine (VM) (or a virtual machine scale set). Nous pouvons utiliser un coffre de clés pour stocker les secrets de l’application.We can use a key vault to store the application secrets. Nous pouvons stocker le certificat de démarrage utilisé par l’application pour s’authentifier auprès d’Azure AD.We can store the bootstrap certificate that's used by the application to authenticate with Azure AD.

Nous avons besoin d’accéder aux clés et aux secrets stockés suivants :We need access to the following stored keys and secrets:

  • Certificat SSL : Utilisé pour SSL.SSL certificate: Used for SSL.
  • Clé de stockage : utilisée pour accéder au compte de stockage.Storage key: Used to access the Storage account.
  • Clé RSA 2 048 bits : utilisée pour les opérations de signature.RSA 2,048-bit key: Used for sign operations.
  • Certificat Bootstrap : utilisé pour s’authentifier auprès d’Azure AD.Bootstrap certificate: Used to authenticate with Azure AD. Une fois l’accès accordé, vous pouvez récupérer la clé de stockage et utiliser la clé RSA pour la signature.After access is granted, we can fetch the storage key and use the RSA key for signing.

Nous devons définir les rôles suivants pour spécifier qui peut gérer, déployer et auditer notre application :We need to define the following roles to specify who can manage, deploy, and audit our application:

  • Équipe de sécurité : personnel informatique du bureau du chef de la sécurité ou contributeurs équivalents.Security team: IT staff from the office of the CSO (Chief Security Officer) or similar contributors. L’équipe de sécurité est chargée de protéger les secrets.The security team is responsible for the proper safekeeping of secrets. Les secrets peuvent inclure des certificats SSL, des clés RSA pour la signature, des chaînes de connexion et des clés de compte de stockage.The secrets can include SSL certificates, RSA keys for signing, connection strings, and storage account keys.
  • Développeurs et opérateurs : équipe qui développe l’application et la déploie dans Azure.Developers and operators: The staff who develop the application and deploy it in Azure. Les membres de cette équipe ne font pas partie de l’équipe de sécurité.The members of this team aren't part of the security staff. Ils ne doivent pas avoir accès aux données sensibles, notamment les certificats SSL et les clés RSA.They shouldn't have access to sensitive data like SSL certificates and RSA keys. Seule l’application qu’ils déploient doit avoir accès à ces données sensibles.Only the application that they deploy should have access to sensitive data.
  • Auditeurs : ce rôle s’applique aux contributeurs qui ne sont pas membres de l’équipe de développement ou du personnel informatique général.Auditors: This role is for contributors who aren't members of the development or general IT staff. Ils passent en revue l’utilisation et la maintenance des certificats, clés et secrets pour assurer la conformité aux normes de sécurité.They review the use and maintenance of certificates, keys, and secrets to ensure compliance with security standards.

Il existe un autre rôle qui dépasse le cadre de notre application : l’administrateur d’abonnement (ou groupe de ressources).There's another role that's outside the scope of our application: the subscription (or resource group) administrator. L’administrateur d’abonnement configure les autorisations d’accès initiales pour l’équipe de sécurité.The subscription admin sets up initial access permissions for the security team. Il accorde l’accès à l’équipe de sécurité à l’aide d’un groupe de ressources comprenant les ressources requises par l’application.They grant access to the security team by using a resource group that has the resources required by the application.

Nous devons autoriser les opérations suivantes pour nos rôles :We need to authorize the following operations for our roles:

Équipe de sécuritéSecurity team

  • Créer des coffres de clésCreate key vaults.
  • Activer la journalisation Key VaultTurn on Key Vault logging.
  • Ajouter des clés et des secretsAdd keys and secrets.
  • Créer des sauvegardes des clés pour la reprise d’activitéCreate backups of keys for disaster recovery.
  • Définir des stratégies d’accès Key Vault pour autoriser des utilisateurs et des applications à effectuer des opérations spécifiquesSet Key Vault access policies to grant permissions to users and applications for specific operations.
  • Regénérer périodiquement les clés et les secretsRoll the keys and secrets periodically.

Développeurs et opérateursDevelopers and operators

  • Obtenir auprès de l’équipe de sécurité des références aux certificats Bootstrap et SSL (empreintes numériques), à la clé de stockage (URI de secret) et à la clé RSA (URI de clé) pour la signatureGet references from the security team for the bootstrap and SSL certificates (thumbprints), storage key (secret URI), and RSA key (key URI) for signing.
  • Développer et déployer l’application pour accéder par programmation aux clés et aux secretsDevelop and deploy the application to access keys and secrets programmatically.

AuditeursAuditors

  • Examiner les journaux d’activité Key Vault pour confirmer l’utilisation correcte des clés et des secrets et la conformité aux normes en matière de sécurité des donnéesReview the Key Vault logs to confirm proper use of keys and secrets, and compliance with data security standards.

Le tableau suivant récapitule les autorisations d’accès pour nos rôles et notre application.The following table summarizes the access permissions for our roles and application.

RoleRole Autorisations de plan de gestionManagement plane permissions Autorisations de plan de donnéesData plane permissions
Équipe de sécuritéSecurity team Contributeur Key VaultKey Vault Contributor Clés : sauvegarde, création, suppression, obtention, importation, énumération, restaurationKeys: backup, create, delete, get, import, list, restore
Secrets : toutes les opérationsSecrets: all operations
Développeurs et opérateursDevelopers and operators Autorisation de déploiement Key VaultKey Vault deploy permission

Remarque: Cette autorisation permet aux machines virtuelles déployées de récupérer les secrets d’un coffre de clés.Note: This permission allows deployed VMs to fetch secrets from a key vault.
AucunNone
AuditeursAuditors AucunNone Clés : énumérationKeys: list
Secrets : énumérationSecrets: list

Remarque: Cette autorisation permet aux auditeurs d’inspecter les attributs (étiquettes, dates d’activation, dates d’expiration) pour les clés et secrets non émis dans les journaux d’activité.Note: This permission enables auditors to inspect attributes (tags, activation dates, expiration dates) for keys and secrets not emitted in the logs.
ApplicationApplication AucunNone Clés : énumérationKeys: sign
Secrets : obtentionSecrets: get

Une fois les autorisations Key Vault définies, vous devez accorder aux trois rôles d’équipe l’accès à d’autres ressources.The three team roles need access to other resources along with Key Vault permissions. Pour déployer des machines virtuelles (ou la fonctionnalité Web Apps d’Azure App Service), les développeurs et opérateurs ont besoin d’un accès Contributor à ces types de ressources.To deploy VMs (or the Web Apps feature of Azure App Service), developers and operators need Contributor access to those resource types. Les auditeurs ont besoin d’un accès en lecture au compte de stockage où les journaux d’activité Key Vault sont stockés.Auditors need read access to the Storage account where the Key Vault logs are stored.

Pour plus d’informations sur le déploiement des certificats, clés d’accès et secrets par programmation, consultez ces ressources :For more information about how to deploy certificates, access keys, and secrets programmatically, see these resources:

Vous pouvez accorder la plupart des autorisations d’accès à l’aide du portail Azure.You can grant most of the access permissions by using the Azure portal. Pour accorder des autorisations granulaires, vous pouvez utiliser Azure PowerShell ou l’interface Azure CLI.To grant granular permissions, you can use Azure PowerShell or the Azure CLI.

Les extraits PowerShell présentés dans cette section sont générés avec les hypothèses suivantes :The PowerShell snippets in this section are built with the following assumptions:

  • L’administrateur Azure AD a créé des groupes de sécurité pour représenter les trois rôles : Contoso Security Team, Contoso App DevOps et Contoso App Auditors.The Azure AD administrator has created security groups to represent the three roles: Contoso Security Team, Contoso App DevOps, and Contoso App Auditors. L’administrateur a ajouté des utilisateurs à leurs groupes respectifs.The admin has added users to their respective groups.
  • Toutes les ressources se trouvent dans le groupe de ressources ContosoAppRG.All resources are located in the ContosoAppRG resource group.
  • Les journaux d’activité Key Vault sont stockés dans le compte de stockage contosologstorage.The Key Vault logs are stored in the contosologstorage storage account.
  • Le coffre de clés ContosoKeyVault et le compte de stockage contosologstorage sont dans le même emplacement Azure.The ContosoKeyVault key vault and the contosologstorage storage account are in the same Azure location.

L’administrateur d’abonnement attribue les rôles key vault Contributor et User Access Administrator à l’équipe de sécurité.The subscription admin assigns the key vault Contributor and User Access Administrator roles to the security team. Ces rôles permettent à l’équipe de sécurité de gérer l’accès à d’autres ressources et coffres de clés dans le groupe de ressources ContosoAppRG.These roles allow the security team to manage access to other resources and key vaults, both of which in the ContosoAppRG resource group.

New-AzRoleAssignment -ObjectId (Get-AzADGroup -SearchString 'Contoso Security Team')[0].Id -RoleDefinitionName "key vault Contributor" -ResourceGroupName ContosoAppRG
New-AzRoleAssignment -ObjectId (Get-AzADGroup -SearchString 'Contoso Security Team')[0].Id -RoleDefinitionName "User Access Administrator" -ResourceGroupName ContosoAppRG

L’équipe de sécurité crée un coffre de clés et configure la journalisation et les autorisations d’accès.The security team creates a key vault and sets up logging and access permissions. Pour obtenir des détails sur les autorisations des stratégies d’accès Key Vault, consultez À propos des clés, des secrets et des certificats Azure Key Vault.For details about Key Vault access policy permissions, see About Azure Key Vault keys, secrets, and certificates.

# Create a key vault and enable logging
$sa = Get-AzStorageAccount -ResourceGroup ContosoAppRG -Name contosologstorage
$kv = New-AzKeyVault -Name ContosoKeyVault -ResourceGroup ContosoAppRG -SKU premium -Location 'westus' -EnabledForDeployment
Set-AzDiagnosticSetting -ResourceId $kv.ResourceId -StorageAccountId $sa.Id -Enabled $true -Category AuditEvent

# Set up data plane permissions for the Contoso Security Team role
Set-AzKeyVaultAccessPolicy -VaultName ContosoKeyVault -ObjectId (Get-AzADGroup -SearchString 'Contoso Security Team')[0].Id -PermissionsToKeys backup,create,delete,get,import,list,restore -PermissionsToSecrets get,list,set,delete,backup,restore,recover,purge

# Set up management plane permissions for the Contoso App DevOps role
# Create the new role from an existing role
$devopsrole = Get-AzRoleDefinition -Name "Virtual Machine Contributor"
$devopsrole.Id = $null
$devopsrole.Name = "Contoso App DevOps"
$devopsrole.Description = "Can deploy VMs that need secrets from a key vault"
$devopsrole.AssignableScopes = @("/subscriptions/<SUBSCRIPTION-GUID>")

# Add permissions for the Contoso App DevOps role so members can deploy VMs with secrets deployed from key vaults
$devopsrole.Actions.Add("Microsoft.KeyVault/vaults/deploy/action")
New-AzRoleDefinition -Role $devopsrole

# Assign the new role to the Contoso App DevOps security group
New-AzRoleAssignment -ObjectId (Get-AzADGroup -SearchString 'Contoso App Devops')[0].Id -RoleDefinitionName "Contoso App Devops" -ResourceGroupName ContosoAppRG

# Set up data plane permissions for the Contoso App Auditors role
Set-AzKeyVaultAccessPolicy -VaultName ContosoKeyVault -ObjectId (Get-AzADGroup -SearchString 'Contoso App Auditors')[0].Id -PermissionsToKeys list -PermissionsToSecrets list

Nos rôles personnalisés définis peuvent uniquement être attribués à l’abonnement où le groupe de ressources ContosoAppRG est créé.Our defined custom roles are assignable only to the subscription where the ContosoAppRG resource group is created. Pour utiliser un rôle personnalisé pour d’autres projets dans d’autres abonnements, ajoutez les autres abonnements à l’étendue du rôle.To use a custom role for other projects in other subscriptions, add other subscriptions to the scope for the role.

Pour notre équipe DevOps, l’attribution de rôles personnalisés pour l’autorisation deploy/action de coffre de clés est limitée au groupe de ressources.For our DevOps staff, the custom role assignment for the key vault deploy/action permission is scoped to the resource group. Seules les machines virtuelles créées dans le groupe de ressources ContosoAppRG sont autorisées à accéder aux secrets (certificats SSL et de démarrage).Only VMs created in the ContosoAppRG resource group are allowed access to the secrets (SSL and bootstrap certificates). Les machines virtuelles créées dans d’autres groupes de ressources par un membre DevOps ne peuvent pas accéder à ces secrets, même si la machine virtuelle a les URI des secrets.VMs created in other resource groups by a DevOps member can't access these secrets, even if the VM has the secret URIs.

Notre exemple décrit un scénario simple.Our example describes a simple scenario. Les scénarios réels peuvent être plus complexes.Real-life scenarios can be more complex. Vous pouvez ajuster les autorisations à votre coffre de clés selon vos besoins.You can adjust permissions to your key vault based on your needs. Nous partons du principe que l’équipe de sécurité fournit les références aux clés et aux secrets (URI et empreintes) dont se sert l’équipe DevOps dans ses applications.We assumed the security team provides the key and secret references (URIs and thumbprints), which are used by the DevOps staff in their applications. Les développeurs et les opérateurs n’ont besoin d’aucun accès au plan de données.Developers and operators don't require any data plane access. Nous avons vu comment sécuriser votre coffre de clés.We focused on how to secure your key vault. Une considération similaire doit être accordée pour sécuriser vos machines virtuelles, vos comptes de stockage et d’autres ressources Azure.Give similar consideration when you secure your VMs, storage accounts, and other Azure resources.

Notes

Cet exemple montre comment l’accès au coffre de clés est verrouillé en production.This example shows how Key Vault access is locked down in production. Les développeurs doivent avoir leur propre abonnement ou groupe de ressources avec des autorisations complètes pour gérer leurs coffres de clés, les machines virtuelles et le compte de stockage où ils développent l’application.Developers should have their own subscription or resource group with full permissions to manage their vaults, VMs, and the storage account where they develop the application.

Nous vous recommandons vivement de renforcer la sécurité de l’accès à votre coffre de clés en configurant des pare-feu et des réseaux virtuels Key Vault.We recommend that you set up additional secure access to your key vault by configuring Key Vault firewalls and virtual networks.

RessourcesResources

Étapes suivantesNext steps

Configurez des pare-feu et des réseaux virtuels Azure Key Vault.Configure Key Vault firewalls and virtual networks.

Pour obtenir un tutoriel destiné aux administrateurs, consultez Présentation d’Azure Key Vault.For a getting-started tutorial for an administrator, see What is Azure Key Vault?.

Pour plus d’informations sur l’utilisation de la journalisation du coffre de clés, consultez journalisation d’Azure Key Vault.For more information about usage logging for Key Vault, see Azure Key Vault logging.

Pour plus d’informations sur l’utilisation des clés et des secrets avec Azure Key Vault, consultez À propos des clés et des secrets.For more information about using keys and secrets with Azure Key Vault, see About keys and secrets.

Pour toute question concernant Key Vault, rendez-vous sur les forums.If you have questions about Key Vault, visit the forums.