Richiedere l'accesso elevato temporaneo con Privileged Access Manager

Per elevare temporaneamente i tuoi privilegi, puoi richiedere una concessione in base a un diritto in Privileged Access Manager (PAM) per una durata fissa.

Un diritto contiene ruoli che ti vengono concessi dopo l'esito positivo della richiesta di concessione. Questi ruoli vengono rimossi da Privileged Access Manager al termine della concessione.

Tieni presente quanto segue quando vuoi richiedere una concessione per un diritto:

  • Puoi richiedere concessioni solo per i diritti per i quali ti è stato concesso l'accesso. Per essere aggiunto a un diritto, contatta l'entità che lo amministra.

  • Puoi avere una sola concessione attiva per un diritto alla volta.

  • A seconda della configurazione, una richiesta di concessione potrebbe richiedere l'approvazione per essere concessa.

  • Se una richiesta di concessione richiede l'approvazione e non viene approvata o rifiutata entro 24 ore, lo stato della concessione viene modificato in Expired. Dopodiché, devi effettuare una nuova richiesta di concessione se l'elevazione dei privilegi è ancora necessaria.

  • L'applicazione delle richieste di concessione andate a buon fine potrebbe richiedere alcuni minuti.

Richiedi una sovvenzione utilizzando la console Google Cloud

Per richiedere una concessione in base a un diritto, completa le seguenti istruzioni:

  1. Vai alla pagina Gestore degli accessi con privilegi.

    Vai a Privileged Access Manager

  2. Seleziona l'organizzazione, la cartella o il progetto in cui vuoi richiedere una concessione.

  3. Nella scheda I miei diritti, individua il diritto per cui vuoi presentare una richiesta e fai clic su Richiedi concessione nella stessa riga.

  4. Fornisci i seguenti dettagli:

    • La durata richiesta per la concessione, fino alla durata massima impostata sul diritto.

    • Se richiesto, una motivazione per la concessione.

    • (Facoltativo) Gli indirizzi email a cui inviare una notifica della richiesta di sovvenzione. Le identità Google associate agli approvatori vengono notificate automaticamente. Tuttavia, potresti voler inviare una notifica a un insieme diverso di indirizzi email, soprattutto se utilizzi la federazione delle identità per la forza lavoro.

  5. Fai clic su Richiedi sovvenzione.

  6. Per visualizzare la cronologia delle sovvenzioni, inclusi gli stati di approvazione, fai clic sulla scheda Sovvenzioni e poi sulla scheda Le mie sovvenzioni.

Richiedere una concessione in modo programmatico

Per richiedere una concessione rispetto a un diritto, devi completare i seguenti passaggi:

  1. Cerca gli ID diritto disponibili per i quali puoi richiedere concessioni.

  2. Richiedi la concessione.

Dopodiché, puoi controllare lo stato della tua concessione per vedere se è attiva, il che significa che hai ricevuto l'elevazione temporanea.

Cerca i diritti disponibili

gcloud

Il comando gcloud pam entitlements search con il tipo di accesso chiamante grant-requester cerca i diritti per i quali puoi richiedere una concessione.

Prima di utilizzare i dati dei comandi riportati di seguito, apporta 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 Cloudper cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui questo comando:

Linux, macOS o Cloud Shell

gcloud pam entitlements search \
    --caller-access-type=grant-requester \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam entitlements search `
    --caller-access-type=grant-requester `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam entitlements search ^
    --caller-access-type=grant-requester ^
    --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: ETAG
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_REQUESTER del chiamante cerca i diritti per i quali puoi richiedere una concessione.

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. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.
  • 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_REQUESTER&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": "ETAG"
  }
]

Richiedere una concessione per un diritto

gcloud

Il comando gcloud pam grants create richiede una concessione.

Prima di utilizzare i dati dei comandi riportati di seguito, apporta le seguenti sostituzioni:

  • ENTITLEMENT_ID: l'ID del diritto per creare la concessione.
  • GRANT_DURATION: la durata richiesta della concessione, in secondi.
  • JUSTIFICATION: La motivazione della richiesta della sovvenzione.
  • EMAIL_ADDRESS: (Facoltativo). Indirizzi email aggiuntivi a cui inviare una notifica della richiesta di sovvenzione. Le identità Google associate ai responsabili approvazione vengono avvisate automaticamente. Tuttavia, potresti voler inviare una notifica a un insieme diverso di indirizzi email, soprattutto se utilizzi la federazione delle identità per la forza lavoro.
  • 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 Cloudper cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui questo comando:

Linux, macOS o Cloud Shell

