Contrôle des accès avec IAM
Cette page décrit les rôles IAM pour Certificate Authority Service.
Le service CA utilise des rôles Identity and Access Management (IAM) pour le contrôle des accès. Avec IAM, vous contrôlez les accès en définissant qui (identité) dispose de quel accès (rôle) pour quelle ressource. Les rôles IAM contiennent un ensemble d'autorisations qui permettent aux utilisateurs d'effectuer des actions spécifiques sur les ressources Google Cloud. En suivant le principe du moindre privilège lors de l'attribution de rôles IAM, vous pouvez protéger l'intégrité des ressources Certificate Authority Service et gérer la sécurité du pool d'autorités de certification et de l'ensemble de l'infrastructure à clé publique (PKI).
Pour savoir comment attribuer des rôles IAM à un compte utilisateur ou de service, consultez la page Accorder, modifier et révoquer les accès à des ressources dans la documentation IAM.
Rôles prédéfinis
Le tableau suivant répertorie les rôles IAM prédéfinis et les autorisations associées à chacun d'eux :
| Rôle | Autorisations | Description |
|---|---|---|
Auditeur du service CAroles/privateca.auditor |
privateca.caPools.getprivateca.caPools.getIamPolicyprivateca.caPools.listprivateca.certificateAuthorities.listprivateca.certificateAuthorities.getprivateca.certificateTemplates.getprivateca.certificateTemplates.getIamPolicyprivateca.certificateTemplates.listprivateca.certificates.listprivateca.certificates.getprivateca.locations.getprivateca.locations.listprivateca.operations.getprivateca.operations.listprivateca.certificateRevocationLists.listprivateca.certificateRevocationLists.getprivateca.certificateRevocationLists.getIamPolicyresourcemanager.projects.getresourcemanager.projects.list
|
Le rôle "Auditeur du service d'autorité de certification" dispose d'un accès en lecture seule à toutes les ressources du service d'autorité de certification. Il peut récupérer et lister les propriétés du pool d'autorités de certification, de l'autorité de certification, des certificats, des listes de révocation, des stratégies IAM et des projets. Nous vous recommandons d'attribuer ce rôle aux personnes responsables de la validation de la sécurité et des opérations du pool d'AC, et qui n'ont aucune responsabilité quotidienne en matière d'administration du service. |
Demandeur de certificat du service CAroles/privateca.certificateRequester |
privateca.certificates.create
|
Un rôle de demandeur de certificat CA Service peut envoyer des demandes de certificat à un pool de CA. Nous vous recommandons d'attribuer ce rôle à des personnes de confiance autorisées à demander des certificats. Un utilisateur disposant de ce rôle peut demander des certificats arbitraires soumis à la règle d'émission. Contrairement au rôle "Gestionnaire de certificats CA Service", ce rôle ne permet pas à l'utilisateur d'obtenir ou de lister le certificat nouvellement émis, ni d'obtenir des informations sur le pool d'autorités de certification. |
Demandeur de certificat de charge de travail du service CAroles/privateca.workloadCertificateRequester |
privateca.certificates.createForSelf
|
Un demandeur de certificat de charge de travail CA Service peut demander des certificats à CA Service avec l'identité de l'appelant. |
Gestionnaire de certificats du service CAroles/privateca.certificateManager |
Toutes les autorisations de roles/privateca.auditor, plus :privateca.certificates.create
|
Un gestionnaire de certificats CA Service peut envoyer des demandes d'émission de certificats à un pool d'autorités de certification, comme le demandeur de certificats CA Service. De plus, ce rôle hérite également des autorisations du rôle "Auditeur du service d'autorité de certification". Nous vous recommandons d'attribuer ce rôle aux personnes responsables de la création, du suivi et de l'examen des demandes de certificat dans un pool d'autorités de certification, comme un responsable ou un ingénieur principal. |
Utilisateur du modèle de certificat du service CAroles/privateca.templateUser |
privateca.certificateTemplates.getprivateca.certificateTemplates.listprivateca.certificateTemplates.use
|
Un utilisateur du modèle de certificat du service CA peut lire, lister et utiliser des modèles de certificat. |
Responsable des opérations du service CAroles/privateca.caManager |
Toutes les autorisations de roles/privateca.auditor, plus :privateca.certificates.updateprivateca.caPools.createprivateca.caPools.deleteprivateca.caPools.updateprivateca.certificateAuthorities.createprivateca.certificateAuthorities.deleteprivateca.certificateAuthorities.updateprivateca.certificateRevocationLists.updateprivateca.certificateTemplates.createprivateca.certificateTemplates.deleteprivateca.certificateTemplates.updateprivateca.certificates.updateprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Un responsable des opérations du service CA peut créer, mettre à jour et supprimer des pools d'autorités de certification et des autorités de certification. Ce rôle peut également révoquer des certificats et créer des buckets Cloud Storage. Il inclut également les mêmes capacités que l'auditeur de service de l'autorité de certification. Dans ce rôle, les personnes sont responsables de la configuration et du déploiement des pools d'autorités de certification dans l'organisation, ainsi que de la configuration de la règle d'émission du pool d'autorités de certification. Ce rôle ne permet pas de créer des certificats. Pour ce faire, utilisez les rôles "Demandeur de certificat CA Service", "Gestionnaire de certificats CA Service" ou "Administrateur CA Service". |
Lecteur de pool de services d'autorité de certificationroles/privateca.poolReader |
privateca.caPools.get |
Un utilisateur disposant du rôle Lecteur de pool de CA Service peut lire les pools d'autorités de certification dans CA Service. |
Administrateur du service CAroles/privateca.admin |
Toutes les autorisations de roles/privateca.certificateManager et de roles/privateca.caManager, plus :privateca.*.setIamPolicyprivateca.caPools.useprivateca.operations.cancelprivateca.operations.deleteresourcemanager.projects.getresourcemanager.projects.liststorage.buckets.create
|
Le rôle "Administrateur de services d'autorité de certification" hérite des autorisations des rôles "Responsable des opérations CA Service" et "Responsable des certificats CA Service". Ce rôle permet d'effectuer toutes les actions dans CA Service. Un administrateur CA Service peut définir des stratégies IAM pour le pool d'autorités de certification et créer des buckets Cloud Storage. Nous vous recommandons de n'attribuer ce rôle que rarement une fois le service établi. Ce rôle permet aux utilisateurs d'effectuer toutes les tâches d'administration, y compris d'attribuer des droits à d'autres utilisateurs et de gérer les demandes de certificats dans le service d'autorité de certification. Nous vous recommandons de mettre en place un contrôle et un accès spéciaux pour ce compte de rôle afin d'empêcher tout accès ou utilisation non autorisés. |
Rôle d'agent de service CA Service
Lorsque vous fournissez des clés Cloud KMS ou des buckets Cloud Storage existants, le compte de service de l'agent de service CA (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) doit avoir accès à la ressource correspondante.
Pour Cloud KMS, roles/cloudkms.signerVerifier est nécessaire pour utiliser la clé de signature et lire la clé publique. roles/viewer est nécessaire pour surveiller la clé pour l'intégration à Cloud Monitoring.
Le rôle roles/cloudkms.cryptoKeyEncrypterDecrypter est requis pour les clés de chiffrement gérées par le client (CMEK) utilisées pour chiffrer les données au repos. Cela permet à l'agent de service de chiffrer et de déchiffrer les données au repos.
Pour Cloud Storage, roles/storage.objectAdmin est nécessaire pour écrire le certificat de l'autorité de certification et les CRL dans un bucket. roles/storage.legacyBucketReader est nécessaire pour surveiller le bucket pour l'intégration à Cloud Monitoring. Pour en savoir plus, consultez Rôles IAM pour Cloud Storage.
Lorsque vous accédez au service via l'API, exécutez les commandes suivantes.
Créez un compte de service avec le rôle "Agent de service".
gcloud
gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_IDOù :
- PROJECT_ID est l'identifiant unique du projet dans lequel le pool d'autorité de certification est créé.
Accordez à votre compte de service les rôles requis à l'aide de la commande
gcloudsuivante.Si des clés Cloud KMS existantes sont fournies :
gcloud
Pour les clés de signature Cloud KMS :
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.signerVerifier'gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/viewer'Pour les clés de chiffrement Cloud KMS :
gcloud kms keys add-iam-policy-binding 'KEY_NAME' \ --keyring='KEYRING_NAME' \ --location='LOCATION' \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \ --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'Où :
- "KEY_NAME" est le nom de votre clé.
- "KEYRING_NAME" est le nom de votre trousseau de clés.
- LOCATION correspond à l'emplacement Cloud KMS où vous avez créé votre trousseau de clés.
- PROJECT_NUMBER est le numéro de projet du projet Google Cloud qui contient la clé.
Accordez les rôles
roles/storage.objectAdminetroles/storage.legacyBucketReaderà votre compte de service à l'aide de la commandegcloudsuivante.Si des buckets Cloud Storage existants sont fournis :
gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.objectAdminOù :
- BUCKET_NAME est le nom du bucket Cloud Storage.
- PROJECT_NUMBER est l'identifiant unique de votre compte de service.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com \ --role=roles/storage.legacyBucketReader
Autorisations des API
Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode dans l'API CA Service :
| Autorisation | Description |
|---|---|
privateca.caPools.create |
Créez un pool d'autorités de certification. |
privateca.caPools.update |
Mettez à jour un pool d'autorités de certification. |
privateca.caPools.list |
Répertorier les pools d'autorités de certification dans un projet |
privateca.caPools.get |
Récupérez un pool d'autorités de certification. |
privateca.caPools.delete |
Supprimez un pool d'autorités de certification. |
privateca.caPools.use |
Utilisez un pool d'autorités de certification. |
privateca.caPools.getIamPolicy |
Récupérez la stratégie IAM du pool d'autorités de certification. |
privateca.caPools.setIamPolicy |
Définissez une stratégie IAM pour le pool d'autorités de certification. |
privateca.certificateAuthorities.create |
Créez une autorité de certification. |
privateca.certificateAuthorities.delete |
Planifiez la suppression d'une autorité de certification. |
privateca.certificateAuthorities.get |
Obtenez une autorité de certification ou une demande de signature de certificat d'autorité de certification. |
privateca.certificateAuthorities.list |
Répertorier les CA d'un projet. |
privateca.certificateAuthorities.update |
Mettre à jour une AC, y compris l'activer, l'activer, la désactiver et la restaurer. |
privateca.certificates.create |
Permet de demander des certificats à CA Service. |
privateca.certificates.createForSelf |
Demander des certificats au service CA avec l'identité de l'appelant |
privateca.certificates.get |
Obtenir un certificat et ses métadonnées |
privateca.certificates.list |
Répertorie tous les certificats d'une autorité de certification. |
privateca.certificates.update |
Mettre à jour les métadonnées d'un certificat, y compris sa révocation. |
privateca.certificateRevocationLists.get |
Obtenez une liste de révocation de certificats (CRL) dans une autorité de certification. |
privateca.certificateRevocationLists.getIamPolicy |
Obtenez la stratégie IAM pour une LCR. |
privateca.certificateRevocationLists.list |
Répertoriez toutes les LCR d'une CA. |
privateca.certificateRevocationLists.setIamPolicy |
Définissez la stratégie IAM pour une LCR. |
privateca.certificateRevocationLists.update |
Mettre à jour une LCR |
privateca.certificateTemplates.create |
Créez un modèle de certificat. |
privateca.certificateTemplates.get |
Récupérez un modèle de certificat. |
privateca.certificateTemplates.list |
Lister tous les modèles de certificat. |
privateca.certificateTemplates.update |
Mettez à jour un modèle de certificat. |
privateca.certificateTemplates.delete |
Supprimez un modèle de certificat. |
privateca.certificateTemplates.getIamPolicy |
Obtenir la stratégie IAM d'un modèle de certificat |
privateca.certificateTemplates.setIamPolicy |
Définissez la stratégie IAM pour un modèle de certificat. |
privateca.certificateTemplates.use |
Utilisez un modèle de certificat. |
privateca.operations.cancel |
Annuler une opération de longue durée. |
privateca.operations.delete |
Supprime une opération de longue durée. |
privateca.operations.get |
Récupérer une opération de longue durée. |
privateca.operations.list |
Répertorie les opérations de longue durée dans un projet. |
Étapes suivantes
- Découvrez comment IAM centralise la gestion des autorisations et des niveaux d'accès pour les ressources Google Cloud .
- Découvrez comment configurer des stratégies IAM.
- En savoir plus sur les clés de chiffrement gérées par le client (CMEK)