Créer des droits d'accès dans Privileged Access Manager

Vous pouvez créer des droits d'accès pour accorder une élévation temporaire des droits à un ensemble spécifique de comptes principaux. Lorsque vous créez des droits d'accès, tenez compte des points suivants :

  • Les droits d'accès peuvent être créés au niveau de l'organisation, du dossier ou du projet. Les rôles accordés par un droit d'accès à chaque niveau suivent la Google Cloud hiérarchie des ressources. Par exemple, les rôles accordés par un droit d'accès au niveau de l'organisation sont hérités au niveau des dossiers et des projets.

  • Si vous ajoutez un groupe en tant que demandeur à un droit d'accès, tous les comptes individuels de ce groupe peuvent demander une autorisation pour ce droit d'accès. Toutefois, seul le compte individuel qui demande l'accès peut bénéficier de privilèges élevés.

  • Si vous ajoutez un groupe en tant qu'approbateur à un droit d'accès, tous les comptes individuels de ce groupe peuvent approuver ou refuser une demande d'accès.

  • Les rôles de base (administrateur, rédacteur et lecteur) sont acceptés, mais les anciens rôles de base (propriétaire, éditeur et lecteur) ne le sont pas.

  • N'incluez pas les rôles d'agent de service dans les droits d'accès.

    Certains rôles d'agents de service contiennent des autorisations très puissantes, qui peuvent être modifiées sans préavis. Choisissez plutôt un autre rôle prédéfini ou créez un rôle personnalisé avec les autorisations dont vous avez besoin.

Avant de commencer

Assurez-vous d'avoir activé Privileged Access Manager et configuré les autorisations correspondantes.

Créer des droits d'accès à l'aide de la console Google Cloud

Pour créer un droit d'accès, procédez comme suit :

  1. Accédez à la page Privileged Access Manager.

    Accéder à Privileged Access Manager

  2. Sélectionnez l'organisation, le dossier ou le projet auxquels vous souhaitez appliquer le droit d'accès.

  3. Cliquez sur l'onglet Droits d'accès.

  4. Cliquez sur Créer.

  5. Ajoutez les informations suivantes sur les droits d'accès :

    • Nom d'un droit d'accès.

    • Jusqu'à 30 rôles peuvent être attribués à l'organisation, au dossier ou au projet.

      Vous pouvez également ajouter des conditions IAM à ces rôles de la même manière que vous ajoutez des conditions aux liaisons de rôle de stratégie d'autorisation. Toutefois, dans les droits d'accès Privileged Access Manager, l'utilisation de conditions qui vérifient les tags d'une ressource est en version Preview.

    • Durée pendant laquelle les droits d'accès peuvent être accordés par rapport au droit d'accès. La durée maximale que vous pouvez définir pour un droit d'accès est de 24 heures.

  6. Cliquez sur Suivant.

  7. Recherchez et ajoutez jusqu'à 20 comptes principaux demandeurs valides pour le droit d'accès. Tous les types de comptes principaux sont acceptés, à l'exception de allUsers et allAuthenticatedUsers. Vous pouvez ajouter plus de 20 identités en les ajoutant à un groupe et en listant le groupe dans le droit d'accès.

  8. Indiquez si les comptes principaux doivent fournir une justification pour la demande d'autorisation.

  9. Cliquez sur Suivant.

  10. Choisissez d'autoriser l'attribution de rôles sans approbation, ou recherchez et ajoutez des comptes principaux valides qui peuvent approuver la demande. Les types de comptes principaux valides sont les suivants :

    • Comptes Google

    • Groupes

    • Domaines Google Workspace

    • Identifiants de pool d'employés

    Si vous choisissez d'avoir des validateurs, indiquez également si ceux-ci doivent fournir une justification pour approuver la demande d'autorisation. Vous pouvez ajouter jusqu'à 20 responsables de l'approbation par droit d'accès. Vous pouvez ajouter plus de 20 identités en les ajoutant à un groupe et en listant le groupe dans le droit d'accès.

  11. Cliquez sur Suivant.

  12. Facultatif : Ajoutez les adresses e-mail des personnes à prévenir lorsque le droit d'accès peut être demandé, lorsqu'une autorisation est en attente d'approbation et lorsqu'un demandeur obtient l'accès. Les identités Google associées au droit d'accès, comme les approbateurs et les demandeurs, sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.

  13. Cliquez sur Créer un droit d'accès.

