Vous pouvez créer des droits d'accès pour autoriser l'élévation temporaire des droits d'accès pour un ensemble sélectionné de comptes principaux. Tenez compte des points suivants lorsque vous créez des droits d'accès:
Les droits d'accès peuvent être créés au niveau de l'organisation, du dossier ou du projet. Les rôles accordés par un droit d'accès à chaque niveau suivent la hiérarchie des ressources Google Cloud. Par exemple, les rôles accordés par un droit d'accès au niveau de l'organisation sont hérités au niveau des dossiers et des projets.
Si vous ajoutez un groupe en tant que demandeur à un droit d'accès, tous les comptes individuels de ce groupe peuvent demander l'octroi de ce droit d'accès. Toutefois, seul le compte individuel qui demande l'octroi peut recevoir des droits élevés.
Si vous ajoutez un groupe en tant qu'approbateur à un droit d'accès, tous les comptes individuels de ce groupe peuvent approuver ou refuser une demande d'octroi.
Les rôles de base ne sont pas acceptés.
Avant de commencer
Assurez-vous d'avoir activé Privileged Access Manager et configuré les autorisations correspondantes.
Créer des droits d'accès à l'aide de la console Google Cloud
Pour créer un droit d'accès, procédez comme suit:
Accédez à la page Privileged Access Manager.
Sélectionnez l'organisation, le dossier ou le projet auxquels vous souhaitez appliquer le droit d'accès.
Cliquez sur l'onglet Droits d'accès.
Cliquez sur Créer.
Ajoutez les informations sur les droits d'accès suivantes:
Nom du droit d'accès.
Vous pouvez attribuer jusqu'à 30 rôles à l'organisation, au dossier ou au projet. Vous pouvez appliquer des conditions IAM à ces rôles, à condition qu'ils ne correspondent pas à des tags de ressources.
Durée pendant laquelle les droits d'accès peuvent être accordés
Cliquez sur Suivant.
Recherchez et ajoutez jusqu'à 20 comptes principaux valides pour le droit d'accès. Tous les types principaux sont acceptés, à l'exception de
allUsers
etallAuthenticatedUsers
. Vous pouvez ajouter plus de 20 identités en les ajoutant à un groupe et en listant le groupe dans le droit d'accès.Indiquez si les comptes principaux doivent justifier la demande d'autorisation.
Cliquez sur Suivant.
Choisissez d'autoriser l'attribution de rôles sans approbation, ou recherchez et ajoutez des comptes principaux valides pouvant approuver la demande. Les types de comptes principaux valides sont les suivants:
Comptes Google
Groupes
Domaines Google Workspace
Identifiants de pool d'employés
Si vous choisissez d'avoir des validateurs, indiquez également s'ils doivent justifier leur approbation de la demande d'autorisation. Vous pouvez ajouter jusqu'à 20 principaux d'approbation par droit d'accès. Vous pouvez ajouter plus de 20 identités en les ajoutant à un groupe et en listant le groupe dans le droit d'accès.
Cliquez sur Suivant.
Facultatif: ajoutez les adresses e-mail des personnes à avertir lorsque le droit d'accès est disponible pour la demande, lorsqu'une autorisation est en attente d'approbation et lorsqu'un demandeur se voit accorder l'accès. Les identités Google associées au droit d'accès, comme les approbateurs et les demandeurs, 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é de personnel.
Cliquez sur Créer un droit d'accès.
Créer des droits d'accès de manière programmatique
gcloud
La commande gcloud beta pam entitlements create
crée un droit d'accès au niveau de l'organisation, du dossier ou du projet.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
ENTITLEMENT_ID
: ID d'éligibilité à créer. Un ID doit comporter entre 4 et 63 caractères et utiliser les caractères suivants :[a-z0-9-]
. Le premier caractère doit être une lettreRESOURCE_TYPE
: facultatif. Type de ressource auquel le droit d'accès appartient. Utilisez la valeurorganization
,folder
ouproject
.RESOURCE_ID
: utilisé avecRESOURCE_TYPE
. ID de l'organisation, du dossier ou du projet 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 quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.SCOPE
: organisation, dossier ou projet dans lequel/laquelle créer le droit d'accès, au formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.RESOURCE_MANAGER_RESOURCE_TYPE
:Organization
,Folder
ouProject
, selon la portée.ROLE
: rôles à attribuer lorsqu'un droit d'accès est accordé.TIME_IN_SECONDS
: durée maximale d'une autorisation, en secondes.-
REQUESTING_MEMBER
: comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types principaux sont acceptés, à l'exception deallUsers
etallAuthenticatedUsers
. APPROVING_EMAIL
: facultatif. Adresses e-mail supplémentaires à informer lorsqu'une autorisation a été demandée. Les identités Google associées aux approbateurs d'attribution 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.-
APPROVING_MEMBER
: comptes principaux pouvant approuver la demande de droit d'accès. Les types principaux valides sont les suivants :- Utilisateur
- Groupe
- Domaine
- Identifiants de pool d'employés
ADMIN_EMAIL_ADDRESS
: facultatif. Adresses e-mail supplémentaires à informer lorsque l'accès est accordé à un demandeur. Les identités Google associées aux approbateurs d'attribution 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.REQUESTER_EMAIL_ADDRESS
: facultatif. Autres adresses e-mail à avertir lorsque ce droit d'accès sera disponible. Les identités Google associées aux demandeurs d'attribution 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.
Enregistrez le code suivant dans un fichier nommé 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
Exécutez la commande suivante :
Linux, macOS ou 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
Vous devriez obtenir un résultat semblable à celui-ci :
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
La méthode createEntitlement
de l'API Privileged Access Manager crée un droit d'accès au niveau de l'organisation, du dossier ou du projet.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
SCOPE
: organisation, dossier ou projet dans lequel/laquelle créer le droit d'accès, au formatorganizations/ORGANIZATION_ID
,folders/FOLDER_ID
ouprojects/PROJECT_ID
. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
. Les ID de dossier et d'organisation sont des valeurs numériques, telles que123456789012
.ENTITLEMENT_ID
: ID d'éligibilité à créer. Un ID doit comporter entre 4 et 63 caractères et utiliser les caractères suivants :[a-z0-9-]
. Le premier caractère doit être une lettreREQUEST_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.RESOURCE_MANAGER_RESOURCE_TYPE
:Organization
,Folder
ouProject
, selon la portée.ROLE
: rôles à attribuer lorsqu'un droit d'accès est accordé.TIME_IN_SECONDS
: durée maximale d'une autorisation, en secondes.-
REQUESTING_MEMBER
: comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types principaux sont acceptés, à l'exception deallUsers
etallAuthenticatedUsers
. -
APPROVING_MEMBER
: comptes principaux pouvant approuver la demande de droit d'accès. Les types principaux valides sont les suivants :- Utilisateur
- Groupe
- Domaine
- Identifiants de pool d'employés
APPROVING_EMAIL
: facultatif. Adresses e-mail supplémentaires à informer lorsqu'une autorisation a été demandée. Les identités Google associées aux approbateurs d'attribution 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.ADMIN_EMAIL_ADDRESS
: facultatif. Adresses e-mail supplémentaires à informer lorsque l'accès est accordé à un demandeur. Les identités Google associées aux approbateurs d'attribution 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.REQUESTER_EMAIL_ADDRESS
: facultatif. Autres adresses e-mail à avertir lorsque ce droit d'accès sera disponible. Les identités Google associées aux demandeurs d'attribution 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?entitlementId=ENTITLEMENT_ID&requestId=REQUEST_ID
Corps JSON de la requête :
{ "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", ... ] } }
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/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 }
Pour vérifier la progression d'une opération de création, vous pouvez envoyer une requête GET
au point de terminaison suivant:
https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID
Envoyez une requête GET
au point de terminaison suivant pour lister toutes les opérations:
https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations
Terraform
Vous pouvez utiliser Terraform pour créer des droits d'accès. Pour en savoir plus, consultez google_privileged_access_manager_entitlement dans la documentation Terraform.Étape suivante
- Demander un accès temporaire avec des droits élevés
- Approuver ou refuser les autorisations
- Afficher, mettre à jour et supprimer des droits d'accès
- Auditer les événements de droit d'accès