Approvare o negare le concessioni con Privileged Access Manager

Dopo aver creato un diritto, alcuni Principi possono richiedere una concessione per quel diritto. Se per il diritto è specificato un flusso di lavoro di approvazione, alcuni principi configurati come approvatori possono approvare o negare le richieste di concessione per quel diritto.

Quando approvi o rifiuti una richiesta di concessione per 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 a expired. Dopodiché, un principale deve effettuare una nuova richiesta di concessione se è ancora necessaria l'elevazione dei privilegi.

Approva o nega le concessioni utilizzando la console Google Cloud

Per approvare o rifiutare una richiesta di concessione presentata in base a un diritto, segui le istruzioni riportate di seguito:

  1. Vai alla pagina Privileged Access Manager.

    Vai a Gestore degli accessi con privilegi

  2. Fai clic sulla scheda Approva sovvenzioni, quindi sulla scheda In attesa di approvazione.

  3. Nella riga relativa alla richiesta che vuoi approvare o rifiutare, fai clic su Approva/Rifiuta.

  4. Se è necessaria una giustificazione, inseriscila nel campo Commento.

  5. Fai clic su Approva o Nega.

Puoi visualizzare la cronologia delle approvazioni nella scheda La mia cronologia delle approvazioni. La cronologia delle approvazioni è disponibile per 30 giorni dopo l'adozione di un'azione di approvazione.

Approvare o rifiutare le concessioni in modo programmatico

Per approvare o negare le sovvenzioni, devi completare le seguenti azioni:

  1. Cerca i diritti per i quali disponi dell'approvazione.

  2. Con l'ID diritto pertinente, cerca le richieste di concessione che puoi approvare o rifiutare.

  3. Approva o rifiuta le richieste di concessione.

Cercare i diritti per i quali sei un approvatore

gcloud

Il gcloud beta pam entitlements search comando con il tipo di accesso chiamantegrant-approver cerca i diritti per i quali 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 valore organization, folder o project.
  • RESOURCE_ID: utilizzato con RESOURCE_TYPE. L'ID del progetto, della cartella o dell'organizzazione Google Cloud per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui la persone che seguo :

Linux, macOS o 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

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 chiamante GRANT_APPROVER cerca i diritti per i quali sei un approvatore.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • SCOPE: l'organizzazione, la cartella o il progetto che il diritto è nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID, oppure projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e dell'organizzazione sono numerici, ad esempio 123456789012.
  • FILTER: facoltativo. Restituisce i diritti il cui i valori del campo corrispondono Espressione AIP-160.
  • PAGE_SIZE: facoltativo. Il numero di elementi da 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:search?callerAccessType=GRANT_APPROVER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

Per inviare la richiesta, espandi una delle seguenti 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 beta 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 uno qualsiasi dei dati di comando 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 per i quali disponi dell'approvazione.
  • CALLER_RELATIONSHIP_TYPE: usa una delle i seguenti valori:

    • had-approved: restituisce le concessioni a cui il chiamante approvati o rifiutati.
    • can-approve: restituisce che il chiamante può restituire approvare o rifiutare.
  • RESOURCE_TYPE: facoltativo. Il tipo di risorsa a cui appartiene il diritto. Utilizza il valore organization, folder o project.
  • RESOURCE_ID: utilizzato con RESOURCE_TYPE. L'ID del progetto, della cartella o dell'organizzazione Google Cloud per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui la persone che seguo :

Linux, macOS o 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

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/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

L'API Privileged Access Manager searchGrants ricerca una concessione che puoi approvare o rifiutare oppure già approvata o rifiutata. Questo metodo non richiede Privileged Access Manager specifico autorizzazioni da utilizzare.

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 formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, come my-project. Cartelle e Gli ID organizzazione sono numerici, ad esempio 123456789012.
  • ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione. Puoi recuperare l'ID cercare i diritti per i quali sei un approvatore.
  • RELATIONSHIP_TYPE: i valori validi sono:
    • HAD_APPROVED: restituisce le concessioni a cui il chiamante approvata o rifiutata in precedenza.
    • CAN_APPROVE: restituisce che il chiamante può restituire approvare o rifiutare.
  • FILTER: facoltativo. Restituisce i contributi i cui valori dei campi corrispondenti 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 delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
      ]
    }
  ]
}

Approvare le concessioni in modo programmatico

gcloud

Il comando gcloud beta 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 sovvenzione che stai approvando. Puoi recuperare l'ID cercando le richieste di sovvenzione che puoi approvare o rifiutare.
  • ENTITLEMENT_ID: l'ID del diritto che a cui appartiene la concessione.
  • APPROVAL_REASON: il motivo per cui la sovvenzione è stata approvata.
  • RESOURCE_TYPE: facoltativo. Il tipo di risorsa a cui appartiene il diritto. Utilizza il valore organization, folder o project.
  • RESOURCE_ID: utilizzato con RESOURCE_TYPE. L'ID del progetto, della cartella o dell'organizzazione Google Cloud per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui la persone che seguo :

Linux, macOS o 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

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

L'API Privileged Access Manager approveGrant approva una specifica richiesta di concessione.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e dell'organizzazione sono numerici, ad esempio 123456789012.
  • ENTITLEMENT_ID: l'ID del diritto che a cui appartiene la concessione.
  • GRANT_ID: l'ID della concessione che stai approvando. Puoi recuperare l'ID Cercare richieste di concessione da approvare o rifiutare.
  • REASON: il motivo per cui la richiesta di sovvenzione è stata approvata.

Metodo HTTP e URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/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"
  ]
}

Rifiuta le concessioni in modo programmatico

gcloud

La gcloud beta pam grants describe rifiuta una specifica richiesta di concessione.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • GRANT_ID: l'ID della concessione che stai negando. Tu può recuperare l'ID alla ricerca di concessioni che puoi approvare o rifiutare.
  • ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.
  • DENIAL_REASON: il motivo per cui la concessione è stata rifiutata.
  • RESOURCE_TYPE: facoltativo. Il tipo di risorsa a cui appartiene il diritto. Utilizza il valore organization, folder o project.
  • RESOURCE_ID: utilizzato con RESOURCE_TYPE. L'ID del progetto, della cartella o dell'organizzazione Google Cloud per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui la persone che seguo :

Linux, macOS o 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

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, effettua le seguenti sostituzioni:

  • SCOPE: l'organizzazione, la cartella o il progetto in cui si trova il diritto, nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e dell'organizzazione sono numerici, ad esempio 123456789012.
  • ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.
  • GRANT_ID: l'ID della concessione che stai negando. Puoi recuperare l'ID alla ricerca di 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/v1beta/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"
  ]
}