Creare diritti in Privileged Access Manager

Puoi creare diritti per consentire l'elevazione temporanea dei privilegi per un insieme selezionato di entità. Tieni presente quanto segue durante la creazione dei 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 il singolo account che richiede la concessione può ricevere privilegi elevati.

  • Se aggiungi un gruppo come approvatore a un diritto, tutti i singoli account nel gruppo possono approvare o negare una richiesta di concessione.

  • I ruoli di base non sono supportati.

Prima di iniziare

Assicurati di aver abilitato Privileged Access Manager e di aver configurato le 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 del 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 giustificazione per la richiesta di assegnazione.

  9. Fai clic su Avanti.

  10. Scegli se 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 dei pool di forza lavoro

    Se scegli di avere degli approvatori, scegli anche se 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 una notifica quando il diritto è disponibile per la richiesta, quando una concessione è in attesa di approvazione e quando a un richiedente viene concesso l'accesso. Le identità Google associate al diritto, come gli approvatori e i richiedenti, vengono notificate 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 i 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 i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • 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.
  • 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 dell'organizzazione, della cartella o del progetto 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.
  • SCOPE: l'organizzazione, la cartella o il progetto in cui creare il diritto, nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, ad esempio 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: i ruoli da assegnare quando viene concesso un diritto.
  • 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. Indirizzi email aggiuntivi da notificare quando è stata richiesta una concessione. Le identità Google associate agli approvatori dei contributi vengono notificate automaticamente. 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 del diritto. I tipi di entità validi sono:

    • Utente
    • Gruppo
    • Dominio
    • Identificatori dei pool di forza lavoro
  • ADMIN_EMAIL_ADDRESS: facoltativo. Indirizzi email aggiuntivi per la notifica quando a un richiedente viene concesso l'accesso. Le identità Google associate agli approvatori dei contributi vengono notificate automaticamente. 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 è 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 il seguente comando:

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

Il metodo createEntitlement dell'API Privileged Access Manager crea un diritto a livello di organizzazione, cartella o progetto.

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

  • SCOPE: l'organizzazione, la cartella o il progetto in cui creare il diritto, nel formato organizations/ORGANIZATION_ID, folders/FOLDER_ID o projects/PROJECT_ID. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project. Gli ID cartella e dell'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: i ruoli da assegnare quando viene concesso un diritto.
  • TIME_IN_SECONDS: la durata massima di una concessione in secondi.
  • REQUESTING_MEMBER: entità che possono richiedere l'assegnazione del diritto. Sono supportati tutti i tipi di entità, ad eccezione di allUsers e allAuthenticatedUsers.

  • APPROVING_MEMBER: entità che possono approvare la richiesta del diritto. 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, potresti voler inviare una notifica a un insieme diverso di indirizzi email, in particolare se utilizzi la Federazione delle identità per la forza lavoro.
  • ADMIN_EMAIL_ADDRESS: facoltativo. Indirizzi email aggiuntivi per la notifica quando a un richiedente viene concesso l'accesso. Le identità Google associate agli approvatori dei contributi vengono notificate automaticamente. 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 è 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 controllare l'avanzamento di un'operazione di creazione, puoi inviare una 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.

Config Connector

Puoi utilizzare Kubernetes Config Connector per creare i diritti. Per ulteriori informazioni, consulta PrivilegedAccessManagerEntitlement nella documentazione di Config Connector.

Passaggi successivi