gcloud pam grants create \
    --entitlement=ENTITLEMENT_ID \
    --requested-duration="GRANT_DURATIONs" \
    --justification="JUSTIFICATION" \
    --location=global \
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam grants create `
    --entitlement=ENTITLEMENT_ID `
    --requested-duration="GRANT_DURATIONs" `
    --justification="JUSTIFICATION" `
    --location=global `
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam grants create ^
    --entitlement=ENTITLEMENT_ID ^
    --requested-duration="GRANT_DURATIONs" ^
    --justification="JUSTIFICATION" ^
    --location=global ^
    [--additional-email-recipients=EMAIL_ADDRESS_1, EMAIL_ADDRESS_2] ^
    --RESOURCE_TYPE=RESOURCE_ID

Dovresti ricevere una risposta simile alla seguente:

Created [GRANT_ID].

REST

Il metodo createGrant dell'API Privileged Access Manager richiede una concessione.

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. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.
  • ENTITLEMENT_ID: l'ID del diritto per creare la concessione.
  • REQUEST_ID: (Facoltativo). Deve essere un UUID diverso da zero. Se il server riceve una richiesta con un ID richiesta, verifica se un'altra richiesta con lo stesso ID è già stata completata negli ultimi 60 minuti. In questo caso, la nuova richiesta viene ignorata.
  • GRANT_DURATION: la durata richiesta della concessione, in secondi.
  • JUSTIFICATION: La motivazione della richiesta della sovvenzione.
  • EMAIL_ADDRESS: (Facoltativo). Indirizzi email aggiuntivi a cui inviare una notifica della richiesta di sovvenzione. Le identità Google associate ai responsabili approvazione vengono avvisate automaticamente. Tuttavia, potresti voler inviare una notifica a un insieme diverso di indirizzi email, soprattutto se utilizzi la federazione delle identità per la forza lavoro.

Metodo HTTP e URL:

POST https://privilegedaccessmanager.googleapis.com/v1/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants?requestId=REQUEST_ID

Corpo JSON della richiesta:

{
  "requestedDuration": "GRANT_DURATIONs",
  "justification": {
    "unstructuredJustification": "JUSTIFICATION"
  },
  "additionalEmailRecipients": [
    "EMAIL_ADDRESS_1",
    "EMAIL_ADDRESS_2",
    ...
  ]
}

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-06T03:08:49.330577625Z",
  "requester": "bola@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": [
    "alex@example.com"
  ]
}

Controllare lo stato della richiesta di sovvenzione

gcloud

Il comando gcloud pam grants search utilizzato con il chiamante had-created cerca le sovvenzioni che hai creato. Per controllare lo stato, cerca il campo state nella risposta.

Prima di utilizzare i dati dei comandi riportati di seguito, apporta le seguenti sostituzioni:

  • ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.
  • 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 Cloudper cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.

Esegui questo comando:

Linux, macOS o Cloud Shell

gcloud pam grants search \
    --entitlement=ENTITLEMENT_ID \
    --caller-relationship=had-created \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud pam grants search `
    --entitlement=ENTITLEMENT_ID `
    --caller-relationship=had-created `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud pam grants search ^
    --entitlement=ENTITLEMENT_ID ^
    --caller-relationship=had-created ^
    --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'

Le sovvenzioni possono avere i seguenti stati:

Stato Descrizione
ATTIVAZIONE IN CORSO La concessione è in fase di attivazione.
ACTIVATION_FAILED Privileged Access Manager non è riuscito a concedere i ruoli a causa di un errore non ripristinabile.
ATTIVO La concessione è attiva e l'entità ha accesso alle risorse consentite dai ruoli.
APPROVAL_AWAITED La richiesta di concessione è in attesa di una decisione da parte di un responsabile dell'approvazione.
RIFIUTATO La richiesta di concessione è stata rifiutata da un approvatore.
TERMINATI La concessione è terminata e i ruoli sono stati rimossi dall'entità.
SCADUTA La richiesta di concessione è scaduta perché l'approvazione non è stata concessa entro 24 ore.
REVOCATO La concessione viene revocata e l'entità non ha più accesso alle risorse consentite dai ruoli.
REVOCA La concessione è in fase di revoca.

REST

Il metodo searchGrants dell'API Privileged Access Manager utilizzato con la relazione HAD_CREATED del chiamante cerca le concessioni che hai creato. Per controllare lo stato, cerca il campo state nella risposta.

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. Gli ID cartella e organizzazione sono numerici, ad esempio 123456789012.
  • ENTITLEMENT_ID: l'ID del diritto a cui appartiene la concessione.
  • FILTER: (Facoltativo). Restituisce le concessioni i cui valori di campo 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/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&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/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"
      ]
    }
  ]
}

Gli stati delle sovvenzioni sono descritti in dettaglio nella tabella seguente.

Stato Descrizione
ATTIVAZIONE IN CORSO La concessione è in fase di attivazione.
ACTIVATION_FAILED Privileged Access Manager non è riuscito a concedere i ruoli a causa di un errore non ripristinabile.
ATTIVO La concessione è attiva e l'entità ha accesso alle risorse consentite dai ruoli.
APPROVAL_AWAITED La richiesta di concessione è in attesa di una decisione da parte di un responsabile dell'approvazione.
RIFIUTATO La richiesta di concessione è stata rifiutata da un approvatore.
TERMINATI La concessione è terminata e i ruoli sono stati rimossi dall'entità.
SCADUTA La richiesta di concessione è scaduta perché l'approvazione non è stata concessa entro 24 ore.
REVOCATO La concessione viene revocata e l'entità non ha più accesso alle risorse consentite dai ruoli.
REVOCA La concessione è in fase di revoca.