Afficher, mettre à jour et supprimer des droits d'accès dans Privileged Access Manager

Une fois que vous avez créé un droit d'accès, vous pouvez l'afficher, le mettre à jour ou le supprimer.

Avant de commencer

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

Afficher, mettre à jour et supprimer des droits d'accès à l'aide de la console Google Cloud

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

    Accéder à Privileged Access Manager

  2. Sélectionnez l'organisation, le dossier ou le projet dans lequel vous souhaitez gérer les droits d'accès.

  3. Dans l'onglet Droits d'accès, cliquez sur l'onglet Droits d'accès pour tous les utilisateurs. Vous y trouverez les droits d'accès disponibles, les rôles qu'ils octroient, ainsi que les demandeurs et les approbateurs valides.

  4. Dans le tableau, cliquez sur Autres options sur la ligne de l'accès que vous souhaitez inspecter.

    • Pour afficher les détails du droit d'accès, cliquez sur Afficher les détails du droit d'accès.

    • Pour afficher les autorisations associées au droit d'accès, cliquez sur Afficher les autorisations associées.

    • Pour révoquer toutes les attributions actives pour le droit d'accès, cliquez sur Révoquer toutes les attributions.

    • Pour supprimer le droit d'accès, cliquez sur Supprimer le droit d'accès. Vous ne pouvez pas supprimer un droit d'accès avec des autorisations actives. Vous devez d'abord révoquer les autorisations.

  5. Pour modifier un droit d'accès, cliquez sur Modifier le droit d'accès dans la même ligne que le droit d'accès que vous souhaitez modifier.

    Tenez compte des points suivants lorsque vous mettez à jour un droit d'accès:

    • La configuration des droits d'accès mise à jour ne s'applique qu'aux autorisations demandées après la mise à jour. Toutefois, les modifications apportées par l'approbateur s'appliquent également aux demandes d'autorisation existantes qui n'ont pas encore été approuvées ni refusées.

    • Lorsque vous mettez à jour un droit d'accès, vous ne pouvez pas modifier l'exigence d'approbation. Si vous devez modifier l'état d'approbation, créez plutôt un droit d'accès.

    • La propagation des modifications apportées aux demandeurs et aux approbateurs d'un droit d'accès peut prendre quelques minutes.

Afficher les droits d'accès de manière automatisée

Pour afficher les droits d'accès de manière programmatique, vous pouvez les rechercher, les lister, les obtenir et les exporter.

Répertorier les droits d'accès

gcloud

La commande gcloud beta pam entitlements list liste les droits d'accès appartenant à un champ d'application spécifique.

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

  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation 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 des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements list \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements list `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements list ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
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-03-26T11:07:40.056780645Z'

REST

La méthode listEntitlements de l'API Privileged Access Manager répertorie les droits d'accès appartenant à un champ d'application spécifique.

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 attribué, 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.
  • FILTER : facultatif. Renvoie les droits d'accès dont les valeurs de champ correspondent à une expression AIP-160.
  • PAGE_SIZE : facultatif. Nombre d'éléments à renvoyer dans une réponse.
  • PAGE_TOKEN : facultatif. Page à partir de laquelle commencer la réponse, à l'aide d'un jeton de page renvoyé dans une réponse précédente.

Méthode HTTP et URL :

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

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/entitlements/ENTITLEMENT_ID",
    "createTime": "2023-11-21T17:28:39.962144708Z",
    "updateTime": "2023-11-21T17:28:43.160309410Z",
    "eligibleUsers": [
      {
        "principals": [
          "user:alex@example.com"
        ]
      }
    ],
    "approvalWorkflow": {
      "manualApprovals": {
        "steps": [
          {
            "approvers": [
              {
                "principals": [
                  "user:bola@example.com"
                ]
              }
            ],
            "approvalsNeeded": 1
          }
        ]
      }
    },
    "privilegedAccess": {
      "gcpIamAccess": {
        "resourceType": "cloudresourcemanager.googleapis.com/Project",
        "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "roleBindings": [
          {
            "role": "roles/storage.admin"
          }
        ]
      }
    },
    "maxRequestDuration": "14400s",
    "state": "AVAILABLE",
    "requesterJustificationConfig": {
      "unstructured": {}
    },
    "additionalNotificationTargets": {
      "adminEmailRecipients": [
        "alex@example.com"
      ]
    },
    "etag": "00000000000000000000000000000000000000000000000000000000000="
  }
]

Obtenir les droits d'accès

gcloud

La commande gcloud beta pam entitlements describe récupère un droit d'accès spécifique.

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

  • ENTITLEMENT_ID: ID du droit d'accès pour lequel vous souhaitez obtenir des informations.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation 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 des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements describe \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements describe `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements describe ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
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-03-26T11:07:40.056780645Z'

REST

La méthode getEntitlement de l'API Privileged Access Manager permet de récupérer un droit d'accès spécifique.

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

  • SCOPE: organisation, dossier ou projet à partir duquel obtenir le droit d'accès, 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 numériques, tels que 123456789012.
  • ENTITLEMENT_ID: ID du droit d'accès pour lequel vous souhaitez obtenir des informations.

