Créer un rôle personnalisé

Cette page explique comment créer et gérer des rôles personnalisés dans Google Distributed Cloud (GDC) avec isolation physique. Les rôles personnalisés vous permettent de gérer l'accès au-delà des ensembles d'autorisations standards disponibles dans les rôles prédéfinis. Vous pouvez ainsi configurer les autorisations pour répondre à vos critères spécifiques.

Les rôles personnalisés suivent le principe du moindre privilège et sont utiles pour accorder l'accès minimal requis pour les tâches sensibles, ce qui réduit les risques de sécurité et évite les conflits d'intérêts.

La création d'un rôle personnalisé vous permet d'effectuer les opérations suivantes :

  • Définissez le niveau d'accès : choisissez d'appliquer les autorisations à l'ensemble de votre organisation, à tous les projets ou de les limiter à des projets spécifiques.
  • Personnaliser l'accès précis : sélectionnez une ou plusieurs autorisations déjà disponibles via des rôles prédéfinis pour personnaliser l'accès à des tâches ou responsabilités spécifiques.

Les rôles personnalisés sont limités par le champ d'application dans lequel ils sont créés. L'accès au rôle personnalisé ne peut être accordé qu'au sein de l'organisation ou du projet dans lequel le rôle personnalisé a été créé.

Cette page s'adresse aux membres du groupe d'administrateurs de plate-forme, tels que les administrateurs informatiques ou les ingénieurs en sécurité, qui souhaitent gérer de manière sécurisée l'accès aux ressources de l'organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Pour en savoir plus sur les rôles, consultez les pages Descriptions des rôles prédéfinis et Définitions des rôles.

Avant de commencer

Avant de créer ou de gérer des rôles personnalisés, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM au niveau de l'organisation

Pour créer, mettre à jour et supprimer des rôles personnalisés dans une organisation ou un projet, contactez l'administrateur de l'organisation IAM pour demander le rôle Administrateur de l'organisation pour les rôles personnalisés (custom-role-org-admin).

En savoir plus sur l'attribution d'autorisations de rôle pour les organisations

Demander des rôles IAM au niveau du projet

Pour créer, mettre à jour et supprimer des rôles personnalisés dans un projet spécifique, contactez votre administrateur de projet IAM pour demander le rôle Administrateur de projet de rôles personnalisés (custom-role-project-admin).

En savoir plus sur l'attribution d'autorisations de rôle pour les projets

Préparer votre environnement

Pour utiliser les outils de ligne de commande afin de créer ou de gérer des rôles personnalisés, procédez comme suit :

Afficher les rôles et leurs autorisations

Un rôle personnalisé est constitué d'un groupe d'autorisations que vous pouvez attribuer à des utilisateurs. Pour créer un rôle personnalisé, sélectionnez des autorisations dans des rôles prédéfinis existants et combinez-les en fonction de vos besoins. Les autorisations que vous pouvez inclure dans un rôle personnalisé dépendent du niveau auquel vous créez le rôle : organisation ou projet.

Cette section explique comment lister les rôles disponibles (prédéfinis et personnalisés) et afficher les autorisations qu'ils contiennent. Vous pouvez utiliser ces informations pour effectuer les opérations suivantes :

  • Identifier les autorisations pour les nouveaux rôles personnalisés : découvrez les chaînes d'autorisation spécifiques requises pour l'option --permissions lorsque vous utilisez la CLI gdcloud pour créer un rôle personnalisé.
  • Examiner les rôles existants : examinez les autorisations associées à un rôle prédéfini ou personnalisé au niveau du champ d'application sélectionné (organisation ou projet).

Répertoriez les rôles et examinez leurs autorisations à l'aide de la console GDC ou de la CLI gdcloud :

Console

  1. Connectez-vous à la console GDC.
  2. Dans le sélecteur de projet, sélectionnez l'organisation ou le projet dont vous souhaitez afficher les rôles.
  3. Dans le menu de navigation, cliquez sur Identité et accès > Rôles.

    La liste des rôles prédéfinis et personnalisés disponibles s'affiche.

  4. Cliquez sur le nom d'un rôle pour afficher ses détails, y compris les autorisations attribuées.

    Les autorisations listées pour les rôles prédéfinis au niveau du champ d'application actuel (organisation ou projet) sont celles qui peuvent être incluses dans un nouveau rôle personnalisé.

