Lorsqu'un droit d'accès est associé à un workflow d'approbation, les comptes principaux spécifiés en tant qu'approbateurs peuvent approuver ou refuser les demandes d'attribution pour ce droit d'accès.
Si le niveau Security Command Center Premium ou Enterprise est activé au niveau de l'organisation, le workflow d'approbation peut comporter deux niveaux d'approbation. Un approbateur peut être associé à un ou aux deux niveaux d'approbation, mais ne peut approuver qu'une seule fois. Une fois le nombre requis d'approbations de premier niveau reçu, des notifications par e-mail sont envoyées aux approbateurs de deuxième niveau. Une fois le nombre requis d'approbations de deuxième niveau reçu, l'accès passe à l'état active
. Si un approbateur refuse l'accès, la demande passe à l'état denied
et n'est pas envoyée à d'autres approbateurs. Cette fonctionnalité est disponible en version bêta.
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 ni refusée dans un délai de 24 heures, l'état de l'autorisation passe à
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 autorisations à 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 autorisations, 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. Vous pouvez consulter l'historique de la subvention dans l'onglet Historique.
Cliquez sur Approuver ou Refuser.
Vous pouvez consulter l'historique de vos approbations dans l'onglet Historique de mes approbations. L'historique des approbations est disponible pendant 30 jours après une action d'approbation. Les droits d'accès créés sur des droits hérités d'une ressource parente apparaissent dans l'historique des approbations de la ressource parente.
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.
Approuvez ou refusez les demandes d'autorisation.
Rechercher les droits d'accès pour lesquels vous êtes l'approbateur
gcloud
La commande gcloud 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 appartient le droit d'accès. 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 numériques, tels que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud pam entitlements search \ --caller-access-type=grant-approver \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam entitlements search ` --caller-access-type=grant-approver ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud 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 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/v1/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 les demandes d'attribution que vous pouvez approuver ou refuser
gcloud
La commande
gcloud alpha pam grants search
recherche une attribution 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 Privileged Access Manager spécifiques.
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 appartient le droit d'accès. 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 numériques, tels que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud alpha pam grants search \ --entitlement=ENTITLEMENT_ID \ --caller-relationship=CALLER_RELATIONSHIP_TYPE \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam grants search ` --entitlement=ENTITLEMENT_ID ` --caller-relationship=CALLER_RELATIONSHIP_TYPE ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha 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/PROJECT_ID/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID privilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin id: hwqrt_1 requestedDuration: 3600s requestedPrivilegedAccess: gcpIamAccess: resource: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID resourceType: cloudresourcemanager.googleapis.com/Project roleBindings: - role: roles/storage.admin entitlementRoleBindingId: hwqrt_1 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 attribution 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 Privileged Access Manager spécifiques.
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 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/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/PROJECT_ID/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/PROJECT_ID", "roleBindings": [ { "role": "roles/storage.admin" "id": "hwqrt_1" } ] } }, "requestedPrivilegedAccess": { "gcpIamAccess": { "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "roleBindings": [ { "role": "roles/storage.admin", "entitlementRoleBindingId": "hwqrt_1" } ] } }, "additionalEmailRecipients": [ "bola@google.com" ] } ] }
Approuver les autorisations de manière programmatique
gcloud
La commande gcloud 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 appartient le droit d'accès. 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 numériques, tels que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud pam grants approve \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="APPROVAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants approve ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="APPROVAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud 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/v1/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 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 appartient le droit d'accès. 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 numériques, tels que123456789012
.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud pam grants deny \ GRANT_ID \ --entitlement=ENTITLEMENT_ID \ --reason="DENIAL_REASON" \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud pam grants deny ` GRANT_ID ` --entitlement=ENTITLEMENT_ID ` --reason="DENIAL_REASON" ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud 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/v1/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" ] }