La propagation des droits d'accès nouvellement créés peut prendre quelques minutes.

Créer des droits d'accès de manière programmatique

gcloud

La commande gcloud pam entitlements create crée un droit d'accès au niveau de l'organisation, du dossier ou du projet.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • ENTITLEMENT_ID : ID du droit d'accès à créer. Un ID doit comporter entre 4 et 63 caractères et utiliser les caractères suivants :[a-z0-9-]. Le premier caractère doit être une lettre
  • RESOURCE_TYPE : facultatif. Type de ressource auquel appartient le droit d'accès. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID : utilisé avec RESOURCE_TYPE. ID de l'organisation, du dossier ou du projet Google Cloud pour lequel/laquelle vous souhaitez gérer les droits d'accès. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
  • SCOPE : organisation, dossier ou projet dans lequel/laquelle le droit d'accès est créé, au format organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.
  • RESOURCE_MANAGER_RESOURCE_TYPE : Organization, Folder ou Project, selon le champ d'application.
  • ROLE : rôles à attribuer lorsqu'un droit d'accès est accordé.
  • TIME_IN_SECONDS : durée maximale pour laquelle une autorisation peut être demandée, en secondes. La plage acceptée est comprise entre 30 minutes (1 800) et 24 heures (86 400).
  • REQUESTING_MEMBER : comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types de principaux sont acceptés, à l'exception de allUsers et allAuthenticatedUsers.

  • APPROVING_EMAIL : facultatif. Adresses e-mail supplémentaires à notifier lorsqu'une autorisation d'accès a été demandée. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.
  • APPROVING_MEMBER : comptes principaux pouvant approuver la demande de droit d'accès. Les types de principaux valides sont les suivants :

    • Utilisateur
    • Groupe
    • Domaine
    • Identifiants de pool d'employés
  • ADMIN_EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires auxquelles envoyer une notification lorsqu'un demandeur se voit accorder l'accès. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.
  • REQUESTER_EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à notifier lorsque ce droit d'accès peut être demandé. Les identités Google associées aux demandeurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.

Enregistrez le code suivant dans un fichier nommé entitlement.yaml :

privilegedAccess:
  gcpIamAccess:
    resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE
    resource: //cloudresourcemanager.googleapis.com/SCOPE
    roleBindings:
    - role: ROLE_1
    - role: ROLE_2
maxRequestDuration: TIME_IN_SECONDSs
eligibleUsers:
- principals:
  - REQUESTING_MEMBER_1
  - REQUESTING_MEMBER_2
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approverEmailRecipients:
      - APPROVING_EMAIL_1
      - APPROVING_EMAIL_2
      approvers:
      - principals:
        - APPROVING_MEMBER_1
        - APPROVING_MEMBER_2
requesterJustificationConfig:
  unstructured: {}
additionalNotificationTargets:
  adminEmailRecipients:
  - ADMIN_EMAIL_ADDRESS_1
  - ADMIN_EMAIL_ADDRESS_2
  requesterEmailRecipients:
  - REQUESTER_EMAIL_ADDRESS_1
  - REQUESTER_EMAIL_ADDRESS_2

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements create `
    ENTITLEMENT_ID `
    --entitlement-file=entitlement.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements create ^
    ENTITLEMENT_ID ^
    --entitlement-file=entitlement.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Vous devriez obtenir un résultat semblable à celui-ci :

Create request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '2024-04-09T02:39:37.011866832Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 7200s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'
La propagation des droits d'accès nouvellement créés peut prendre quelques minutes.

REST

