Creare diritti in Privileged Access Manager

Puoi creare diritti per consentire l'elevazione temporanea dei privilegi per una selezione un insieme di entità. Tieni presente quanto segue quando crei i diritti:

  • I diritti possono essere creati a livello di organizzazione, cartella o progetto. I ruoli concessi da un diritto a ogni livello seguono la gerarchia delle risorse di Google Cloud. Ad esempio, i ruoli concessi da un diritto a livello di organizzazione vengono ereditati a livello di cartella e progetto.

  • Se aggiungi un gruppo come richiedente di un diritto, tutti i singoli account nel gruppo possono richiedere la concessione di quel diritto. Tuttavia, solo l'account individuale che richiede la concessione può ricevere privilegi elevati.

  • Se aggiungi un gruppo come approvatore di un diritto, tutti gli account individuali di quel gruppo possono approvare o rifiutare una richiesta di concessione.

  • I ruoli di base non sono supportati.

Prima di iniziare

Assicurati di aver abilitato il Gestore degli accessi con privilegi e configurato le relative autorizzazioni.

Creare i diritti utilizzando la console Google Cloud

Per creare un diritto, segui le istruzioni riportate di seguito:

  1. Vai alla pagina Privileged Access Manager.

    Vai a Privileged Access Manager

  2. Seleziona l'organizzazione, la cartella o il progetto a cui vuoi applicare il diritto.

  3. Fai clic sulla scheda Diritti.

  4. Fai clic su Crea.

  5. Aggiungi i seguenti dettagli del diritto:

    • Un nome di diritto.

    • Fino a 30 ruoli da concedere all'organizzazione, alla cartella o al progetto. Puoi applicare condizioni IAM a questi ruoli, a condizione che non corrispondano ai tag delle risorse.

    • La durata delle concessioni rispetto al diritto.

  6. Fai clic su Avanti.

  7. Cerca e aggiungi fino a 20 entità richiedenti valide per il diritto. Sono supportati tutti i tipi di entità tranne allUsers e allAuthenticatedUsers. Puoi aggiungere più di 20 identità aggiungendole a un gruppo e indicando il gruppo nel diritto.

  8. Scegli se i principali devono fornire una motivazione per la richiesta di concessione.

  9. Fai clic su Avanti.

  10. Scegli di consentire le concessioni di ruoli senza approvazione o cerca e aggiungi principali validi che possono approvare la richiesta. I tipi principali validi sono:

    • Account Google

    • Google Gruppi

    • Domini Google Workspace

    • Identificatori di pool di forza lavoro

    Se scegli di avere degli approvatori, specifica anche se questi ultimi devono fornire una giustificazione per l'approvazione della richiesta di concessione. Puoi aggiungere fino a 20 persone autorizzate per approvazione per diritto. Puoi aggiungere più di 20 identità aggiungendole a un gruppo e indicando il gruppo nel diritto.

  11. Fai clic su Avanti.

  12. (Facoltativo) Aggiungi gli indirizzi email delle persone a cui inviare notifiche quando il diritto disponibile per la richiesta, quando una concessione è in attesa di approvazione e quando al richiedente viene concesso l'accesso. Le identità Google associate come approvatori e richiedenti, viene notificata automaticamente. Tuttavia, ti consigliamo di inviare una notifica a un insieme diverso di indirizzi email, soprattutto se utilizzi la federazione delle identità per la forza lavoro.

  13. Fai clic su Crea diritto.

Creare diritti in modo programmatico

gcloud

