Demander un accès temporaire avec droits élevés avec Privileged Access Manager

Pour élever temporairement vos droits, vous pouvez demander une autorisation pour un droit d'accès dans Privileged Access Manager (PAM) pour une durée fixe.

Un droit d'accès contient des rôles qui vous sont accordés une fois votre demande d'octroi approuvée. Ces rôles sont supprimés par Privileged Access Manager à la fin de l'autorisation.

Tenez compte des points suivants lorsque vous souhaitez demander une autorisation pour un droit d'accès:

  • Vous ne pouvez demander des autorisations que pour les droits d'accès auxquels vous avez été ajouté. Pour être ajouté à un droit d'accès, contactez le principal qui l'administre.

  • Selon la configuration, une demande d'autorisation peut nécessiter une approbation.

  • Si une demande d'autorisation nécessite une approbation et qu'elle n'est pas approuvée ni refusée dans un délai de 24 heures, son état est défini sur Expired. Vous devrez ensuite envoyer une nouvelle demande d'autorisation si l'élévation des droits d'accès est toujours requise.

  • L'application des requêtes d'autorisation peut prendre quelques minutes.

Demander une subvention à l'aide de la console Google Cloud

Pour demander une autorisation pour un droit d'accès:

  1. Accédez à la page Privileged Access Manager.

    Accéder à Privileged Access Manager

  2. Sélectionnez l'organisation, le dossier ou le projet pour lesquels vous souhaitez demander une autorisation.

  3. Dans l'onglet Mes droits d'accès, recherchez le droit d'accès pour lequel vous souhaitez demander l'octroi, puis cliquez sur Demander l'octroi sur la même ligne.

  4. Spécifiez les informations suivantes :

    • Durée requise pour l'octroi, jusqu'à la durée maximale définie sur le droit d'accès.

    • Si nécessaire, une justification de l'autorisation

    • (Facultatif) Adresses e-mail à informer de la demande d'autorisation Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez souhaiter envoyer une notification à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité des employés.

  5. Cliquez sur Demander l'autorisation.

  6. Pour consulter l'historique de vos subventions, y compris leur état d'approbation, cliquez sur l'onglet Subventions, puis sur l'onglet Mes subventions.

Demander une autorisation de manière programmatique

Pour demander une autorisation pour un droit d'accès, procédez comme suit:

  1. Recherchez les ID de droit d'accès disponibles pour lesquels vous pouvez demander des autorisations.

  2. Demandez l'autorisation.

Vous pouvez ensuite vérifier l'état de votre autorisation pour voir si elle est active, ce qui signifie que vous avez reçu l'élevation temporaire.

Rechercher les droits d'accès disponibles

gcloud

La commande gcloud beta pam entitlements search avec le type d'accès de l'appelant grant-requester recherche les droits d'accès pour lesquels vous pouvez demander une autorisation.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation Google Cloud pour lequel/laquelle vous souhaitez gérer les droits d'accès. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Vous devriez obtenir un résultat semblable à celui-ci :

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

La méthode searchEntitlements de l'API Privileged Access Manager avec le type d'accès de l'appelant GRANT_REQUESTER recherche les droits d'accès pour lesquels vous pouvez demander une autorisation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • SCOPE : organisation, dossier ou projet dans lequel/laquelle le droit d'accès est attribué, au format organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.
  • FILTER : facultatif. Renvoie les droits d'accès dont les valeurs de champ correspondent à une expression AIP-160.
  • PAGE_SIZE : facultatif. Nombre d'éléments à renvoyer dans une réponse.
  • PAGE_TOKEN : facultatif. Page à partir de laquelle commencer la réponse, à l'aide d'un jeton de page renvoyé dans une réponse précédente.

Méthode HTTP et URL :

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements:search?callerAccessType=GRANT_REQUESTER&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Demander l'attribution d'un droit d'accès

gcloud

La commande gcloud beta pam grants create demande une autorisation.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • ENTITLEMENT_ID: ID d'éligibilité à partir duquel créer l'autorisation.
  • GRANT_DURATION: durée demandée de l'autorisation, en secondes.
  • JUSTIFICATION: justification de la demande d'attribution.
  • EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à informer de la demande d'autorisation d'accès. Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez souhaiter envoyer une notification à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération des identités des employés.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation Google Cloud pour lequel/laquelle vous souhaitez gérer les droits d'accès. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud beta 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 beta 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 beta 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

Vous devriez obtenir un résultat semblable à celui-ci :

