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

Pour élever temporairement vos privilèges, 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'accès 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 attribution 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 responsable principal de ce droit.

  • Vous ne pouvez avoir qu'un seul accès actif à la fois pour un droit d'accès.

  • Selon sa configuration, une demande d'autorisation peut nécessiter une approbation pour être accordée.

  • Si une demande d'autorisation nécessite une approbation et n'est pas approuvée ni refusée dans un délai de 24 heures, l'état de l'autorisation passe à Expired. Ensuite, vous devez envoyer une nouvelle demande d'attribution si l'élévation des privilèges est toujours nécessaire.

  • L'activation des demandes d'accès approuvées peut prendre quelques minutes.

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

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

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

    Accéder à Privileged Access Manager

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

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

  4. Spécifiez les informations suivantes :

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

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

    • Facultatif : adresses e-mail auxquelles envoyer une notification concernant la demande d'accès. Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.

  5. Cliquez sur Demander une subvention.

  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 attribution pour un droit d'accès, vous devez procéder comme suit :

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

  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'élévation temporaire.

Rechercher les droits d'accès disponibles

gcloud

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

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

  • RESOURCE_TYPE : facultatif. Type de ressource auquel appartient le droit d'accès. 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 numériques, tels que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou 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

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 à l'appelant GRANT_REQUESTER recherche les droits d'accès pour lesquels vous pouvez demander une attribution.

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/v1/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 pam grants create demande une attribution.

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

  • ENTITLEMENT_ID : ID du droit d'accès pour lequel créer l'attribution.
  • GRANT_DURATION : durée demandée de l'attribution, en secondes.
  • JUSTIFICATION : justification de la demande d'attribution.
  • EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à notifier de la demande d'accès. Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité du personnel.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel appartient le droit d'accès. 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 numériques, tels que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou 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

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 du droit d'accès pour lequel créer l'attribution.
  • REQUEST_ID : facultatif. Doit être un UUID différent de zéro. 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 demande est ignorée.
  • GRANT_DURATION : durée demandée de l'attribution, en secondes.
  • JUSTIFICATION : justification de la demande d'attribution.
  • EMAIL_ADDRESS : facultatif. Adresses e-mail supplémentaires à notifier de la demande d'accès. Les identités Google associées aux approbateurs sont automatiquement notifiées. Toutefois, vous pouvez choisir d'envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération d'identité de personnel.

Méthode HTTP et URL :

POST https://privilegedaccessmanager.googleapis.com/v1/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 pam grants search utilisée avec la relation d'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'attribution appartient.
  • RESOURCE_TYPE : facultatif. Type de ressource auquel appartient le droit d'accès. 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 numériques, tels que 123456789012.

Exécutez la commande suivante :

Linux, macOS ou 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

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 autorisations peuvent avoir 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'autorisation est active et le compte principal a accès aux ressources autorisées par les rôles.
APPROVAL_AWAITED La demande 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'attribution est terminée 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 les 24 heures.
REVOKED L'autorisation est révoquée et le compte principal n'a plus accès aux ressources autorisées par les rôles.
REVOKING L'accès est en cours de révocation.

REST

La méthode searchGrants de l'API Privileged Access Manager utilisée avec la relation d'appelant HAD_CREATED recherche les droits d'accès que vous avez créés. 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'attribution appartient.
  • FILTER : facultatif. Renvoie les autorisations 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/v1/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 subventions 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'autorisation est active et le compte principal a accès aux ressources autorisées par les rôles.
APPROVAL_AWAITED La demande 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'attribution est terminée 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 les 24 heures.
REVOKED L'autorisation est révoquée et le compte principal n'a plus accès aux ressources autorisées par les rôles.
REVOKING L'accès est en cours de révocation.