Il comando gcloud beta pam entitlements create crea un diritto a livello di organizzazione, cartella o progetto.

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

  • ENTITLEMENT_ID: l'ID diritto da creare. Un L'ID deve avere una lunghezza compresa tra 4 e 63 caratteri e contenere i seguenti caratteri: [a-z0-9-]. Il primo carattere deve essere una lettera.
  • RESOURCE_TYPE: facoltativo. Il tipo di risorsa a cui appartiene il diritto. Utilizza il valore organization, folder o project.
  • RESOURCE_ID: utilizzata con RESOURCE_TYPE. L'ID di Google Cloud l'organizzazione, la cartella o il progetto in 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.
  • SCOPE: l'organizzazione, la cartella o il progetto in creare 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.
  • RESOURCE_MANAGER_RESOURCE_TYPE: Organization, Folder o Project, a seconda dell'ambito.
  • ROLE: il roles da assegnare quando viene concesso il diritto di accesso.
  • TIME_IN_SECONDS: la durata massima di una concessione in secondi.
  • REQUESTING_MEMBER: entità che possono richiedere la concessione del diritto. Sono supportati tutti i tipi di entità, ad eccezione di allUsers e allAuthenticatedUsers.

  • APPROVING_EMAIL: facoltativo. Indirizzo email aggiuntivo per inviare una notifica quando viene richiesta una concessione. Identità Google associati agli approvatori delle concessioni ricevono una notifica automatica. Tuttavia, potresti voler inviare una notifica a un insieme diverso di indirizzi email, in particolare se utilizzi la Federazione delle identità per la forza lavoro.
  • APPROVING_MEMBER: entità che possono approvare la richiesta di diritto. Il valore i tipi di entità segue

    • Utente
    • Gruppo
    • Dominio
    • Identificatori di pool di forza lavoro
  • ADMIN_EMAIL_ADDRESS: facoltativo. Indirizzi email aggiuntivi da notificare quando a un richiedente viene concesso l'accesso. Le identità Google associate agli approvatori dei contributi vengono notificate automaticamente. Tuttavia, potrebbe voler inviare una notifica a un gruppo diverso di indirizzi email, soprattutto se stai utilizzando Federazione delle identità per la forza lavoro.
  • REQUESTER_EMAIL_ADDRESS: facoltativo. Aggiuntivo indirizzi email per la notifica quando questo diritto è disponibile per la richiesta. Le identità Google associate ai richiedenti dei permessi vengono comunicate automaticamente. Tuttavia, ti consigliamo di inviare una notifica a un insieme diverso di indirizzi email, in particolare se utilizzi la Federazione delle identità per la forza lavoro.

Salva i seguenti contenuti in un file denominato entitlement.yaml:

privilegedAccess:
  gcpIamAccess:
    resourceType: cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE
    resource: //cloudresourcemanager.googleapis.com/SCOPE
    roleBindings:
    - role: ROLE_1
    - role: ROLE_2
maxRequestDuration: TIME_IN_SECONDSs
eligibleUsers:
- principals:
  - REQUESTING_MEMBER_1
  - REQUESTING_MEMBER_2
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approverEmailRecipients:
      - APPROVING_EMAIL_1
      - APPROVING_EMAIL_2
      approvers:
      - principals:
        - APPROVING_MEMBER_1
        - APPROVING_MEMBER_2
requesterJustificationConfig:
  unstructured: {}
additionalNotificationTargets:
  adminEmailRecipients:
  - ADMIN_EMAIL_ADDRESS_1
  - ADMIN_EMAIL_ADDRESS_2
  requesterEmailRecipients:
  - REQUESTER_EMAIL_ADDRESS_1
  - REQUESTER_EMAIL_ADDRESS_2

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud beta pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

gcloud beta pam entitlements create `
    ENTITLEMENT_ID `
    --entitlement-file=entitlement.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows (cmd.exe)

gcloud beta pam entitlements create ^
    ENTITLEMENT_ID ^
    --entitlement-file=entitlement.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

Dovresti ricevere una risposta simile alla seguente:

Create request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '2024-04-09T02:39:37.011866832Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 7200s
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:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'

REST