Created [GRANT_ID].

REST

La méthode createGrant de l'API Privileged Access Manager demande une autorisation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • SCOPE : organisation, dossier ou projet dans lequel/laquelle le droit d'accès est attribué, au format organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.
  • ENTITLEMENT_ID: ID d'éligibilité à partir duquel créer l'autorisation.
  • REQUEST_ID : facultatif. Doit être un UUID non nul. Si le serveur reçoit une requête avec un ID de requête, il vérifie si une autre requête avec cet ID a déjà été traitée au cours des 60 dernières minutes. Si c'est le cas, la nouvelle requête est ignorée.
  • GRANT_DURATION: durée demandée de l'autorisation, en secondes.
  • JUSTIFICATION: justification de la demande d'attribution.
  • EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à informer de la demande d'autorisation d'accès. Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez souhaiter envoyer une notification à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité des employés.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Vérifier l'état de votre demande de subvention

gcloud

La commande gcloud beta pam grants search utilisée avec la relation appelant had-created recherche les autorisations que vous avez créées. Pour vérifier leur état, recherchez le champ state dans la réponse.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • ENTITLEMENT_ID: ID du droit d'accès auquel l'octroi appartient.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeur organization, folder ou project.
  • RESOURCE_ID: utilisé avec RESOURCE_TYPE. ID du projet, du dossier ou de l'organisation Google Cloud pour lequel/laquelle vous souhaitez gérer les droits d'accès. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

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

Windows (PowerShell)

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

Windows (cmd.exe)

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

Vous devriez obtenir un résultat semblable à celui-ci :

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'

Les subventions peuvent présenter les états suivants:

État Description
ACTIVATING L'autorisation est en cours d'activation.
ACTIVATION_FAILED Privileged Access Manager n'a pas pu accorder les rôles en raison d'une erreur non récupérable.
ACTIVE L'octroi est actif et le compte principal a accès aux ressources autorisées par les rôles.
APPROVAL_AWAITED La demande d'autorisation d'accès est en attente d'une décision de la part d'un approbateur.
REFUSÉ La demande d'attribution a été refusée par un approbateur.
ENDED L'autorisation a pris fin et les rôles ont été supprimés du compte principal.
EXPIRED La demande d'autorisation a expiré, car elle n'a pas été approuvée dans un délai de 24 heures.
REVOKED L'autorisation est révoquée, et le principal n'a plus accès aux ressources autorisées par les rôles.
REVOKING L'autorisation est en cours de révocation.

REST

La méthode searchGrants de l'API Privileged Access Manager utilisée avec la relation de l'appelant HAD_CREATED recherche les autorisations que vous avez créées. Pour vérifier leur état, recherchez le champ state dans la réponse.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • SCOPE : organisation, dossier ou projet dans lequel/laquelle le droit d'accès est attribué, au format organizations/ORGANIZATION_ID, folders/FOLDER_ID ou projects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont des valeurs numériques, telles que 123456789012.
  • ENTITLEMENT_ID: ID du droit d'accès auquel l'octroi appartient.
  • FILTER : facultatif. Renvoie les subventions dont les valeurs de champ correspondent à une expression AIP-160.
  • PAGE_SIZE : facultatif. Nombre d'éléments à renvoyer dans une réponse.
  • PAGE_TOKEN : facultatif. Page à partir de laquelle commencer la réponse, à l'aide d'un jeton de page renvoyé dans une réponse précédente.

Méthode HTTP et URL :

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants:search?callerRelationship=HAD_CREATED&filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

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

Les états des autorisations sont détaillés dans le tableau suivant.

État Description
ACTIVATING L'autorisation est en cours d'activation.
ACTIVATION_FAILED Privileged Access Manager n'a pas pu accorder les rôles en raison d'une erreur non récupérable.
ACTIVE L'octroi est actif et le compte principal a accès aux ressources autorisées par les rôles.
APPROVAL_AWAITED La demande d'autorisation d'accès est en attente d'une décision de la part d'un approbateur.
REFUSÉ La demande d'attribution a été refusée par un approbateur.
ENDED L'autorisation a pris fin et les rôles ont été supprimés du compte principal.
EXPIRED La demande d'autorisation a expiré, car elle n'a pas été approuvée dans un délai de 24 heures.
REVOKED L'autorisation est révoquée, et le principal n'a plus accès aux ressources autorisées par les rôles.
REVOKING L'autorisation est en cours de révocation.