gdcloud

  1. Assurez-vous d'avoir installé la CLI gdcloud. Pour en savoir plus, consultez la page de présentation de la gdcloud CLI.
  2. Répertoriez les rôles disponibles :

    gdcloud iam roles list \
      --type=ROLE_TYPE \
      --project=PROJECT
    

    Remplacez les éléments suivants :

    • ROLE_TYPE : type de rôles à lister. Les valeurs valides sont predefined, custom ou all.
    • PROJECT : espace de noms du projet dans lequel vous souhaitez afficher les rôles. Omettez l'option --project pour les rôles limités à l'organisation.
  3. Affichez les autorisations spécifiques d'un rôle :

    gdcloud iam roles describe ROLE_NAME \
      --project=PROJECT
    

    Remplacez les éléments suivants :

    • ROLE_NAME : nom de la ressource Kubernetes du rôle
    • PROJECT : espace de noms du projet dans lequel vous souhaitez afficher les autorisations de rôle. Omettez l'option --project pour les rôles limités à l'organisation.

Pour en savoir plus sur les commandes et obtenir des exemples d'utilisation, consultez gdcloud iam roles list et gdcloud iam roles describe.

Créer un rôle personnalisé

Créez un rôle personnalisé en regroupant les autorisations de rôles prédéfinis. Les rôles personnalisés héritent des fonctionnalités multizones IAM des rôles prédéfinis sur lesquels ils sont basés. Après avoir créé un rôle personnalisé, vous pouvez accorder l'accès aux utilisateurs.

Créez un rôle personnalisé à l'aide de la console GDC, de la CLI gdcloud ou de l'API :

Console

  1. Connectez-vous à la console GDC.
  2. Dans le sélecteur de projet, sélectionnez l'organisation ou le projet dans lequel vous souhaitez créer un rôle personnalisé.
  3. Dans le menu de navigation, cliquez sur Identité et accès > Rôles.
  4. Cliquez sur Créer un rôle personnalisé.
  5. Dans le champ Titre, saisissez le titre de votre rôle personnalisé.
  6. Dans le champ Description, décrivez l'objectif de votre rôle personnalisé.
  7. Dans le champ ID, saisissez l'identifiant unique de votre rôle personnalisé.

    Les ID de rôle personnalisé peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et ne peuvent pas être modifiés après la création du rôle.

  8. Sélectionnez une étape de lancement.

  9. Sélectionnez le champ d'application de votre rôle personnalisé.

    Si vous sélectionnez Organisation, le rôle personnalisé s'applique à toutes les ressources de l'organisation. Si vous sélectionnez Projets, le rôle personnalisé s'applique à tous les projets actuels et futurs de l'organisation. Vous pouvez sélectionner Limiter aux projets sélectionnés si vous souhaitez spécifier les projets pouvant accéder au rôle personnalisé.

  10. Cliquez sur Ajouter des autorisations.

  11. Cochez la case à côté d'une ou de plusieurs des autorisations compatibles que vous souhaitez attribuer à votre rôle personnalisé.

    Les autorisations disponibles sont limitées au champ d'application que vous avez sélectionné. Si vous modifiez le champ d'application après avoir ajouté des autorisations, vous devez confirmer que toutes les autorisations précédemment attribuées sont réinitialisées.

  12. Cliquez sur Enregistrer.

  13. Cliquez sur Create (Créer).

    Votre nouveau rôle personnalisé s'affiche sur la page Rôles.