Méthode HTTP et URL :

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID

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/entitlements/ENTITLEMENT_ID",
  "createTime": "2023-11-21T17:28:39.962144708Z",
  "updateTime": "2023-11-21T17:28:43.160309410Z",
  "eligibleUsers": [
    {
      "principals": [
        "user:alex@example.com"
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "user:bola@example.com"
              ]
            }
          ],
          "approvalsNeeded": 1
        }
      ]
    }
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "maxRequestDuration": "14400s",
  "state": "AVAILABLE",
  "requesterJustificationConfig": {
    "unstructured": {}
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "alex@example.com"
    ]
  },
  "etag": "00000000000000000000000000000000000000000000000000000000000="
}

Exporter des droits d'accès à l'aide de gcloud CLI

La commande gcloud beta pam entitlements export exporte un droit d'accès spécifique vers un fichier YAML.

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

  • ENTITLEMENT_ID: ID du droit d'accès à l'exportation.
  • FILENAME: nom du fichier dans lequel exporter le contenu des droits d'accès.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation 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 des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements export \
    ENTITLEMENT_ID \
    --destination=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements export `
    ENTITLEMENT_ID `
    --destination=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements export ^
    ENTITLEMENT_ID ^
    --destination=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

Exported [projects/my-project/locations/global/entitlements/ENTITLEMENT_ID] to 'FILENAME.yaml'.

Mettre à jour les droits d'accès de manière programmatique

Tenez compte des points suivants lorsque vous mettez à jour un droit d'accès:

  • La configuration des droits d'accès mise à jour ne s'applique qu'aux autorisations demandées après la mise à jour. Toutefois, les modifications apportées par l'approbateur s'appliquent également aux demandes d'autorisation existantes qui n'ont pas encore été approuvées ni refusées.

  • Lorsque vous mettez à jour un droit d'accès, vous ne pouvez pas modifier l'exigence d'approbation. Si vous devez modifier l'état d'approbation, créez plutôt un droit d'accès.

  • La propagation des modifications apportées aux demandeurs et aux approbateurs d'un droit d'accès peut prendre quelques minutes.

gcloud

La commande gcloud beta pam entitlements update met à jour un droit d'accès spécifique.

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

  • ENTITLEMENT_ID: ID du droit d'accès à mettre à jour.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation 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.
  • FILENAME: fichier contenant la configuration modifiée du droit d'accès. Pour créer ce fichier, obtenez ou exportez le droit d'accès existant, enregistrez la réponse dans un fichier YAML, puis modifiez-la pour l'utiliser comme corps de votre requête de mise à jour. Vous devez inclure l'ETAG dans le corps pour mettre à jour la dernière version du droit d'accès. Pour connaître les champs disponibles que vous pouvez modifier ou ajouter, consultez la section Créer des droits d'accès de manière programmatique.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements update \
    ENTITLEMENT_ID \
    --entitlement-file=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements update `
    ENTITLEMENT_ID `
    --entitlement-file=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements update ^
    ENTITLEMENT_ID ^
    --entitlement-file=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

Request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Updated entitlement [ENTITLEMENT_ID].
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'

REST

La méthode updateEntitlement de l'API Privileged Access Manager met à jour un droit d'accès spécifique.

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 attribué, 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 numériques, tels que 123456789012.
  • ENTITLEMENT_ID: ID du droit d'accès à mettre à jour.
  • UPDATED_FIELDS: liste des champs mis à jour dans le droit d'accès, séparés par une virgule. Exemple :

    ?updateMask=privilegedAccess,maxRequestDuration

    Pour tous les champs pouvant être mis à jour, définissez le masque de mise à jour sur *.

  • REQUEST_ID : facultatif. Doit être un UUID non nul. 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 requête est ignorée.
  • request.json: fichier contenant la configuration modifiée du droit d'accès. Pour créer ce fichier, obtenez ou exportez le droit d'accès existant, enregistrez la réponse dans un fichier nommé request.json, puis modifiez-la pour l'utiliser comme corps de votre requête de mise à jour. Vous devez inclure l'ETAG dans le corps pour mettre à jour la dernière version du droit d'accès. Pour connaître les champs disponibles que vous pouvez modifier ou ajouter, consultez la section Créer des droits d'accès de manière programmatique.

Méthode HTTP et URL :

PATCH https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?updateMask=UPDATED_FIELDS&requestId=REQUEST_ID

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.v1beta.OperationMetadata",
    "createTime": "2024-03-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

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

https://privilegedaccessmanager.googleapis.com/v1beta/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/v1beta/SCOPE/locations/global/operations

Supprimer des droits d'accès de manière programmatique

gcloud

La commande gcloud beta pam entitlements delete supprime un droit d'accès spécifique.

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

  • ENTITLEMENT_ID: ID du droit d'accès à supprimer.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation 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 des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta pam entitlements delete \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements delete `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements delete ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

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

Delete request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Deleted entitlement [ENTITLEMENT_ID].

REST

La méthode deleteEntitlement de l'API Privileged Access Manager supprime un droit d'accès spécifique.

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 attribué, 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 numériques, tels que 123456789012.
  • ENTITLEMENT_ID: ID du droit d'accès à supprimer.
  • REQUEST_ID : facultatif. Doit être un UUID non nul. 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é effectuée au cours des 60 dernières minutes. Si c'est le cas, la nouvelle requête est ignorée.

Méthode HTTP et URL :

DELETE https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?requestId=REQUEST_ID

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.v1beta.OperationMetadata",
    "createTime": "2024-03-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

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

https://privilegedaccessmanager.googleapis.com/v1beta/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/v1beta/SCOPE/locations/global/operations