Contrôle des accès avec IAM

Cette page décrit les rôles IAM pour Certificate Authority Service.

CA Service utilise les rôles Identity and Access Management (IAM) pour le contrôle des accès. Avec IAM, vous contrôlez l'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 permet aux utilisateurs d'effectuer des actions spécifiques sur les ressources Google Cloud. En suivant le principe du moindre privilège lorsque vous accordez des 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, ainsi que de l'infrastructure de clés publiques (PKI) globale.

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'entre eux:

Rôle Autorisations Description
Auditeur du service CA
roles/privateca.auditor
privateca.caPools.get
privateca.caPools.getIamPolicy
privateca.caPools.list
privateca.certificateAuthorities.list
privateca.certificateAuthorities.get
privateca.certificateTemplates.get
privateca.certificateTemplates.getIamPolicy
privateca.certificateTemplates.list
privateca.certificates.list
privateca.certificates.get
privateca.locations.get
privateca.locations.list
privateca.operations.get
privateca.operations.list
privateca.certificateRevocationLists.list
privateca.certificateRevocationLists.get
privateca.certificateRevocationLists.getIamPolicy
resourcemanager.projects.get
resourcemanager.projects.list
Le rôle "Auditeur du service CA" dispose d'un accès en lecture seule à toutes les ressources du service CA. Il peut également récupérer et lister les propriétés du pool d'autorités de certification, des autorités 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 chargées de valider la sécurité et les opérations du pool d'autorités de certification, et qui n'ont pas de responsabilités quotidiennes d'administrer le service.
Demandeur de certificat du service CA
roles/privateca.certificateRequester
privateca.certificates.create Un rôle de demandeur de certificat du service CA peut envoyer des demandes de certificat à un pool d'autorités de certification. 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, sous réserve du règlement 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 nouveau certificat émis, ni d'obtenir des informations sur le pool d'autorités de certification.
Demandeur de certificat de charge de travail du service CA
roles/privateca.workloadCertificateRequester
privateca.certificates.createForSelf Un demandeur de certificat de charge de travail du service CA peut demander des certificats au service CA avec l'identité de l'appelant.
Gestionnaire de certificats du service CA
roles/privateca.certificateManager
Toutes les autorisations de roles/privateca.auditor, plus:
privateca.certificates.create
Un gestionnaire de certificats du service CA peut envoyer des demandes d’émission de certificats à un pool d’autorités de certification tel que le demandeur de certificat du service CA. De plus, ce rôle hérite également des autorisations du rôle Auditeur du service CA. Nous vous recommandons d'attribuer ce rôle aux personnes chargées de créer, de suivre et d'examiner les demandes de certificat pour un pool d'autorités de certification, comme un responsable ou un ingénieur principal.
Utilisateur du modèle de certificat du service CA
roles/privateca.templateUser
privateca.certificateTemplates.get
privateca.certificateTemplates.list
privateca.certificateTemplates.use
Un utilisateur du modèle de certificat du service CA peut lire, répertorier et utiliser des modèles de certificat.
Responsable des opérations du service CA
roles/privateca.caManager
Toutes les autorisations de roles/privateca.auditor, plus :
privateca.certificates.update
privateca.caPools.create
privateca.caPools.delete
privateca.caPools.update
privateca.certificateAuthorities.create
privateca.certificateAuthorities.delete
privateca.certificateAuthorities.update
privateca.certificateRevocationLists.update
privateca.certificateTemplates.create
privateca.certificateTemplates.delete
privateca.certificateTemplates.update
privateca.certificates.update
privateca.operations.cancel
privateca.operations.delete
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.create
Un gestionnaire 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 offre également les mêmes fonctionnalités que l'outil CA Service Auditor. Ce rôle consiste à configurer et déployer des pools d'autorités de certification dans l'organisation, ainsi qu'à configurer la stratégie 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 du service CA", "Gestionnaire de certificats du service CA" ou "Administrateur du service CA".
Administrateur du service CA
roles/privateca.admin
Toutes les autorisations de roles/privateca.certificateManager et roles/privateca.caManager, plus :
privateca.*.setIamPolicy
privateca.caPools.use
privateca.operations.cancel
privateca.operations.delete
privateca.resourcemanager.projects.get
privateca.resourcemanager.projects.list
storage.buckets.create
Le rôle Administrateur du service CA hérite des autorisations des rôles CA Service Operation Manager et CA Service Certificate Manager. Ce rôle permet d'effectuer toutes les actions du service CA. Un administrateur du service CA 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 rarement attribuer ce rôle une fois le service établi. Ce rôle permet d'effectuer tous les aspects de l'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 d'implémenter un contrôle et un accès spéciaux à ce compte de rôle pour empêcher tout accès ou utilisation non autorisé.

