Privileged Access Manager (PAM) vous permet de créer des droits d'accès sur une organisation, un dossier ou un projet afin de fournir un accès temporaire à la demande aux ressourcesGoogle Cloud . Chaque droit d'accès définit les rôles IAM (Identity and Access Management) à accorder, les demandeurs éligibles, la durée d'accès maximale et tout workflow d'approbation requis. Les rôles accordés par un droit d'accès suivent la hiérarchie des ressources Google Cloud. Les ressources enfants héritent donc de l'accès accordé au niveau parent.
Considérations relatives aux droits d'accès
Avant de créer une autorisation, passez en revue les exigences et contraintes suivantes :
- Rôles et services compatibles :
- Vous ne pouvez ajouter des rôles prédéfinis ou personnalisés que pour les services qui prennent en charge les conditions IAM.
- Pour les rôles de base, seuls
Admin(roles/admin),Writer(roles/writer) etReader(roles/reader) sont acceptés. Les anciens rôles de baseOwner,EditoretViewerne sont pas acceptés. - N'attribuez pas de rôles d'agent de service dans les autorisations. Certains rôles d'agents de service contiennent des autorisations très puissantes, qui peuvent être modifiées sans préavis. Choisissez plutôt un autre rôle prédéfini ou créez un rôle personnalisé avec les autorisations dont vous avez besoin.
- Demandeurs et approbateurs :
- Vous pouvez ajouter jusqu'à 20 comptes principaux en tant que demandeurs et jusqu'à 20 comptes principaux par niveau d'approbation en tant qu'approbateurs. Si vous ajoutez un groupe en tant que demandeur ou approbateur, tous les membres du groupe peuvent demander ou examiner des autorisations, mais seul le compte individuel demandant une autorisation reçoit des droits élevés.
- Si les approbations automatiques sont activées pour la ressource, vous pouvez ajouter des comptes de service, des identités d'agent et des identités de pool de charges de travail en tant qu'approbateurs (bêta). Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
- Si le niveau Security Command Center Premium ou Enterprise est activé, vous pouvez configurer jusqu'à deux niveaux d'approbation séquentiels par droit d'accès et exiger jusqu'à cinq approbations par niveau (preview).
Les approbateurs de deuxième niveau sont avertis une fois les approbations de premier niveau terminées, et l'autorisation devient
activeune fois les approbations de deuxième niveau reçues. Si un approbateur refuse la demande, l'autorisation passe à l'étatdeniedsans en informer les autres approbateurs.
- Accès existant : la création d'une autorisation ne révoque pas les liaisons de rôles IAM permanentes dont disposent déjà les comptes principaux. Pour exiger un accès juste-à-temps, supprimez séparément les liaisons de rôles permanentes existantes.
Avant de commencer
Pour obtenir les autorisations nécessaires pour créer des droits d'accès, demandez à votre administrateur de vous accorder les rôles IAM suivants sur l'organisation, le dossier ou le projet pour lequel vous souhaitez créer des droits d'accès :
-
Créez des droits d'accès pour une organisation :
- Administrateur Privileged Access Manager (
roles/privilegedaccessmanager.admin) - Administrateur de sécurité (
roles/iam.securityAdmin)
- Administrateur Privileged Access Manager (
-
Créer pour un dossier :
- Administrateur Privileged Access Manager (
roles/privilegedaccessmanager.admin) - Administrateur IAM de dossier (
roles/resourcemanager.folderAdmin)
- Administrateur Privileged Access Manager (
-
Créer des droits d'accès pour un projet :
- Administrateur Privileged Access Manager (
roles/privilegedaccessmanager.admin) - Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin)
- Administrateur Privileged Access Manager (
-
Pour afficher les journaux d'audit : Visionneuse de journaux (
roles/logs.viewer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des droits d'accès. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des droits d'accès :
-
Pour créer des droits d'accès et des octrois d'autorisations pour une organisation :
-
resourcemanager.organizations.get -
resourcemanager.organizations.setIamPolicy -
privilegedaccessmanager.entitlements.create
-
-
Pour créer des droits d'accès et des octrois d'autorisations pour un dossier :
-
resourcemanager.folders.get -
resourcemanager.folders.setIamPolicy -
privilegedaccessmanager.entitlements.create
-
-
Pour créer des droits d'accès et des octrois d'autorisations pour un projet :
-
resourcemanager.projects.get -
resourcemanager.projects.setIamPolicy -
privilegedaccessmanager.entitlements.create
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer des droits d'accès
Console
Accédez à la page Privileged Access Manager.
Sélectionnez l'organisation, le dossier ou le projet auquel vous souhaitez appliquer l'autorisation.
Cliquez sur l'onglet Droits d'accès.
Cliquez sur Créer.
Dans la section Détails de l'autorisation, saisissez les informations suivantes :
Nom d'un droit d'accès. Le nom d'un droit d'accès peut comporter entre 4 et 63 caractères. Il doit commencer par une lettre minuscule et ne peut contenir que des lettres minuscules, des chiffres et des traits d'union.
Jusqu'à 30 rôles à attribuer au niveau de l'organisation, du dossier ou du projet.
Vous pouvez également ajouter des conditions IAM à ces rôles de la même manière que vous ajoutez des conditions aux liaisons de rôles de stratégie d'autorisation.
Durée maximale d'une autorisation. La durée maximale que vous pouvez définir pour une autorisation est de sept jours.
Cliquez sur Suivant.
Dans la section Ajouter des demandeurs, saisissez jusqu'à 20 comptes principaux valides pour le droit d'accès.
Tous les types de comptes principaux sont acceptés, à l'exception de
allUsersetallAuthenticatedUsers. Vous pouvez ajouter plus de 20 identités en les ajoutant à un groupe et en listant le groupe dans l'autorisation.Indiquez si les comptes principaux doivent fournir une justification pour la demande d'attribution.
Saisissez les adresses e-mail supplémentaires des utilisateurs qui doivent être avertis lorsque le droit d'accès peut être demandé.
Les Google Identity associées au droit d'accès, comme les approbateurs et les demandeurs, sont automatiquement notifiées. Toutefois, si vous souhaitez notifier d'autres personnes, vous pouvez ajouter leurs adresses e-mail. Cela est particulièrement utile si vous utilisez des identités de personnel au lieu de comptes Google.
Cliquez sur Suivant.
Dans la section Ajouter des approbateurs, effectuez l'une des opérations suivantes :
Pour autoriser l'attribution de rôles sans approbation, sélectionnez Activer l'accès sans les approbations.
Pour rendre les approbations obligatoires, procédez comme suit :
- Facultatif : Pour exiger que les approbateurs saisissent des justifications pour approuver les demandes, sélectionnez Justification exigée de la part des approbateurs.
Saisissez les informations sur l'approbateur de premier niveau :
Liste des approbateurs du droit d'accès
Vous pouvez ajouter l'un des types de comptes principaux suivants en tant qu'approbateurs :
Comptes Google
Groupes Google
Domaines Google Workspace
Identifiants de pool d'employés
Identifiants de pool de charges de travail
Comptes de service et identités d'agent
Les comptes de service, les identités d'agent et les identifiants de pool de charges de travail ne sont disponibles que si les comptes de service et les identités d'agent sont autorisés à approuver les attributions pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
Nombre d'approbations requis
Si vous avez ajouté un groupe en tant qu'approbateur, assurez-vous que le nombre d'approbations requises est inférieur ou égal au nombre de comptes principaux du groupe. Sinon, les autorisations resteront bloquées indéfiniment à l'état
approval awaited.Adresses e-mail des approbateurs pour la notification
Facultatif : Ajoutez les détails de l'approbateur de deuxième niveau :
Liste des approbateurs du droit d'accès
Vous pouvez ajouter l'un des types de comptes principaux suivants en tant qu'approbateurs :
Comptes Google
Groupes Google
Domaines Google Workspace
Identifiants de pool d'employés
Identifiants de pool de charges de travail
Comptes de service et identités d'agent
Les comptes de service, les identités d'agent et les identifiants de pool de charges de travail ne sont disponibles que si les comptes de service et les identités d'agent sont autorisés à approuver les attributions pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
Nombre d'approbations requis
Si vous avez ajouté un groupe en tant qu'approbateur, assurez-vous que le nombre d'approbations requises est inférieur ou égal au nombre de comptes principaux du groupe. Sinon, les autorisations resteront bloquées indéfiniment à l'état
approval awaited.Adresses e-mail des approbateurs pour les notifications
Vous pouvez ajouter jusqu'à 20 comptes principaux d'approbation (identités ou groupes) par approbation. Si vous souhaitez ajouter plus de 20 approbateurs, vous pouvez les ajouter à un groupe et lister ce groupe comme approbateur pour l'autorisation d'accès.
Cliquez sur Suivant.
Cliquez sur Créer un droit d'accès.
La propagation des droits d'accès nouvellement créés peut prendre quelques minutes avant qu'ils ne soient prêts à être utilisés.
gcloud
La commande gcloud alpha pam entitlements create crée une autorisation 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 du droit d'accès à 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 l'autorisation appartient. Utilisez la valeurorganization,folderouproject.SCOPE: organisation, dossier ou projet dans lequel/laquelle créer le droit d'accès, au formatorganizations/ORGANIZATION_ID,folders/FOLDER_IDouprojects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles quemy-project. Les ID de dossier et d'organisation sont numériques, tels que123456789012.RESOURCE_MANAGER_RESOURCE_TYPE:Organization,FolderouProject, selon le champ d'application.ROLE: rôles à attribuer lorsqu'une autorisation est accordée.MAXIMUM_GRANT_DURATION: durée maximale pendant laquelle une autorisation peut être demandée, en secondes, se terminant par le suffixes. Par exemple, pour spécifier 30 minutes, utilisez1800s. La plage acceptée est comprise entre 30 minutes (1800s) et 168 heures (604800s).-
REQUESTING_MEMBER: comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types de comptes principaux sont acceptés, à l'exception deallUsersetallAuthenticatedUsers. -
APPROVING_MEMBER: comptes principaux pouvant approuver la demande d'autorisation. Les types de comptes principaux valides sont les suivants :- Utilisateur
- Groupe
- Domaine
- Identifiants de pool d'employés
- Identifiants de pool de charges de travail
Cette option n'est disponible que si les comptes de service et les identités d'agent sont autorisés à approuver les demandes d'accès pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
- Comptes de service et identités d'agent
Cette option n'est disponible que si les comptes de service et les identités d'agent sont autorisés à approuver les demandes d'accès pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
APPROVALS_NEEDED: nombre d'approbateurs requis pour approuver la demande d'autorisation.Si vous avez ajouté un groupe en tant qu'approbateur, assurez-vous que le nombre d'approbations requises est inférieur ou égal au nombre de comptes principaux dans le groupe. Sinon, les autorisations resteront bloquées indéfiniment à l'état
approval awaited.APPROVER_EMAIL_ADDRESSES: facultatif. Adresses e-mail supplémentaires à notifier lorsqu'une autorisation a été demandée. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez 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.ADMIN_EMAIL_ADDRESS: facultatif. Adresses e-mail supplémentaires à notifier lorsqu'un demandeur obtient l'accès. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez 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.REQUESTER_EMAIL_ADDRESS: facultatif. Adresses e-mail supplémentaires à notifier lorsque ce droit d'accès est disponible pour une demande. Les identités Google associées aux demandeurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération des identités des employés.CONDITION_EXPRESSION: facultatif. L'expression de condition qui spécifie quand le compte principal peut utiliser les autorisations du rôle. Cette condition ne s'applique que lorsque l'autorisation est active.
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 conditionExpression: CONDITION_EXPRESSION_1 - role: ROLE_2 conditionExpression: CONDITION_EXPRESSION_2 maxRequestDuration: MAXIMUM_GRANT_DURATION eligibleUsers: - principals: - REQUESTING_MEMBER_1 - REQUESTING_MEMBER_2 approvalWorkflow: manualApprovals: requireApproverJustification: true steps: - approvalsNeeded: APPROVALS_NEEDED_1 approverEmailRecipients: - APPROVER_EMAIL_ADDRESSES_1 - APPROVER_EMAIL_ADDRESSES_2 approvers: - principals: - APPROVING_MEMBER_1 - APPROVING_MEMBER_2 - approvalsNeeded: APPROVALS_NEEDED_2 approverEmailRecipients: - APPROVER_EMAIL_ADDRESSES_3 - APPROVER_EMAIL_ADDRESSES_4 approvers: - principals: - APPROVING_MEMBER_3 - APPROVING_MEMBER_4 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 alpha pam entitlements create \ ENTITLEMENT_ID \ --entitlement-file=entitlement.yaml \ --location=global \ --RESOURCE_TYPE=RESOURCE_ID
Windows (PowerShell)
gcloud alpha pam entitlements create ` ENTITLEMENT_ID ` --entitlement-file=entitlement.yaml ` --location=global ` --RESOURCE_TYPE=RESOURCE_ID
Windows (cmd.exe)
gcloud alpha 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/PROJECT_ID/locations/global/operations/OPERATION_ID] to complete...done.
Created entitlement [ENTITLEMENT_ID].
additionalNotificationTargets: {}
approvalWorkflow:
manualApprovals:
requireApproverJustification: true
steps:
- id: step-1
approvalsNeeded: 3
approvers:
- principals:
- user:alex@example.com
- group:dev-team@example.com
- id: step-2
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/RESOURCE_TYPE/RESOURCE_ID
resourceType: cloudresourcemanager.googleapis.com/Project
roleBindings:
- role: roles/storage.admin
id: hwarq_1
conditionExpression: "request.time.getHours() >= 8"
requesterJustificationConfig:
unstructured: {}
state: AVAILABLE
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_IDouprojects/PROJECT_ID. Les ID de projet sont des chaînes alphanumériques, telles quemy-project. Les ID de dossier et d'organisation sont numériques, tels que123456789012.ENTITLEMENT_ID: ID du droit d'accès à 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_MANAGER_RESOURCE_TYPE:Organization,FolderouProject, selon le champ d'application.ROLE: rôles à attribuer lorsqu'une autorisation est accordée.MAXIMUM_GRANT_DURATION: durée maximale pendant laquelle une autorisation peut être demandée, en secondes, se terminant par le suffixes. Par exemple, pour spécifier 30 minutes, utilisez1800s. La plage acceptée est comprise entre 30 minutes (1800s) et 168 heures (604800s).-
REQUESTING_MEMBER: comptes principaux pouvant demander l'octroi du droit d'accès. Tous les types de comptes principaux sont acceptés, à l'exception deallUsersetallAuthenticatedUsers. -
APPROVING_MEMBER: comptes principaux pouvant approuver la demande d'autorisation. Les types de comptes principaux valides sont les suivants :- Utilisateur
- Groupe
- Domaine
- Identifiants de pool d'employés
- Identifiants de pool de charges de travail
Cette option n'est disponible que si les comptes de service et les identités d'agent sont autorisés à approuver les demandes d'accès pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
- Comptes de service et identités d'agent
Cette option n'est disponible que si les comptes de service et les identités d'agent sont autorisés à approuver les demandes d'accès pour cette ressource. Pour en savoir plus, consultez Configurer les paramètres de Privileged Access Manager.
APPROVALS_NEEDED: nombre d'approbateurs requis pour approuver la demande d'autorisation.Si vous avez ajouté un groupe en tant qu'approbateur, assurez-vous que le nombre d'approbations requises est inférieur ou égal au nombre de comptes principaux du groupe. Sinon, les autorisations resteront bloquées indéfiniment à l'état
approval awaited.APPROVER_EMAIL_ADDRESSES: facultatif. Adresses e-mail supplémentaires à notifier lorsqu'une autorisation a été demandée. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez 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.ADMIN_EMAIL_ADDRESS: facultatif. Adresses e-mail supplémentaires à notifier lorsqu'un demandeur obtient l'accès. Les identités Google associées aux approbateurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez notifier un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération des identités des employés.REQUESTER_EMAIL_ADDRESS: facultatif. Adresses e-mail supplémentaires à notifier lorsque ce droit d'accès est disponible pour une demande. Les identités Google associées aux demandeurs d'attribution sont automatiquement notifiées. Toutefois, vous pouvez envoyer des notifications à un autre ensemble d'adresses e-mail, en particulier si vous utilisez la fédération des identités des employés.CONDITION_EXPRESSION: facultatif. L'expression de condition qui spécifie quand le compte principal peut utiliser les autorisations du rôle. Cette condition ne s'applique que lorsque l'autorisation est active.
Méthode HTTP et URL :
POST https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?entitlementId=ENTITLEMENT_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",
"conditionExpression": "CONDITION_EXPRESSION_1",
},
{
"role": "ROLE_2",
"conditionExpression": "CONDITION_EXPRESSION_2",
},
]
}
},
"maxRequestDuration": "MAXIMUM_GRANT_DURATION",
"eligibleUsers": [
{
"principals": [
"REQUESTING_MEMBER_1",
"REQUESTING_MEMBER_2",
...
]
}
],
"approvalWorkflow": {
"manualApprovals": {
"requireApproverJustification": true,
"steps": [
{
"approvers": [
{
"principals": [
"APPROVING_MEMBER_1",
"APPROVING_MEMBER_2",
]
}
],
"approvalsNeeded": APPROVALS_NEEDED_1,
"approverEmailRecipients": [
"APPROVER_EMAIL_ADDRESSES_1",
"APPROVER_EMAIL_ADDRESSES_2",
]
},
{
"approvers": [
{
"principals": [
"APPROVING_MEMBER_3",
"APPROVING_MEMBER_4",
]
}
],
"approvalsNeeded": APPROVALS_NEEDED_2,
"approverEmailRecipients": [
"APPROVER_EMAIL_ADDRESSES_3",
"APPROVER_EMAIL_ADDRESSES_4",
]
}
]
}
},
"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/PROJECT_ID/locations/global/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
"createTime": "2024-03-05T03:35:14.596739353Z",
"target": "projects/PROJECT_ID/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 autorisations. Pour en savoir plus, consultez google_privileged_access_manager_entitlement dans la documentation Terraform. La propagation des droits d'accès nouvellement créés peut prendre quelques minutes avant qu'ils ne soient prêts à être utilisés.
Config Connector
Vous pouvez utiliser Kubernetes Config Connector pour créer des droits d'accès. Pour en savoir plus, consultez PrivilegedAccessManagerEntitlement dans la documentation de Config Connector. La propagation des droits d'accès nouvellement créés peut prendre quelques minutes avant qu'ils ne soient prêts à être utilisés.
Étapes suivantes
- Afficher, modifier et supprimer des droits d'accès
- Configurer les paramètres de Privileged Access Manager
- Auditer les événements de droit d'accès