L'API Privileged Access Manager createEntitlement crea un diritto per l'organizzazione, la cartella a livello di progetto o di progetto.

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

  • SCOPE: l'organizzazione, la cartella o il progetto in creare il diritto nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID, oppure 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 diritto da creare. Un ID deve avere una lunghezza compresa tra 4 e 63 caratteri e utilizzare i seguenti caratteri:[a-z0-9-]. Il primo carattere deve essere una lettera.
  • REQUEST_ID: facoltativo. Deve essere un UUID diverso da zero. Se il server riceve una richiesta con un ID richiesta, controlla se un'altra richiesta con lo stesso ID è già stata completata negli ultimi 60 minuti. In questo caso, la nuova richiesta viene ignorata.
  • RESOURCE_MANAGER_RESOURCE_TYPE: Organization, Folder o Project, a seconda dell'ambito.
  • ROLE: il roles da assegnare quando viene concesso il diritto di accesso.
  • TIME_IN_SECONDS: la durata massima di una concessione dura in pochi secondi.
  • REQUESTING_MEMBER: entità che possono richiedere l'assegnazione del diritto. Tutti i tipi di entità sono supportati, ad eccezione di allUsers e allAuthenticatedUsers.

  • APPROVING_MEMBER: entità che possono approvare la richiesta di diritti. I tipi di entità validi sono:

    • Utente
    • Gruppo
    • Dominio
    • Identificatori dei pool di forza lavoro
  • APPROVING_EMAIL: facoltativo. Indirizzi email aggiuntivi da notificare quando è stata richiesta una concessione. Le identità Google associate agli approvatori dei contributi vengono notificate automaticamente. Tuttavia, potrebbe voler inviare una notifica a un gruppo diverso di indirizzi email, soprattutto se stai utilizzando Federazione delle identità per la forza lavoro.
  • ADMIN_EMAIL_ADDRESS: facoltativo. Indirizzi email aggiuntivi da notificare quando a un richiedente viene concesso l'accesso. Identità Google associati agli approvatori delle concessioni ricevono una notifica automatica. Tuttavia, potresti voler inviare una notifica a un insieme diverso di indirizzi email, in particolare se utilizzi la federazione delle identità per la forza lavoro.
  • REQUESTER_EMAIL_ADDRESS: facoltativo. Indirizzi email aggiuntivi da avvisare quando questo diritto sarà disponibile per la richiesta. Le identità Google associate ai richiedenti dei permessi vengono comunicate automaticamente. Tuttavia, ti consigliamo di inviare una notifica a un insieme diverso di indirizzi email, in particolare se utilizzi la Federazione delle identità per la forza lavoro.

Metodo HTTP e URL:

POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_ID&requestId=REQUEST_ID

Corpo JSON della richiesta:

{
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/RESOURCE_MANAGER_RESOURCE_TYPE",
      "resource": "//cloudresourcemanager.googleapis.com/SCOPE",
      "roleBindings": [
        {
          "role": "ROLE_1"
        },
        {
          "role": "ROLE_2"
        }
      ]
    }
  },
  "maxRequestDuration": "TIME_IN_SECONDSs",
  "eligibleUsers": [
    {
      "principals": [
        "REQUESTING_MEMBER_1",
        "REQUESTING_MEMBER_2",
        ...
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "requireApproverJustification": true,
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "APPROVING_MEMBER_1",
                "APPROVING_MEMBER_2",
                ...
              ]
            }
          ],
          "approvalsNeeded": 1,
          "approverEmailRecipients": [
            "APPROVING_EMAIL_1",
            "APPROVING_EMAIL_2",
            ...
          ]
        }
      ]
    }
  },
  "requesterJustificationConfig": {
    "unstructured": {
    }
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "ADMIN_EMAIL_ADDRESS_1",
      "ADMIN_EMAIL_ADDRESS_2",
      ...
    ],
    "requesterEmailRecipients": [
      "REQUESTER_EMAIL_ADDRESS_1",
      "REQUESTER_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/operations/OPERATION_ID",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
      "createTime": "2024-03-05T03:35:14.596739353Z",
      "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1beta"
    },
    "done": false
}

Per verificare lo stato di avanzamento di un'operazione di creazione, puoi inviare un Richiesta GET al seguente endpoint:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

Invia una richiesta GET al seguente endpoint per elencare tutte le operazioni:

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations

Terraform

Puoi utilizzare Terraform per creare i diritti. Per ulteriori informazioni, consulta google_privileged_access_manager_entitlement nella documentazione di Terraform.

Passaggi successivi