gdcloud

  1. Assurez-vous d'avoir installé la CLI gdcloud. Pour en savoir plus, consultez la page de présentation de la gdcloud CLI.
  2. Créez un rôle personnalisé :

    gdcloud iam roles create ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Remplacez les éléments suivants :

    • ROLE_ID : identifiant unique de votre rôle personnalisé. Les ID de rôle personnalisé peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et contenir des traits d'union. Les ID de rôle personnalisé ne peuvent pas être modifiés après la création du rôle.
    • TITLE : titre convivial pour le rôle personnalisé
    • DESCRIPTION : description de l'objectif du rôle personnalisé
    • PERMISSIONS : liste des autorisations que vous souhaitez accorder pour le rôle personnalisé, séparées par une virgule

      Pour savoir comment trouver les chaînes d'autorisation appropriées, consultez Afficher les rôles et leurs autorisations. Chaque chaîne d'autorisation doit être mise en forme conformément aux instructions de la commande gdcloud iam roles create, où iamRoleName est le nom de ressource Kubernetes du rôle prédéfini contenant l'autorisation. Vous pouvez trouver le nom de ressource Kubernetes d'un rôle sur la page Définitions des rôles ou à l'aide de la commande gdcloud iam roles list.

    • LAUNCH_STAGE : facultatif. Étape de lancement du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si cette option est omise.

    Pour obtenir la liste complète des options obligatoires et facultatives, ainsi que des exemples d'utilisation, consultez gdcloud iam roles create.

    Vous pouvez également définir le rôle personnalisé dans un fichier YAML et utiliser l'option --file :

    gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATH
    

    Remplacez YAML_FILE_PATH par le chemin d'accès au fichier YAML contenant les options obligatoires et facultatives. Si vous utilisez l'option --file, toutes les autres options telles que --title, --description et --permissions sont ignorées.

API