Rôle d'agent de service du service CA

Lorsque vous fournissez des clés de signature Cloud KMS existantes Cloud Storage pendant la création d'une autorité de certification, le service CA Compte de service d'agent de service (service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com) doit être accorder l'accès à la ressource concernée.

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é d'intégration à Cloud Monitoring.

Pour Cloud Storage, roles/storage.objectAdmin est requis pour écrire le un certificat CA et des LRC à un bucket. roles/storage.legacyBucketReader correspond à requis pour surveiller le bucket afin de l'intégrer à Cloud Monitoring. Pour en savoir plus, consultez la page Rôles IAM pour Cloud Storage.

Lorsque vous accédez au service via l'API, exécutez les commandes suivantes.

  1. Créez un compte de service doté du rôle "Agent de service".

    gcloud

    gcloud beta services identity create --service=privateca.googleapis.com --project=PROJECT_ID
    

    Où :

    • PROJECT_ID est l'identifiant unique du projet dans lequel le pool d'autorités de certification est créé.
  2. Attribuez les rôles roles/cloudkms.signerVerifier et roles/viewer à votre compte de service à l'aide de la commande gcloud suivante.

    Si des clés de signature Cloud KMS existantes sont fournies :

    gcloud

    gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \
      --keyring='KEYRING_NAME' \
      --location='LOCATION' \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
      --role='roles/cloudkms.signerVerifier'
    

    Où :

    • CRYPTOKEY_NAME est le nom de votre clé.
    • "KEYRING_NAME" correspond au nom de votre trousseau de clés.
    • LOCATION correspond à l'emplacement Cloud KMS dans lequel vous avez créé votre trousseau de clés.
    • "PROJECT_NUMBER" est le nom de votre compte de service.
    gcloud kms keys add-iam-policy-binding 'CRYPTOKEY_NAME' \
      --keyring='KEYRING_NAME' \
      --location='LOCATION' \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-privateca.iam.gserviceaccount.com' \
      --role='roles/viewer'
    
  3. Accordez à votre compte de service roles/storage.objectAdmin et Rôles roles/storage.legacyBucketReader à l'aide des gcloud suivants .

    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.objectAdmin
    

    Où :

    • 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 de l'API CA Service :

Autorisation Description
privateca.caPools.create Créez un pool d'autorités de certification.
privateca.caPools.update Mettre à 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 Supprimer 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 requête de signature de certificat CA ou CA.
privateca.certificateAuthorities.list Répertorier les autorités de certification d'un projet.
privateca.certificateAuthorities.update Mettre à jour une autorité de certification, y compris activer, activer, désactiver et restaurer l'autorité de certification
privateca.certificates.create Permet de demander des certificats au service CA.
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épertorier tous les certificats d'une autorité de certification.
privateca.certificates.update Mettre à jour les métadonnées d'un certificat, y compris la révocation
privateca.certificateRevocationLists.get obtenir une liste de révocation de certificats (LRC) dans une autorité de certification ;
privateca.certificateRevocationLists.getIamPolicy obtenir la stratégie IAM d'une liste de révocation de certificats ;
privateca.certificateRevocationLists.list Répertorie toutes les CRL d'une autorité de certification.
privateca.certificateRevocationLists.setIamPolicy Définissez la stratégie IAM d'une LRC.
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 Répertoriez 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 d'un modèle de certificat.
privateca.certificateTemplates.use Utilisez un modèle de certificat.
privateca.operations.cancel Annule une opération de longue durée.
privateca.operations.delete Supprime une opération de longue durée.
privateca.operations.get Obtenir une opération de longue durée
privateca.operations.list Répertorier les opérations de longue durée dans un projet

Étape suivante

  • Découvrez comment IAM centralise la gestion des autorisations et des niveaux d'accès pour les ressources Google Cloud.
  • Apprenez à configurer les stratégies IAM.