Quando un diritto ha un flusso di lavoro di approvazione, le entità specificate come approvatori possono approvare o rifiutare le richieste di concessione per quel diritto.
Se il livello Premium o Enterprise di Security Command Center è attivato a livello di organizzazione, il flusso di lavoro di approvazione può avere due livelli di approvazione. Un approvatore
può trovarsi in uno o entrambi i livelli di approvazione, ma può approvare una sola volta. Una volta ricevuto il numero richiesto di approvazioni di primo livello, vengono inviate notifiche via email agli approvatori di secondo livello. Una volta ricevuto il numero richiesto di approvazioni di secondo livello, la sovvenzione passa allo stato active. Se un approvatore nega la concessione, questa passa allo stato denied
e non viene inviata ad altri approvatori. Questa funzionalità è disponibile
in anteprima.
Tieni presente quanto segue quando approvi o neghi una richiesta di concessione rispetto a un diritto:
Non puoi approvare la tua richiesta.
Se una richiesta non viene approvata o rifiutata entro 24 ore, lo stato della concessione viene modificato in
expired. Dopodiché, un preside deve effettuare una nuova richiesta di concessione se l'elevazione dei privilegi è ancora necessaria.
Approvare o negare le concessioni utilizzando la console Google Cloud
Per approvare o rifiutare una richiesta di concessione effettuata in relazione a un diritto, completa le seguenti istruzioni:
Vai alla pagina Privileged Access Manager.
Fai clic sulla scheda Approva concessioni, quindi sulla scheda In attesa di approvazione.
Nella riga relativa alla richiesta che vuoi approvare o rifiutare, fai clic su Approva/Rifiuta.
Se è richiesta una giustificazione, inseriscila nel campo Commento. Puoi visualizzare la cronologia della concessione nella scheda Cronologia.
Fai clic su Approva o Nega.
Puoi visualizzare la cronologia delle approvazioni nella scheda La mia cronologia di approvazioni. La cronologia delle approvazioni è disponibile per 30 giorni dopo l'esecuzione di un'azione di approvazione. Le concessioni create per i diritti ereditati da una risorsa padre vengono visualizzate nella cronologia delle approvazioni della risorsa padre.
Approvare o negare le concessioni in modo programmatico
Per approvare o negare le concessioni, devi completare le seguenti azioni:
Cerca i diritti di cui sei un approvatore.
Con l'ID diritto pertinente, cerca le richieste di concessione che puoi approvare o rifiutare.
Approva o rifiuta le richieste di concessione.
Cercare i diritti di cui sei un approvatore
gcloud
Il comando
gcloud pam entitlements search
con il tipo di accesso chiamante grant-approver
cerca i diritti di cui sei un approvatore.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
RESOURCE_TYPE: (Facoltativo) Il tipo di risorsa a cui appartiene il diritto. Utilizza il valoreorganization,folderoproject.RESOURCE_ID: Utilizzato conRESOURCE_TYPE. L'ID del Google Cloud progetto, della cartella o dell'organizzazione per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
Esegui questo comando:
Linux, macOS o 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
Dovresti ricevere una risposta simile alla seguente:
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
Il metodo
searchEntitlements
dell'API Privileged Access Manager con il tipo di accesso
GRANT_APPROVER del chiamante cerca i diritti di cui sei un approvatore.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formatoorganizations/ORGANIZATION_ID,folders/FOLDER_IDoprojects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.FILTER: (Facoltativo) Restituisce i diritti i cui valori dei campi corrispondono a un'espressione AIP-160.PAGE_SIZE: (Facoltativo) Il numero di elementi da restituire in una risposta.PAGE_TOKEN: (Facoltativo) La pagina da cui iniziare la risposta, utilizzando un token di pagina restituito in una risposta precedente.
Metodo HTTP e URL:
GET https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements:search?callerAccessType=GRANT_APPROVER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
[
{
"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="
}
]
Cercare le richieste di sovvenzione che puoi approvare o rifiutare
gcloud
Il comando
gcloud alpha pam grants search
cerca una concessione che puoi approvare o rifiutare oppure che hai già approvato o rifiutato. Questo metodo non richiede autorizzazioni specifiche di Privileged Access Manager
per l'utilizzo.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione. Puoi recuperare l'ID cercando i diritti di cui sei un approvatore.-
CALLER_RELATIONSHIP_TYPE: utilizza uno dei seguenti valori:had-approved: restituisce le sovvenzioni che il chiamante ha approvato o rifiutato.can-approve: i resi che il chiamante può approvare o rifiutare.
RESOURCE_TYPE: (Facoltativo) Il tipo di risorsa a cui appartiene il diritto. Utilizza il valoreorganization,folderoproject.RESOURCE_ID: Utilizzato conRESOURCE_TYPE. L'ID del Google Cloud progetto, della cartella o dell'organizzazione per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
Esegui questo comando:
Linux, macOS o 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
Dovresti ricevere una risposta simile alla seguente:
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
Il metodo
searchGrants
dell'API Privileged Access Manager cerca una concessione che puoi approvare o rifiutare oppure che hai già approvato o rifiutato. Questo metodo non richiede autorizzazioni specifiche di Privileged Access Manager
per l'utilizzo.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formatoorganizations/ORGANIZATION_ID,folders/FOLDER_IDoprojects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione. Puoi recuperare l'ID cercando i diritti di cui sei un approvatore.RELATIONSHIP_TYPE: i valori validi sono:HAD_APPROVED: Restituisce le concessioni che il chiamante ha precedentemente approvato o rifiutato.CAN_APPROVE: i resi che il chiamante può approvare o rifiutare.
FILTER: (Facoltativo) Restituisce le concessioni i cui valori dei campi corrispondono a un' espressione AIP-160.PAGE_SIZE: (Facoltativo) Il numero di elementi da restituire in una risposta.PAGE_TOKEN: (Facoltativo) La pagina da cui iniziare la risposta, utilizzando un token di pagina restituito in una risposta precedente.
Metodo HTTP e 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
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
]
}
]
}
Approvare le concessioni in modo programmatico
gcloud
Il comando
gcloud pam grants describe
approva una richiesta di sovvenzione specifica.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
GRANT_ID: L'ID della concessione che stai approvando. Puoi recuperare l'ID cercando le richieste di concessione che puoi approvare o rifiutare.ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.APPROVAL_REASON: Motivo per cui la sovvenzione è stata approvata.RESOURCE_TYPE: (Facoltativo) Il tipo di risorsa a cui appartiene il diritto. Utilizza il valoreorganization,folderoproject.RESOURCE_ID: Utilizzato conRESOURCE_TYPE. L'ID del Google Cloud progetto, della cartella o dell'organizzazione per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
Esegui questo comando:
Linux, macOS o 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
Dovresti ricevere una risposta simile alla seguente:
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
Il metodo
approveGrant
dell'API Privileged Access Manager approva una richiesta di concessione specifica.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formatoorganizations/ORGANIZATION_ID,folders/FOLDER_IDoprojects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.GRANT_ID: L'ID della concessione che stai approvando. Puoi recuperare l'ID cercando le richieste di concessione che puoi approvare o rifiutare.REASON: il motivo per cui la richiesta di concessione è stata approvata.
Metodo HTTP e URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve
Corpo JSON della richiesta:
{
"reason": "REASON"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
]
}
Negare le concessioni in modo programmatico
gcloud
Il comando
gcloud pam grants describe
nega una richiesta di concessione specifica.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
GRANT_ID: L'ID della concessione che stai rifiutando. Puoi recuperare l'ID cercando le concessioni che puoi approvare o rifiutare.ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.DENIAL_REASON: il motivo per cui la sovvenzione è stata rifiutata.RESOURCE_TYPE: (Facoltativo) Il tipo di risorsa a cui appartiene il diritto. Utilizza il valoreorganization,folderoproject.RESOURCE_ID: Utilizzato conRESOURCE_TYPE. L'ID del Google Cloud progetto, della cartella o dell'organizzazione per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
Esegui questo comando:
Linux, macOS o 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
Dovresti ricevere una risposta simile alla seguente:
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
Il metodo
denyGrant
dell'API Privileged Access Manager nega una richiesta di concessione specifica.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formatoorganizations/ORGANIZATION_ID,folders/FOLDER_IDoprojects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, comemy-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.GRANT_ID: L'ID della concessione che stai rifiutando. Puoi recuperare l'ID cercando le concessioni che puoi approvare o rifiutare.REASON: il motivo per cui la richiesta di concessione è stata rifiutata.
Metodo HTTP e URL:
POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:deny
Corpo JSON della richiesta:
{
"reason": "REASON"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
]
}