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 Google Cloud gerarchia delle risorse. 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 (Amministratore, Writer e Lettore) sono supportati, ma i ruoli di base legacy (Proprietario, Editor e Visualizzatore) non lo sono.

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 di consentire le concessioni di ruoli senza approvazione oppure 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 sovvenzione. 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 diritti tramite programmazione

gcloud

Il comando gcloud 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' Google Cloud organizzazione, della cartella o del progetto per cui vuoi gestire i diritti. Gli ID progetto sono stringhe alfanumeriche, come 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, come my-project. Gli ID cartella e 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 di diritto. I tipi di entità validi sono:

    • Utente
    • Gruppo
    • Dominio
    • Identificatori dei 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, 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 pam entitlements create \
    ENTITLEMENT_ID \
    --entitlement-file=entitlement.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows (PowerShell)

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

Windows (cmd.exe)

gcloud 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, come my-project. Gli ID cartella e 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 da notificare 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/v1/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.v1.OperationMetadata",
      "createTime": "2024-03-05T03:35:14.596739353Z",
      "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
}

Per controllare l'avanzamento di un'operazione di creazione, puoi inviare una richiesta GET al seguente endpoint:

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

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

https://privilegedaccessmanager.googleapis.com/v1/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