Une fois un droit d'accès créé, certains comptes principaux peuvent demander une autorisation pour ce droit d'accès. Si un workflow d'approbation est spécifié pour ce droit d'accès, les comptes principaux sélectionnés et configurés en tant qu'approbateurs peuvent approuver ou refuser les demandes d'attribution pour ce droit d'accès.
Tenez compte des points suivants lorsque vous approuvez ou refusez une demande d'attribution pour un droit d'accès :
Vous ne pouvez pas approuver votre propre demande.
Si une demande n'est pas approuvée ou refusée dans un délai de 24 heures, l'état de l'attribution est remplacé par
expired
. Ensuite, un compte principal doit envoyer une nouvelle demande d'attribution si l'élévation des privilèges est toujours nécessaire.
Approuver ou refuser des attributions à l'aide de la console Google Cloud
Pour approuver ou refuser une demande d'attribution effectuée pour un droit d'accès, procédez comme suit :
Accédez à la page Privileged Access Manager.
Cliquez sur l'onglet Approuver les attributions, puis sur l'onglet En attente d'approbation.
Sur la ligne correspondant à la demande que vous souhaitez approuver ou refuser, cliquez sur Approuver/Refuser.
Si une justification est requise, saisissez-la dans le champ Commentaire.
Cliquez sur Approuver ou Refuser.
Vous pouvez consulter votre historique d'approbations dans l'onglet Mon historique d'approbations. L'historique des approbations est disponible pendant 30 jours après l'action d'approbation.
Approuver ou refuser des autorisations de manière programmatique
Pour approuver ou refuser des attributions, vous devez effectuer les actions suivantes :
Recherchez les droits d'accès pour lesquels vous êtes l'approbateur.
Avec l'ID du droit d'accès approprié, recherchez les demandes d'attribution que vous pouvez approuver ou refuser.
Approuver ou refuser les demandes d'attribution.
Rechercher les droits d'accès pour lesquels vous êtes l'approbateur
gcloud
La commande gcloud beta pam entitlements search
avec le type d'accès à l'appelant grant-approver
recherche les droits d'accès pour lesquels vous êtes l'approbateur.
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 valeurorganization
,folder
ouproject
.RESOURCE_ID
: utilisé avecRESOURCE_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 quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud beta pam entitlements search \ --caller-access-type=grant-approver \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam entitlements search ` --caller-access-type=grant-approver ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam entitlements search ^ --caller-access-type=grant-approver ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Vous devriez obtenir un résultat semblable à celui-ci :
additionalNotificationTargets: {} approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: 1 approvers: - principals: - user:alex@example.com createTime: '22024-03-26T11:07:37.009498890Z' 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: notMandatory: {} state: AVAILABLE updateTime: '2024-03-26T11:07:40.056780645Z'
REST
La méthode searchEntitlements
de l'API Privileged Access Manager avec le type d'accès à l'appelant GRANT_APPROVER
recherche les droits d'accès pour lesquels vous êtes l'approbateur.
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 formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.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 démarrer 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:search?callerAccessType=GRANT_APPROVER&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=" } ]
Rechercher des demandes d'attribution que vous pouvez approuver ou refuser
gcloud
La commande gcloud beta pam grants search
recherche une autorisation que vous pouvez approuver ou refuser, ou que vous avez déjà approuvée ou refusée. Cette méthode ne nécessite pas d'autorisations spécifiques de Privileged Access Manager.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient. Vous pouvez récupérer l'ID en recherchant les droits d'accès pour lesquels vous êtes l'approbateur.-
CALLER_RELATIONSHIP_TYPE
: Utilisez l'une des valeurs suivantes :had-approved
: renvoie les autorisations que l'appelant a approuvées ou refusées.can-approve
: renvoie les autorisations que l'appelant peut approuver ou refuser.
RESOURCE_TYPE
: facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeurorganization
,folder
ouproject
.RESOURCE_ID
: utilisé avecRESOURCE_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 quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud beta pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants search ^ --entitlement=ENTITLEMENT_ID ^ --caller-relationship=CALLER_RELATIONSHIP_TYPE ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Vous devriez obtenir un résultat semblable à celui-ci :
additionalEmailRecipients: - bola@example.com createTime: '2024-03-07T00:34:32.557017289Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 3600s requester: cruz@example.com state: DENIED timeline: events: - eventTime: '2024-03-07T00:34:32.793769042Z' requested: expireTime: '2024-03-08T00:34:32.793769042Z' - denied: actor: alex@example.com reason: Issue has already been resolved eventTime: '2024-03-07T00:36:08.309116203Z' updateTime: '2024-03-07T00:34:32.926967128Z'
REST
La méthode searchGrants
de l'API Privileged Access Manager recherche une autorisation que vous pouvez approuver ou refuser, ou que vous avez déjà approuvée ou refusée. Cette méthode ne nécessite pas d'autorisations spécifiques de Privileged Access Manager.
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 formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient. Vous pouvez récupérer l'ID en recherchant les droits d'accès pour lesquels vous êtes l'approbateur.- Les valeurs
RELATIONSHIP_TYPE
possibles sont :HAD_APPROVED
: renvoie les autorisations que l'appelant a précédemment approuvées ou refusées.CAN_APPROVE
: renvoie les autorisations que l'appelant peut approuver ou refuser.
FILTER
: facultatif. Renvoie les autorisations 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 démarrer 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/ENTITLEMENT_ID/grants:search?callerRelationship=RELATIONSHIP_TYPE&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 :
{ "grants": [ { "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T03:08:49.625874598Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "APPROVAL_AWAITED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@google.com" ] } ] }
Approuver les autorisations de manière programmatique
gcloud
La commande gcloud beta pam grants describe
approuve une demande d'attribution spécifique.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
GRANT_ID
: ID de l'attribution que vous approuvez. Vous pouvez récupérer l'ID en recherchant les demandes d'attribution que vous pouvez approuver ou refuser.ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient.APPROVAL_REASON
: raison pour laquelle l'attribution a été approuvée.RESOURCE_TYPE
: facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeurorganization
,folder
ouproject
.RESOURCE_ID
: utilisé avecRESOURCE_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 quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud beta pam grants approve \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="APPROVAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants approve ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="APPROVAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants approve ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="APPROVAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Vous devriez obtenir un résultat semblable à celui-ci :
createTime: '2024-04-05T01:17:04.596455403Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 2700s requester: cruz@example.com state: SCHEDULED timeline: events: - eventTime: '2024-04-05T01:17:04.732226659Z' requested: expireTime: '2024-04-06T01:17:04.732226659Z' - approved: actor: alex@example.com reason: Access allowed under existing policy eventTime: '2024-04-05T01:21:49.139539732Z' - eventTime: '2024-04-05T01:21:49.139463954Z' scheduled: scheduledActivationTime: '2024-04-05T01:21:49.139463954Z' updateTime: '2024-04-05T01:21:49.139463954Z'
REST
La méthode approveGrant
de l'API Privileged Access Manager approuve une demande d'attribution 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 formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient.GRANT_ID
: ID de l'attribution que vous approuvez. Vous pouvez récupérer l'ID en recherchant les demandes d'attribution que vous pouvez approuver ou refuser.REASON
: raison pour laquelle la demande d'attribution a été approuvée.
Méthode HTTP et URL :
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve
Corps JSON de la requête :
{ "reason": "REASON" }
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/grants/GRANT_ID", "createTime": "2024-03-06T03:08:49.330577625Z", "updateTime": "2024-03-06T23:01:13.964619844Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "SCHEDULED", "timeline": { "events": [ { "eventTime": "2024-03-06T03:08:49.462765846Z", "requested": { "expireTime": "2024-03-07T03:08:49.462765846Z" } }, { "eventTime": "2024-03-06T23:01:13.964685709Z", "approved": { "reason": "Approved escalation", "actor": "cruz@example.com" } }, { "eventTime": "2024-03-06T23:01:13.964619844Z", "scheduled": { "scheduledActivationTime": "2024-03-06T23:01:13.964619844Z" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com.com" ] }
Refuser des autorisations de manière programmatique
gcloud
La commande gcloud beta pam grants describe
refuse une demande d'attribution spécifique.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
GRANT_ID
: ID de l'attribution que vous refusez. Vous pouvez récupérer l'ID en recherchant les attributions que vous pouvez approuver ou refuser.ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient.DENIAL_REASON
: raison pour laquelle l'attribution a été refusée.RESOURCE_TYPE
: facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeurorganization
,folder
ouproject
.RESOURCE_ID
: utilisé avecRESOURCE_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 quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud beta pam grants deny \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="DENIAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud beta pam grants deny ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="DENIAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud beta pam grants deny ^ GRANT_ID ^ --entitlement=ENTITLEMENT_ID ^ --reason="DENIAL_REASON" ^ --location=global ^ --RESOURCE_TYPE=RESOURCE_ID
Vous devriez obtenir un résultat semblable à celui-ci :
createTime: '2024-04-05T01:29:13.129192816Z' justification: unstructuredJustification: Renaming a file to mitigate issue #312 name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/my-project resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin requestedDuration: 2700s requester: cruz@example.com state: DENIED timeline: events: - eventTime: '2024-04-05T01:29:13.267878626Z' requested: expireTime: '2024-04-06T01:29:13.267878626Z' - denied: actor: alex@example.com reason: Access denied under existing policy eventTime: '2024-04-05T01:29:49.492161363Z' updateTime: '2024-04-05T01:29:49.492097724Z'
REST
La méthode denyGrant
de l'API Privileged Access Manager refuse une demande d'attribution 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 formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.ENTITLEMENT_ID
: ID du droit d'accès auquel l'attribution appartient.GRANT_ID
: ID de l'attribution que vous refusez. Vous pouvez récupérer l'ID en recherchant les attributions que vous pouvez approuver ou refuser.REASON
: motif du refus de la demande d'attribution.
Méthode HTTP et URL :
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:deny
Corps JSON de la requête :
{ "reason": "REASON" }
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/grants/GRANT_ID", "createTime": "2024-03-07T00:34:32.557017289Z", "updateTime": "2024-03-07T00:36:08.309046580Z", "requester": "alex@example.com", "requestedDuration": "3600s", "justification": { "unstructuredJustification": "Emergency service for outage" }, "state": "DENIED", "timeline": { "events": [ { "eventTime": "2024-03-07T00:34:32.793769042Z", "requested": { "expireTime": "2024-03-08T00:34:32.793769042Z" } }, { "eventTime": "2024-03-07T00:36:08.309116203Z", "denied": { "reason": "Outage already resolved", "actor": "cruz@example.com" } } ] }, "privilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/my-project", "roleBindings": [ { "role": "roles/storage.admin" } ] } }, "additionalEmailRecipients": [ "bola@example.com" ] }