La méthode createEntitlement de l'API Privileged Access Manager crée un droit d'accès au niveau de l'organisation, du dossier ou du projet.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • SCOPE : organisation, dossier ou projet dans lequel/laquelle le droit d'accès est créé, au format organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.
  • ENTITLEMENT_ID : ID du droit d'accès à créer. Un ID doit comporter entre 4 et 63 caractères et utiliser les caractères suivants :[a-z0-9-]. Le premier caractère doit être une lettre
  • REQUEST_ID : facultatif. Doit être un UUID différent de zéro. Si le serveur reçoit une requête avec un ID de requête, il vérifie si une autre requête avec cet ID a déjà été traitée au cours des 60 dernières minutes. Si c'est le cas, la nouvelle demande est ignorée.
  • RESOURCE_MANAGER_RESOURCE_TYPE : Organization, Folder ou Project, selon le champ d'application.
  • ROLE : rôles à attribuer lorsqu'un droit d'accès est accordé.
  • TIME_IN_SECONDS : durée maximale pour laquelle une autorisation peut être demandée, en secondes. La plage acceptée est comprise entre 30 minutes (1 800) et 24 heures (86 400).
  • REQUESTING_MEMBER : comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types de principaux sont acceptés, à l'exception de allUsers et allAuthenticatedUsers.

  • APPROVING_MEMBER : comptes principaux pouvant approuver la demande de droit d'accès. Les types de principaux valides sont les suivants :

    • Utilisateur
    • Groupe
    • Domaine
    • Identifiants de pool d'employés
  • APPROVING_EMAIL : facultatif. Adresses e-mail supplémentaires à notifier lorsqu'une autorisation d'accès a été demandée. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.
  • ADMIN_EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires auxquelles envoyer une notification lorsqu'un demandeur se voit accorder l'accès. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.
  • REQUESTER_EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à notifier lorsque ce droit d'accès peut être demandé. Les identités Google associées aux demandeurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.

Méthode HTTP et URL :

POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID&requestId=REQUEST_ID

Corps JSON de la requête :

{
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE",
      "resource": "//cloudresourcemanager.googleapis.com/SCOPE",
      "roleBindings": [
        {
          "role": "ROLE_1"
        },
        {
          "role": "ROLE_2"
        }
      ]
    }
  },
  "maxRequestDuration": "TIME_IN_SECONDSs",
  "eligibleUsers": [
    {
      "principals": [
        "REQUESTING_MEMBER_1",
        "REQUESTING_MEMBER_2",
        ...
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "requireApproverJustification": true,
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_1",
                "APPROVING_MEMBER_2",
                ...
              ]
            }
          ],
          "approvalsNeeded": 1,
          "approverEmailRecipients": [
            "APPROVING_EMAIL_1",
            "APPROVING_EMAIL_2",
            ...
          ]
        }
      ]
    }
  },
  "requesterJustificationConfig": {
    "unstructured": {
    }
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "ADMIN_EMAIL_ADDRESS_1",
      "ADMIN_EMAIL_ADDRESS_2",
      ...
    ],
    "requesterEmailRecipients": [
      "REQUESTER_EMAIL_ADDRESS_1",
      "REQUESTER_EMAIL_ADDRESS_2",
      ...
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
    "name": "projects/my-project/locations/global/operations/OPERATION_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1.OperationMetadata",
      "createTime": "2024-03-05T03:35:14.596739353Z",
      "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
}

Pour vérifier la progression d'une opération de création, vous pouvez envoyer une requête GET au point de terminaison suivant :

https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/operations/OPERATION_ID

Envoyez une requête GET au point de terminaison suivant pour lister toutes les opérations :

https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/operations
La propagation des droits d'accès nouvellement créés peut prendre quelques minutes.

Terraform

Vous pouvez utiliser Terraform pour créer des droits d'accès. Pour en savoir plus, consultez google_privileged_access_manager_entitlement dans la documentation Terraform. La propagation des droits d'accès nouvellement créés peut prendre quelques minutes.

Config Connector

Vous pouvez utiliser Kubernetes Config Connector pour créer des droits d'accès. Pour en savoir plus, consultez PrivilegedAccessManagerEntitlement dans la documentation Config Connector. La propagation des droits d'accès nouvellement créés peut prendre quelques minutes.

Étapes suivantes