Créez et appliquez la ressource personnalisée CustomRole à l'aide de kubectl :

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Remplacez les éléments suivants :

  • ROLE_NAME : nom de la ressource Kubernetes du rôle
  • NAMESPACE : espace de noms du rôle personnalisé. Utilisez platform pour les rôles à l'échelle de l'organisation et pour plusieurs projets. Utilisez l'espace de noms du projet (tel que my-project) pour les rôles limités au projet et les projets uniques.
  • DESCRIPTION : description de l'objectif du rôle personnalisé
  • ROLE_ID : identifiant unique de votre rôle personnalisé. Les ID de rôle personnalisé peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et contenir des traits d'union. Les ID de rôle personnalisés ne peuvent pas être modifiés après la création du rôle.
  • SCOPE : utilisez organization pour les rôles créés dans l'espace de noms platform. Utilisez project pour les rôles créés dans un espace de noms de projet.
  • LAUNCH_STAGE : facultatif. Étape de lancement du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si ce champ est omis.
  • TITLE : titre convivial pour le rôle personnalisé
  • RULES_TYPE : champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API globale), zonalRules (pour les autorisations dans l'API zonale) ou les deux.
  • RULES_LIST : liste en retrait d'objets de règle Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les valeurs apiGroups, resources et verbs appropriées en examinant les autorisations des rôles prédéfinis à l'aide de gdcloud iam roles describe, comme indiqué dans Afficher les rôles et leurs autorisations.

    L'exemple suivant montre la structure d'un seul élément dans un objet globalRules :

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Vous pouvez inclure plusieurs éléments dans la liste, chacun définissant un ensemble d'autorisations différent.

Gérer un rôle personnalisé

Vous êtes responsable de la gestion du cycle de vie de vos rôles personnalisés. Lorsque Distributed Cloud ajoute des autorisations, des fonctionnalités ou des services, il met à jour les rôles prédéfinis. Les mises à jour telles que la suppression d'un rôle prédéfini ou la suppression d'autorisations d'un rôle prédéfini peuvent rendre non fonctionnels les rôles personnalisés qui s'appuient sur ces autorisations. Vous devez surveiller ces mises à jour et ajuster manuellement les rôles personnalisés concernés pour vous assurer qu'ils continuent de fonctionner comme prévu.

Vous pouvez modifier, désactiver ou supprimer un rôle personnalisé, mais pas un rôle prédéfini. Pour afficher la liste de tous les rôles et de leurs autorisations spécifiques, consultez Afficher les rôles et leurs autorisations.

Modifier un rôle personnalisé

Modifiez un rôle personnalisé à l'aide de la console GDC, de la CLI gdcloud ou de l'API :

Console

  1. Connectez-vous à la console GDC.
  2. Dans le sélecteur de projet, sélectionnez l'organisation ou le projet dans lequel vous souhaitez modifier un rôle personnalisé.
  3. Dans le menu de navigation, cliquez sur Identité et accès > Rôles.
  4. Dans la liste des rôles, sélectionnez le rôle personnalisé que vous souhaitez modifier.
  5. Sur la page d'informations du rôle personnalisé, cliquez sur Modifier.
  6. Modifiez les détails de votre rôle personnalisé, tels que le titre, la description, l'ID ou l'étape de lancement.
  7. (Facultatif) Ajoutez ou supprimez des autorisations attribuées.
    1. Cliquez sur Ajouter des autorisations pour sélectionner des autorisations dans la liste des autorisations disponibles.
    2. Pour supprimer une autorisation attribuée, cochez la case à côté de l'autorisation que vous souhaitez supprimer, puis cliquez sur Supprimer.
  8. Cliquez sur Enregistrer.

    Un message s'affiche pour confirmer que vos modifications ont été enregistrées.

gdcloud

  1. Assurez-vous d'avoir installé la CLI gdcloud. Pour en savoir plus, consultez la page de présentation de la gdcloud CLI.
  2. Modifier un rôle personnalisé :

    gdcloud iam roles update ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Remplacez les éléments suivants :

    • ROLE_ID : identifiant unique de votre rôle personnalisé.
    • TITLE : titre convivial pour le rôle personnalisé
    • DESCRIPTION : description de l'objectif du rôle personnalisé
    • PERMISSIONS : liste des autorisations que vous souhaitez accorder pour le rôle personnalisé, séparées par une virgule

      Pour savoir comment trouver les chaînes d'autorisation appropriées, consultez Afficher les rôles et leurs autorisations. Chaque chaîne d'autorisation doit être mise en forme conformément aux instructions de la commande gdcloud iam roles create, où iamRoleName est le nom de ressource Kubernetes du rôle prédéfini contenant l'autorisation. Vous pouvez trouver le nom de ressource Kubernetes d'un rôle sur la page Définitions des rôles ou à l'aide de la commande gdcloud iam roles list.

    • LAUNCH_STAGE : facultatif. Étape de lancement du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si cette option est omise.

    Pour obtenir la liste complète des options obligatoires et facultatives, ainsi que des exemples d'utilisation, consultez gdcloud iam roles update.

    Vous pouvez également mettre à jour le rôle personnalisé dans son fichier YAML et utiliser l'option --file :

    gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATH
    

    Remplacez YAML_FILE_PATH par le chemin d'accès au fichier YAML contenant les options obligatoires et facultatives mises à jour. Si vous utilisez l'option --file, toutes les autres options telles que --title, --description et --permissions sont ignorées.

API

Modifiez une ressource personnalisée CustomRole à l'aide de kubectl :

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Remplacez les éléments suivants :

  • ROLE_NAME : nom de la ressource Kubernetes du rôle
  • NAMESPACE : espace de noms du rôle personnalisé. Utilisez platform pour les rôles à l'échelle de l'organisation et pour plusieurs projets. Utilisez l'espace de noms du projet (tel que my-project) pour les rôles limités au projet et les projets uniques.
  • DESCRIPTION : description de l'objectif du rôle personnalisé
  • ROLE_ID : identifiant unique de votre rôle personnalisé. Les ID de rôle personnalisé peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et contenir des traits d'union. Les ID de rôle personnalisés ne peuvent pas être modifiés après la création du rôle.
  • SCOPE : utilisez organization pour les rôles créés dans l'espace de noms platform. Utilisez project pour les rôles créés dans un espace de noms de projet.
  • LAUNCH_STAGE : facultatif. Étape de lancement du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si ce champ est omis.
  • TITLE : titre convivial pour le rôle personnalisé
  • RULES_TYPE : champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API globale), zonalRules (pour les autorisations dans l'API zonale) ou les deux.
  • RULES_LIST : liste en retrait d'objets de règle Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les valeurs apiGroups, resources et verbs appropriées en examinant les autorisations des rôles prédéfinis à l'aide de gdcloud iam roles describe, comme indiqué dans Afficher les rôles et leurs autorisations.

    L'exemple suivant montre la structure d'un seul élément dans un objet globalRules :

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Vous pouvez inclure plusieurs éléments dans la liste, chacun définissant un ensemble d'autorisations différent.

Désactiver un rôle personnalisé

Les rôles personnalisés désactivés restent dans votre liste de rôles et peuvent toujours être attribués aux utilisateurs. Toutefois, le rôle n'a aucun effet. Vous pouvez réactiver le rôle personnalisé à tout moment.

Désactivez un rôle personnalisé à l'aide de la console GDC, de la CLI gdcloud ou de l'API :

Console

  1. Connectez-vous à la console GDC.
  2. Dans le sélecteur de projet, sélectionnez l'organisation ou le projet dans lequel vous souhaitez désactiver un rôle personnalisé.
  3. Dans le menu de navigation, cliquez sur Identité et accès > Rôles.
  4. Dans la liste des rôles, sélectionnez le rôle personnalisé que vous souhaitez désactiver.
  5. Sur la page d'informations du rôle personnalisé, cliquez sur Désactiver.

gdcloud

  1. Assurez-vous d'avoir installé la CLI gdcloud. Pour en savoir plus, consultez la page de présentation de la gdcloud CLI.
  2. Désactiver un rôle personnalisé :

    gdcloud iam roles update ROLE_ID --stage=DISABLED
    

    Remplacez les éléments suivants :

    • ROLE_ID : identifiant unique de votre rôle personnalisé.

    Pour en savoir plus, consultez gdcloud iam roles update.

API

Désactivez une ressource personnalisée CustomRole en remplaçant le champ stage par DISABLED. Assurez-vous que tous les autres champs correspondent aux valeurs actuelles du rôle personnalisé que vous souhaitez désactiver.

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: DISABLED
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Remplacez les éléments suivants :

  • ROLE_NAME : nom de la ressource Kubernetes du rôle
  • NAMESPACE : espace de noms du rôle personnalisé. Utilisez platform pour les rôles à l'échelle de l'organisation et pour plusieurs projets. Utilisez l'espace de noms du projet (tel que my-project) pour les rôles limités au projet et les projets uniques.
  • DESCRIPTION : description de l'objectif du rôle personnalisé
  • ROLE_ID : identifiant unique de votre rôle personnalisé. Les ID de rôle personnalisé peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et contenir des traits d'union. Les ID de rôle personnalisés ne peuvent pas être modifiés après la création du rôle.
  • SCOPE : utilisez organization pour les rôles créés dans l'espace de noms platform. Utilisez project pour les rôles créés dans un espace de noms de projet.
  • TITLE : titre convivial pour le rôle personnalisé
  • RULES_TYPE : champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API globale), zonalRules (pour les autorisations dans l'API zonale) ou les deux.
  • RULES_LIST : liste en retrait d'objets de règle Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les valeurs apiGroups, resources et verbs appropriées en examinant les autorisations des rôles prédéfinis à l'aide de gdcloud iam roles describe, comme indiqué dans Afficher les rôles et leurs autorisations.

    L'exemple suivant montre la structure d'un seul élément dans un objet globalRules :

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Vous pouvez inclure plusieurs éléments dans la liste, chacun définissant un ensemble d'autorisations différent.

Supprimer un rôle personnalisé

Les rôles supprimés sont définitivement retirés du système. Toutefois, vous pouvez créer un rôle portant le même nom.

Supprimez un rôle personnalisé à l'aide de la CLI gdcloud ou de l'API :

gdcloud

  1. Assurez-vous d'avoir installé la CLI gdcloud. Pour en savoir plus, consultez la page de présentation de la gdcloud CLI.
  2. Supprimer un rôle personnalisé :

    gdcloud iam roles delete ROLE_ID --project=PROJECT
    

    Remplacez les éléments suivants :

    • ROLE_ID : identifiant unique de votre rôle personnalisé.
    • PROJECT : espace de noms du projet dans lequel vous souhaitez supprimer le rôle personnalisé. Si l'option --project n'est pas spécifiée, le rôle limité à l'organisation est supprimé.

    Pour en savoir plus et obtenir des exemples d'utilisation, consultez gdcloud iam roles delete.

API

Supprimez une ressource personnalisée CustomRole à l'aide de kubectl :

kubectl delete -f CUSTOM_ROLE

Remplacez CUSTOM_ROLE par le chemin d'accès à votre fichier YAML CustomRole. Il s'agit du même fichier que celui que vous avez utilisé pour créer ou mettre à jour le rôle.