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) air-gapped. 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 en fonction de vos critères spécifiques.

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

Créer un rôle personnalisé vous permet :

  • Définissez le champ d'application de l'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 dans les rôles prédéfinis pour personnaliser l'accès à des tâches ou responsabilités spécifiques.

Cette page s'adresse aux audiences du groupe des administrateurs de plate-forme, comme 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 air-gapped.

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

L'accès aux rôles personnalisés est géré au niveau de l'organisation et du projet. L'accès ne peut être accordé qu'au sein de la même organisation ou du même projet dans lequel le rôle personnalisé a été créé.

Pour obtenir les autorisations nécessaires pour créer et gérer des rôles personnalisés, demandez à votre administrateur de vous accorder l'un des rôles suivants :

  • Administrateur de rôle personnalisé dans l'organisation : crée et gère des rôles personnalisés dans une organisation ou un projet. Ce rôle permet de mettre à jour, de lister, d'afficher, de désactiver et de supprimer des rôles personnalisés.

    Les administrateurs IAM de l'organisation peuvent attribuer ce rôle.

  • Administrateur de projet avec rôle personnalisé : crée et gère des rôles personnalisés dans un projet. Ce rôle permet de mettre à jour, de lister, d'afficher, de désactiver et de supprimer des rôles personnalisés.

    Les administrateurs IAM du projet peuvent attribuer ce rôle.

Découvrez comment attribuer des autorisations de rôle pour les organisations et les projets.

Afficher les rôles et leurs autorisations

Un rôle personnalisé est constitué d'un groupe d'autorisations que vous pouvez attribuer aux utilisateurs. Pour créer un rôle personnalisé, sélectionnez des autorisations dans les rôles prédéfinis existants et combinez-les pour répondre à vos besoins. Les autorisations que vous pouvez inclure dans un rôle personnalisé dépendent du champ d'application dans lequel 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'indicateur --permissions lorsque vous utilisez la gcloud CLI 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é dans le 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 dans lequel 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 dans le 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é gdcloud CLI. Pour en savoir plus, consultez la page Présentation de la gdcloud CLI.
  2. Répertoriez les rôles disponibles :

    gdcloud iam roles list 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'indicateur --project pour les rôles à l'échelle de 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 ressource Kubernetes du rôle.
    • PROJECT : espace de noms du projet pour lequel vous souhaitez afficher les autorisations de rôle. Omettez l'indicateur --project pour les rôles à l'échelle de 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 des 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. Une fois que vous avez 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és 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 à votre champ d'application 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 ont été 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é gdcloud CLI. Pour en savoir plus, consultez la page Présentation de la gdcloud CLI.
  2. Pour créer 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és peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et peuvent contenir des traits d'union. Vous ne pouvez pas modifier les ID de rôle personnalisé une fois le rôle créé.
    • 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 gdcloud iam roles create, où iamRoleName est le nom de ressource Kubernetes du rôle prédéfini contenant l'autorisation. Vous trouverez le nom de ressource Kubernetes d'un rôle sur la page Définitions de rôle ou à l'aide de la commande gdcloud iam roles list.

    • LAUNCH_STAGE : facultatif. Phase de publication du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si cet indicateur est omis.

    Pour obtenir la liste complète des indicateurs obligatoires et facultatifs, 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'indicateur --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 indicateurs obligatoires et facultatifs. 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 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 à portée de 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és peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et peuvent contenir des traits d'union. Vous ne pouvez pas modifier les ID de rôles personnalisés une fois les rôles créés.
  • 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. Phase de publication 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 : ce champ définit le champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API mondiale) ou zonalRules (pour les autorisations dans l'API zonale). Vous ne pouvez pas utiliser les deux dans la même ressource CustomRole.
  • RULES_LIST : liste indentée d'objets de règles Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les apiGroups, resources et verbs appropriés 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 de nouvelles autorisations, fonctionnalités ou services, il met à jour les rôles prédéfinis. Les modifications 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é. En revanche, vous ne pouvez pas modifier, désactiver ni supprimer 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 des détails du rôle personnalisé, cliquez sur Modifier.
  6. Modifiez les détails de votre rôle personnalisé, comme son titre, sa description, son ID ou son étape de lancement.
  7. Vous pouvez ajouter ou supprimer des autorisations attribuées.
    1. Cliquez sur Ajouter des autorisations pour sélectionner des autorisations dans la liste.
    2. Pour supprimer une autorisation attribuée, cochez la case à côté de celle 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é gdcloud CLI. Pour en savoir plus, consultez la page 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 gdcloud iam roles create, où iamRoleName est le nom de ressource Kubernetes du rôle prédéfini contenant l'autorisation. Vous trouverez le nom de ressource Kubernetes d'un rôle sur la page Définitions de rôle ou à l'aide de la commande gdcloud iam roles list.

    • LAUNCH_STAGE : facultatif. Phase de publication du rôle personnalisé. Les valeurs valides sont ALPHA, BETA, GA ou DISABLED. La valeur par défaut est ALPHA si cet indicateur est omis.

    Pour obtenir la liste complète des indicateurs obligatoires et facultatifs, 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'indicateur --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 indicateurs obligatoires et facultatifs mis à 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 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 à portée de 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és peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et peuvent contenir des traits d'union. Vous ne pouvez pas modifier les ID de rôles personnalisés une fois les rôles créés.
  • 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. Phase de publication 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 : ce champ définit le champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API mondiale) ou zonalRules (pour les autorisations dans l'API zonale). Vous ne pouvez pas utiliser les deux dans la même ressource CustomRole.
  • RULES_LIST : liste indentée d'objets de règles Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les apiGroups, resources et verbs appropriés 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, ils n'ont 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 gcloud CLI 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 des détails du rôle personnalisé, cliquez sur Désactiver.

gdcloud

  1. Assurez-vous d'avoir installé gdcloud CLI. Pour en savoir plus, consultez la page 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 gcloud 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 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 à portée de 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és peuvent comporter jusqu'à 10 caractères alphanumériques en minuscules et peuvent contenir des traits d'union. Vous ne pouvez pas modifier les ID de rôles personnalisés une fois les rôles créés.
  • 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 : ce champ définit le champ d'application des règles. Remplacez par globalRules (pour les autorisations dans l'API mondiale) ou zonalRules (pour les autorisations dans l'API zonale). Vous ne pouvez pas utiliser les deux dans la même ressource CustomRole.
  • RULES_LIST : liste indentée d'objets de règles Kubernetes RBAC standards. Chaque objet de la liste accorde des autorisations. Vous pouvez déterminer les apiGroups, resources et verbs appropriés 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 supprimé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 gcloud CLI ou de l'API :

gdcloud

  1. Assurez-vous d'avoir installé gdcloud CLI. Pour en savoir plus, consultez la page 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 à l'échelle de 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 fichier que vous avez utilisé pour créer ou mettre à jour le rôle.