Gérer l'identité et l'accès pour le projet

Cette page décrit les pratiques de gestion des identités et des accès (IAM) pour l'opérateur d'application (AO) sur l'appliance Google Distributed Cloud (GDC) isolée du réseau.

Un fournisseur d'identité (IdP) est une entité système qui crée, gère et maintient les informations d'identité des principaux. L'IdP fournit également des services d'authentification aux applications d'une fédération ou d'un réseau distribué.

Se connecter

Cette section explique comment accéder à vos charges de travail via l'interface utilisateur Web ou l'interface de ligne de commande (CLI).

Se connecter à l'interface utilisateur Web

Cette page explique comment accéder à vos charges de travail et ressources et les gérer dans l'appliance Google Distributed Cloud (GDC) isolée. Il décrit comment s'authentifier, générer des fichiers kubeconfig pour un serveur d'API Management et un cluster Kubernetes, et gérer l'inactivité des sessions. Comprendre ces processus garantit un accès sécurisé et fiable à vos projets et charges de travail.

Accédez à vos charges de travail via la console GDC ou la CLI gdcloud.

Se connecter

Pour vous connecter à la console GDC ou à un cluster, procédez comme suit :

Console

Ouvrez l'URL suivante dans un nouvel onglet de navigateur pour accéder à l'interface utilisateur (UI) de l'appliance GDC air-gapped :

https://GDC_URL

Remplacez GDC_URL par le nom de domaine que vous utilisez pour accéder à GDC et que l'opérateur d'infrastructure (IO) fournit. Lorsque vous ouvrez une URL pour la première fois, GDC vous redirige vers la page de connexion de votre fournisseur d'identité si l'opérateur d'infrastructure (IO) a configuré la page.

Par exemple, la page suivante s'affiche après la connexion à la console pour une organisation nommée "org-1" : Console affichant l'écran de bienvenue pour le projet org-1.

CLI

Vous pouvez vous connecter à n'importe quel cluster auquel vous êtes autorisé à accéder. Le processus de connexion à l'interface de ligne de commande est le même pour tous les clusters. Vous ne devez fournir que le nom du cluster et son fichier kubeconfig associé, et vous connecter séparément à chaque cluster.

Avant de vous connecter, assurez-vous d'effectuer les actions suivantes :

  • Téléchargez le binaire gdcloud CLI et installez-le sur votre système. Pour en savoir plus, consultez Télécharger la gcloud CLI.
  • Configurez et initialisez la configuration par défaut de gdcloud CLI. Veillez à définir l'URL de l'organisation appropriée, qui est utilisée pour récupérer le point de terminaison de configuration de connexion. Pour en savoir plus, consultez Installation de gdcloud CLI.
  • Installez le plug-in d'authentification gdcloud-k8s-auth-plugin. Pour en savoir plus, consultez Authentification gcloud CLI.

Pour vous connecter à un cluster, procédez comme suit :

  1. Authentifiez votre instance gdcloud CLI pour vous connecter. Il existe deux façons de s'authentifier :

    • Connexion standard via le navigateur : utilisez ce flux d'authentification lorsque vous vous connectez depuis un navigateur.

      gdcloud auth login
      
    • Connexion sur un appareil secondaire : utilisez ce flux d'authentification si votre appareil principal ne dispose pas de navigateur. Ce flux lance la connexion sur l'appareil principal sans accès au navigateur, puis la poursuit sur l'appareil secondaire qui a accès au navigateur.

      1. Lancez la connexion sur votre appareil principal sans navigateur :

        gdcloud auth login --no-browser
        

        La commande du périphérique principal affiche une autre commande gdcloud que vous devez exécuter sur le périphérique secondaire à l'étape c.

      2. Répétez l'étape 1 de la section Se connecter à un cluster pour télécharger le certificat sur l'appareil secondaire.

      3. Connectez-vous sur l'appareil secondaire en saisissant la commande imprimée sur l'appareil principal à l'étape a.

    Cette action ouvre un navigateur pour vous connecter au fournisseur d'identité (IdP) configuré. Indiquez le nom d'utilisateur et le mot de passe que vous avez définis lors de la configuration initiale de la gcloud CLI pour vous connecter.

  2. Exportez votre fichier d'identité utilisateur kubeconfig en tant que variable :

    export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  3. Générez un fichier kubeconfig avec votre identité utilisateur :

    gdcloud clusters get-credentials CLUSTER_NAME
    

    Un fichier kubeconfig est généré avec votre identité utilisateur. Le fichier YAML suivant en est un exemple :

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <REDACTED>
        server: https://10.200.0.32:443
      name: cluster-name
    contexts:
    - context:
        cluster: cluster-name
        user: cluster-name-anthos-default-user
      name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
      user:
        exec:
            apiVersion: client.authentication.k8s.io/v1
            args:
            - --audience=root-admin
            command: gdcloud-k8s-auth-plugin
            env: null
            installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
            interactiveMode: Never
            provideClusterInfo: false
    
  4. Pour vérifier que vous pouvez accéder au cluster, connectez-vous avec le fichier kubeconfig généré à l'aide d'une identité utilisateur :

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

Se déconnecter

Pour vous déconnecter de la console GDC, procédez comme suit :

Console

Cliquez sur Se déconnecter dans la barre de menu.

CLI

Déconnectez-vous de la CLI :

gdcloud auth revoke

Générer manuellement le fichier kubeconfig

Si vous gérez des ressources avec l'CLI kubectl en appelant directement les API KRM, vous devez générer le fichier kubeconfig pour le cluster qui héberge votre ressource, en fonction du type de ressource que vous gérez. Consultez la documentation de la ressource pour déterminer le fichier kubeconfig dont vous avez besoin.

Effectuez la configuration applicable en fonction de votre type de ressource.

Ressources du serveur de l'API Management

Pour générer votre fichier kubeconfig pour le serveur de l'API Management, procédez comme suit :

  1. Définissez la variable d'environnement MANAGEMENT_API_SERVER :

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Générez le fichier kubeconfig du serveur de l'API Management et validez les identifiants :

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    La commande rm ${KUBECONFIG:?} supprime le fichier kubeconfig existant dans le répertoire personnel. Lorsque vous générez un fichier kubeconfig, il écrase celui qui existe déjà. Si vous ne souhaitez pas écraser ni supprimer le fichier existant, sauvegardez-le dans un autre emplacement sécurisé.

Ressources de cluster Kubernetes

Pour générer votre fichier kubeconfig pour le cluster Kubernetes Bare Metal, procédez comme suit :

  1. Définissez la variable d'environnement KUBERNETES_CLUSTER :

    export KUBERNETES_CLUSTER="root-infra"
    
  2. Générez le fichier kubeconfig du cluster Kubernetes et validez les identifiants :

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    La commande rm ${KUBECONFIG:?} supprime le fichier kubeconfig existant dans le répertoire personnel. Lorsque vous générez un fichier kubeconfig, il écrase celui qui existe déjà. Si vous ne souhaitez pas écraser ni supprimer le fichier existant, sauvegardez-le dans un autre emplacement sécurisé.

Déconnexion en cas d'inactivité de la session

Après 15 minutes ou plus d'inactivité dans une session, la console GDC et la CLI gdcloud vous déconnectent. Le GDC considère l'inactivité d'une session comme une période pendant laquelle une session ouverte ne présente aucune activité de votre part, comme aucun mouvement de curseur ou de clavier. Une session active dure jusqu'à 12 heures avec l'activité de l'utilisateur.

Console

En cas d'inactivité de la session, la console GDC vous déconnecte. Deux minutes avant que la console GDC ne vous déconnecte pour inactivité, une boîte de dialogue vous avertit de la déconnexion :

Interface utilisateur de la console affichant une boîte de dialogue avec un minuteur de 99 secondes avant la déconnexion de l&#39;utilisateur pour inactivité.

Après vous avoir déconnecté pour cause d'inactivité, l'écran suivant s'affiche :

Interface utilisateur de la console affichant l&#39;écran de connexion avec une bannière contenant le texte suivant sur la déconnexion de la session : &quot;Vous avez été déconnecté du système, car votre session est restée inactive trop longtemps. Veuillez vous reconnecter ou contacter votre administrateur pour obtenir de l&#39;aide.&quot;

Pour vous reconnecter à la console GDC, sélectionnez votre fournisseur d'identité et ajoutez vos identifiants de connexion. Si vous utilisez un service, tel que le tableau de bord de surveillance, et que la console GDC vous déconnecte pour cause d'inactivité, reconnectez-vous pour y accéder.

CLI

La CLI gdcloud vous déconnecte en cas d'inactivité de la session. Après que la gdcloud CLI vous a déconnecté et que vous essayez d'exécuter une commande, vous recevez une erreur d'autorisation :

Error: error when creating kube client: unable to create k8sclient: Unauthorized

Pour vous reconnecter à la gcloud CLI, suivez les étapes de la CLI décrites dans Se connecter.

kubectl

La gdcloud CLI fait expirer vos fichiers kubeconfig après une période d'inactivité de la session. Si vous tentez d'exécuter une commande kubectl après une période d'inactivité, vous recevez une erreur d'autorisation :

error: You must be logged in to the server (Unauthorized)

Pour vous reconnecter et utiliser votre fichier kubeconfig, suivez les étapes de la CLI dans Se connecter. Pour chaque délai d'inactivité de session, vous devez régénérer vos fichiers kubeconfig.

Définir des stratégies d'autorisation IAM

Descriptions des rôles prédéfinis

Un opérateur d'application (AO) est un membre de l'équipe de développement au sein de l'organisation de l'administrateur de plate-forme (PA). Les AO interagissent avec les ressources au niveau du projet. Vous pouvez attribuer les rôles prédéfinis suivants aux membres de l'équipe :

  • Administrateur IAM de projets : gère les règles d'autorisation IAM des projets.
  • Développeur AI OCR : accédez au service de reconnaissance optique des caractères pour détecter le texte dans les images.
  • Développeur AI Speech : accédez au service Speech-to-Text pour reconnaître la voix et transcrire l'audio.
  • Développeur de traduction par IA : accédez au service Vertex AI Translation pour traduire du texte.
  • Administrateur de la gestion des artefacts : dispose d'un accès administrateur aux ressources de tous les projets Harbor de l'espace de noms du projet.
  • Éditeur de gestion des artefacts : dispose d'un accès en lecture et en écriture aux ressources de tous les projets Harbor dans l'espace de noms du projet.
  • Administrateur Certificate Authority Service : a accès à la gestion des autorités de certification et des demandes de certificat dans son projet.
  • Administrateur du service de certificats : a accès à la gestion des certificats et des émetteurs de certificats dans son projet.
  • Éditeur de tableaux de bord : dispose d'un accès en lecture et en écriture aux ressources personnalisées Dashboard.
  • Lecteur de tableaux de bord : dispose d'un accès en lecture seule aux ressources personnalisées Dashboard.
  • Administrateur d'instance Harbor : dispose d'un accès complet pour gérer les instances Harbor dans un projet.
  • Lecteur d'instances Harbor : dispose d'un accès en lecture seule pour afficher les instances Harbor dans un projet.
  • Créateur de projet Harbor : a accès à la gestion des projets d'instance Harbor.
  • Administrateur de règles de réseau K8s : gère les règles de réseau dans les clusters Kubernetes.
  • Créateur de LoggingRule : crée des ressources personnalisées LoggingRule dans l'espace de noms du projet.
  • Éditeur LoggingRule : modifie les ressources personnalisées LoggingRule dans l'espace de noms du projet.
  • Lecteur LoggingRule : affiche les ressources personnalisées LoggingRule dans l'espace de noms du projet.
  • Créateur LoggingTarget : crée des ressources personnalisées LoggingTarget dans l'espace de noms du projet.
  • Éditeur LoggingTarget : modifie les ressources personnalisées LoggingTarget dans l'espace de noms du projet.
  • Lecteur LoggingTarget : affiche les ressources personnalisées LoggingTarget dans l'espace de noms du projet.
  • Administrateur d'équilibreur de charge : dispose d'autorisations en lecture et en écriture sur toutes les ressources d'équilibreur de charge dans l'espace de noms du projet.
  • Éditeur de MonitoringRule : dispose d'un accès en lecture et en écriture aux ressources MonitoringRule.
  • Lecteur MonitoringRule : dispose d'un accès en lecture seule aux ressources personnalisées MonitoringRule.
  • Éditeur MonitoringTarget : dispose d'un accès en lecture et en écriture aux ressources personnalisées MonitoringTarget.
  • Lecteur MonitoringTarget : dispose d'un accès en lecture seule aux ressources personnalisées MonitoringTarget.
  • Lecteur NAT : dispose d'un accès en lecture seule aux déploiements dans les clusters Kubernetes.
  • Administrateur de l'espace de noms : gère toutes les ressources de l'espace de noms du projet.
  • Éditeur ObservabilityPipeline : dispose d'un accès en lecture et en écriture aux ressources personnalisées ObservabilityPipeine.
  • Lecteur ObservabilityPipeline : dispose d'un accès en lecture seule aux ressources personnalisées ObservabilityPipeline.
  • Administrateur de buckets du projet : gère les buckets de stockage et les objets qu'ils contiennent.
  • Administrateur d'objets de bucket de projet : dispose d'un accès en lecture seule aux buckets d'un projet et d'un accès en lecture et en écriture aux objets de ces buckets.
  • Lecteur des objets de bucket du projet : dispose d'un accès en lecture seule aux buckets d'un projet et aux objets qu'ils contiennent.
  • Éditeur Alertmanager Project Cortex : accorde les autorisations permettant de modifier l'instance Alertmanager Cortex dans l'espace de noms du projet.
  • Lecteur Project Cortex Alertmanager : accorde les autorisations permettant d'accéder à l'instance Cortex Alertmanager dans l'espace de noms du projet.
  • Lecteur Prometheus Project Cortex : accorde les autorisations permettant d'accéder à l'instance Prometheus Cortex dans l'espace de noms du projet.
  • Lecteur Grafana du projet : accède à l'instance Grafana dans l'espace de noms du projet du cluster d'administrateur de parc.
  • Administrateur NetworkPolicy de projet : gère les règles réseau du projet dans l'espace de noms du projet.
  • Lecteur du projet : dispose d'un accès en lecture seule à toutes les ressources des espaces de noms du projet.
  • Administrateur VirtualMachine du projet : gère les VM dans l'espace de noms du projet.
  • Administrateur des images de machine virtuelle du projet : gère les images de VM dans l'espace de noms du projet.
  • Administrateur Secret : gère les secrets Kubernetes dans les projets.
  • Lecteur de secrets : permet d'afficher les secrets Kubernetes dans les projets.
  • Administrateur de la configuration du service : dispose d'un accès en lecture et en écriture aux configurations de service dans un espace de noms de projet.
  • Lecteur de configuration de service : dispose d'un accès en lecture aux configurations de service dans un espace de noms de projet.
  • Administrateur de la réplication de volumes : gère les ressources de réplication de volumes.
  • Administrateur de notebooks Workbench : accès en lecture et en écriture à toutes les ressources de notebooks dans un espace de noms de projet.
  • Lecteur de notebooks Workbench : obtenez un accès en lecture seule à toutes les ressources de notebook dans un espace de noms de projet et affichez l'interface utilisateur Vertex AI Workbench.
  • Lecteur de charges de travail : dispose d'un accès en lecture aux charges de travail d'un projet.

Rôles courants

Les rôles communs prédéfinis suivants s'appliquent à tous les utilisateurs authentifiés :

  • Lecteur AI Platform : accorde l'autorisation d'afficher les services pré-entraînés.
  • DNS Suffix Viewer (Afficheur de suffixe DNS) : accède à la carte de configuration du suffixe du service de nom de domaine (DNS).
  • Administrateur des journaux de flux : dispose d'un accès en lecture et en écriture à toutes les ressources des journaux de flux.
  • Lecteur de journaux de flux : dispose d'un accès en lecture seule à toutes les ressources de journaux de flux.
  • Lecteur de découverte de projet : permet à tous les utilisateurs authentifiés d'accéder en lecture à la vue du projet.
  • Lecteur d'images publiques : dispose d'un accès en lecture pour tous les utilisateurs authentifiés sur les images de VM publiques dans l'espace de noms vm-images.
  • Surveillance du secret anthos-creds System Artifact Registry : dispose d'un accès en lecture seule aux secrets de l'espace de noms anthos-creds.
  • Surveillance du secret système Artifact Registry gpc-system : dispose d'un accès en lecture seule aux secrets de l'espace de noms gpc-system.
  • Surveillance du secret harbor-system du registre d'artefacts système : dispose d'un accès en lecture seule aux secrets de l'espace de noms harbor-system.
  • Lecteur de types de machines virtuelles : dispose d'un accès en lecture aux types de machines virtuelles à portée de cluster.
  • Lecteur de types de VM : dispose d'un accès en lecture aux types de machines virtuelles prédéfinis sur les clusters d'administrateur.

Définitions des rôles

Les tableaux de cette section décrivent différents rôles prédéfinis et leurs autorisations. Les tableaux contiennent les colonnes suivantes :

  • Nom : nom d'un rôle affiché dans l'interface utilisateur.
  • Nom de la ressource Kubernetes : nom de la ressource personnalisée Kubernetes correspondante.
  • Niveau : indique si ce rôle est limité à l'organisation ou à un projet.
  • Type : type de ce rôle. Par exemple, les valeurs possibles sont Role, ProjectRole, ClusterRole ou ProjectClusterRole.
  • Type de liaison : type de liaison à appliquer à ce rôle.
  • Autorisations du serveur de l'API Management ou du cluster Kubernetes : autorisations dont dispose ce rôle pour le serveur de l'API Management ou le cluster Kubernetes. Par exemple, certaines valeurs possibles sont "lecture", "écriture", "lecture et écriture" ou "non applicable&N/A;.
  • Escalade vers : indique si ce rôle est associé à d'autres rôles.

Personne AO, identité prédéfinie et rôles d'accès

Personnalité de l'AO
Nom Nom de la ressource Kubernetes Administrateur initial Niveau Type
Administrateur de projet IAM project-iam-admin Vrai Projet Role
Développeur AI OCR ai-ocr-developer Faux Projet Role
Lecteur AI Platform ai-platform-viewer Faux Projet Role
Développeur AI Speech ai-speech-developer Faux Projet Role
Développeur de traduction par IA ai-translation-developer Faux Projet Role
Administrateur de la gestion des artefacts artifact-management-admin Faux Projet Role
Éditeur de gestion des artefacts artifact-management-editor Faux Projet Role
Administrateur Certificate Authority Service certificate-authority-service-admin Faux Projet Role
Administrateur du service de certificats certificate-service-admin Faux Projet Role
Éditeur de tableaux de bord dashboard-editor Faux Projet Role
Lecteur de tableaux de bord dashboard-viewer Faux Projet Role
Administrateur d'instance Harbor harbor-instance-admin Faux Projet Role
Lecteur d'instances Harbor harbor-instance-viewer Faux Projet Role
Créateur de projets Harbor harbor-project-creator Faux Projet Role
Administrateur des règles réseau K8s k8s-networkpolicy-admin Faux Projet ProjectRole
Administrateur de l'équilibrage de charge load-balancer-admin Faux Projet ProjectRole
LoggingRule Creator loggingrule-creator Faux Projet Role
Éditeur LoggingRule loggingrule-editor Faux Projet Role
Lecteur de règles de journalisation loggingrule-viewer Faux Projet Role
Créateur de LoggingTarget loggingtarget-creator Faux Projet Role
Éditeur LoggingTarget loggingtarget-editor Faux Projet Role
Visionneuse LoggingTarget loggingtarget-viewer Faux Projet Role
Éditeur MonitoringRule monitoringrule-editor Faux Projet Role
Lecteur MonitoringRule monitoringrule-viewer Faux Projet Role
Éditeur MonitoringTarget monitoringtarget-editor Faux Projet Role
Lecteur MonitoringTarget monitoringtarget-viewer Faux Projet Role
Namespace Admin namespace-admin Faux Projet ProjectRole
Lecteur NAT nat-viewer Faux Projet ProjectRole
Éditeur ObservabilityPipeline observabilitypipeline-editor Faux Projet Role
Lecteur ObservabilityPipeline observabilitypipeline-viewer Faux Projet Role
Administrateur de bucket de projet project-bucket-admin Faux Projet Role
Administrateur des objets de bucket de projet project-bucket-object-admin Faux Projet Role
Lecteur d'objets du bucket de projet project-bucket-object-viewer Faux Projet Role
Éditeur Alertmanager de Project Cortex project-cortex-alertmanager-editor Faux Projet Role
Lecteur Alertmanager Project Cortex project-cortex-alertmanager-viewer Faux Projet Role
Lecteur Prometheus Project Cortex project-cortex-prometheus-viewer Faux Projet Role
Lecteur Grafana de projet project-grafana-viewer Faux Projet Role
Administrateur NetworkPolicy du projet project-networkpolicy-admin Faux Projet Role
Lecteur de projet project-viewer Faux Projet Role
Administrateur VirtualMachine de projet project-vm-admin Faux Projet Role
Administrateur d'images VirtualMachine de projet project-vm-image-admin Faux Projet Role
Administrateur Secret Manager secret-admin Faux Projet Role
Lecteur de secrets secret-viewer Faux Projet Role
Administrateur de la configuration des services service-configuration-admin Faux Projet Role
Lecteur de configuration des services service-configuration-viewer Faux Projet Role
Administrateur Workbench Notebooks workbench-notebooks-admin Faux Projet Role
Administrateur de la réplication de volume app-volume-replication-admin Faux Cluster Role
Lecteur Workbench Notebooks workbench-notebooks-viewer Faux Projet Role
Lecteur de charge de travail workload-viewer Faux Projet Role

Personne AO, identité prédéfinie et rôles d'accès

Personnalité de l'AO
Nom Type de reliure Autorisations du serveur de l'API Management Autorisations du cluster Kubernetes Remonter à
Administrateur de projet IAM RoleBinding
  • RoleBinding, ClusterRoleBinding, Role, ClusterRole, ProjectRole, ProjectClusterRole, ProjectRoleBinding et ProjectClusterRoleBinding : créer, lire, mettre à jour, supprimer et associer
  • ProjectServiceAccount : créer, lire, mettre à jour et supprimer
  • Lister l'espace de noms du projet
N/A Tous les autres rôles d'administrateur de l'organisation
Développeur AI OCR RoleBinding Ressources OCR : lecture et écriture N/A N/A
Développeur AI Speech RoleBinding Ressources vocales : lecture et écriture N/A N/A
Développeur de traduction par IA RoleBinding Ressources de traduction : lecture et écriture N/A N/A
Administrateur de la gestion des artefacts RoleBinding HarborProjects : administrateur, créer, lire, écrire, supprimer et afficher N/A N/A
Éditeur de gestion des artefacts RoleBinding HarborProjects : lecture, écriture et affichage N/A N/A
Administrateur Certificate Authority Service RoleBinding Autorités de certification et demandes de certificat : obtenir, lister, surveiller, mettre à jour, créer, supprimer et corriger N/A N/A
Administrateur du service de certificats RoleBinding Certificats et émetteurs de certificats : obtenir, lister, surveiller, mettre à jour, créer, supprimer et corriger N/A N/A
Éditeur de tableaux de bord RoleBinding Ressources personnalisées Dashboard : obtenir, lire, créer, mettre à jour, supprimer et corriger N/A N/A
Lecteur de tableaux de bord RoleBinding Dashboard : obtenir et lire N/A N/A
Administrateur d'instance Harbor RoleBinding Instances Harbor : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Lecteur d'instances Harbor RoleBinding Instances Harbor : lire N/A N/A
Créateur de projets Harbor RoleBinding Projets d'instance Harbor : créer, obtenir et surveiller N/A N/A
Administrateur K8s NetworkPolicy ProjectRoleBinding N/A Ressources NetworkPolicy : créer, lire, obtenir, mettre à jour, supprimer et corriger N/A
Administrateur de l'équilibrage de charge RoleBinding N/A
  • Backend : obtenir, regarder, lister, créer, corriger, mettre à jour et supprimer
  • HealthCheck : obtenir, regarder, lister, créer, corriger, mettre à jour et supprimer
  • BackendService : obtenir, regarder, lister, créer, corriger, mettre à jour et supprimer
  • ForwardingRuleExternal : obtenir, regarder, lister, créer, corriger, mettre à jour et supprimer
  • ForwardingRuleInternal : obtenir, regarder, lister, créer, corriger, mettre à jour et supprimer
N/A
LoggingRule Creator RoleBinding Ressources personnalisées LoggingRule : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Éditeur LoggingRule RoleBinding Ressources personnalisées LoggingRule : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Lecteur de règles de journalisation RoleBinding Ressources personnalisées LoggingRule : lisez N/A N/A
Créateur de LoggingTarget RoleBinding Ressources personnalisées LoggingTarget : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Éditeur LoggingTarget RoleBinding Ressources personnalisées LoggingTarget : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Visionneuse LoggingTarget RoleBinding Ressources personnalisées LoggingTarget : lisez N/A N/A
Éditeur MonitoringRule RoleBinding Ressources personnalisées MonitoringRule : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Lecteur MonitoringRule RoleBinding Ressources personnalisées MonitoringRule : lisez N/A N/A
Éditeur MonitoringTarget RoleBinding Ressources personnalisées MonitoringTarget : créer, lire, mettre à jour, supprimer et corriger N/A N/A
Lecteur MonitoringTarget RoleBinding Ressources personnalisées MonitoringTarget : lisez N/A N/A
Namespace Admin ProjectRoleBinding N/A Toutes les ressources : accès en lecture et en écriture dans l'espace de noms du projet N/A
Lecteur NAT ProjectRoleBinding N/A Déploiements : obtenir et lire N/A
Éditeur ObservabilityPipeline RoleBinding Ressources ObservabilityPipeline : obtenir, lire, créer, mettre à jour, supprimer et corriger N/A N/A
Lecteur ObservabilityPipeline RoleBinding Ressources ObservabilityPipeline : obtenir et lire N/A N/A
Administrateur de bucket de projet RoleBinding Bucket : lecture et écriture dans l'espace de noms du projet N/A N/A
Administrateur des objets de bucket de projet RoleBinding
  • Bucket : Lecture
  • Objets : lecture et écriture
N/A N/A
Lecteur d'objets du bucket de projet RoleBinding Bucket et objets : lecture N/A N/A
Éditeur Alertmanager de Project Cortex RoleBinding Système Cortex et Cortex Alertmanager : lecture et écriture N/A N/A
Lecteur Alertmanager Project Cortex RoleBinding Système Cortex et Cortex Alertmanager : consultez N/A N/A
Lecteur Prometheus Project Cortex RoleBinding Système Cortex et Cortex Prometheus : consultez N/A N/A
Lecteur Grafana de projet RoleBinding Système Grafana et Grafana : lecture et écriture N/A N/A
Administrateur NetworkPolicy du projet RoleBinding Règles de réseau du projet : lecture et écriture dans l'espace de noms du projet N/A N/A
Lecteur de projet RoleBinding Toutes les ressources de l'espace de noms du projet : lecture N/A N/A
Administrateur VirtualMachine de projet RoleBinding
  • Machines virtuelles, disques, demandes d'accès, accès externes, demandes de sauvegarde, sauvegardes, demandes de restauration, demandes de suppression de sauvegarde, restaurations et demandes de réinitialisation de mot de passe : lecture, création, mise à jour et suppression
  • Redémarrage de la machine virtuelle : PUT
  • Images de machines virtuelles, plans de sauvegarde et modèles de plans de sauvegarde : lire
N/A N/A
Administrateur d'images VirtualMachine de projet RoleBinding
  • Images de VM : lecture
  • Importations d'images de VM : lecture et écriture
N/A N/A
Administrateur Secret Manager RoleBinding Secrets Kubernetes : lire, créer, mettre à jour, supprimer et corriger N/A N/A
Lecteur de secrets RoleBinding Secrets Kubernetes : lecture N/A N/A
Administrateur de la configuration des services RoleBinding ServiceConfigurations : lecture et écriture N/A N/A
Lecteur de configuration des services RoleBinding ServiceConfigurations : Lire N/A N/A
Administrateur de la réplication de volume ClusterRoleBinding Volume failovers, volume relationship replicas : create, get, list, watch, delete N/A N/A
Administrateur Workbench Notebooks RoleBinding N/A
  • Ressources personnalisées (CR) de notebook dans l'espace de noms du projet : créer, lire, mettre à jour et supprimer
  • Objets ClusterInfo : lecture
N/A
Lecteur Workbench Notebooks RoleBinding N/A
  • Ressources personnalisées (CR) de notebook dans l'espace de noms du projet : lecture
N/A
Lecteur de charge de travail ProjectRoleBinding N/A
  • Ressources personnalisées de pod dans l'espace de noms du projet : lecture
  • Ressources personnalisées de déploiement dans l'espace de noms du projet : lecture
N/A

Rôles d'identité et d'accès prédéfinis courants

Rôles courants
Nom Nom de la ressource Kubernetes Administrateur initial Niveau Type
Lecteur AI Platform ai-platform-viewer Faux Projet Role
Lecteur de suffixe DNS dnssuffix-viewer Faux Organisation Role
Administrateur des journaux de flux flowlog-admin Faux Organisation ClusterRole
Visionneuse de journaux de flux flowlog-viewer Faux Projet ClusterRole
Lecteur de la détection de projets projectdiscovery-viewer Faux Projet ClusterRole
Visionneuse d'images publiques public-image-viewer Faux Organisation Role
Surveillance du secret anthos-creds System Artifact Registry sar-anthos-creds-secret-monitor Faux Organisation Role
Surveillance du secret système Artifact Registry gpc-system sar-gpc-system-secret-monitor Faux Organisation Role
Moniteur de secret harbor-system System Artifact Registry sar-harbor-system-secret-monitor Faux Organisation Role
Lecteur VirtualMachineType virtualmachinetype-viewer Faux Organisation OrganizationRole
Lecteur de types de VM vmtype-viewer Faux Organisation Role

Rôles d'identité et d'accès prédéfinis courants

Rôles courants
Nom Type de reliure Autorisations du cluster d'administrateur Autorisations du cluster Kubernetes Remonter à
Lecteur AI Platform RoleBinding Services pré-entraînés : lire N/A N/A
Lecteur de suffixe DNS ClusterRoleBinding Cartes de configuration du suffixe DNS : lecture N/A N/A
Administrateur des journaux de flux ClusterRoleBinding Ressources de journaux de flux : obtenir et lire Ressources de journaux de flux : obtenir et lire N/A
Visionneuse de journaux de flux ClusterRoleBinding Ressources de journaux de flux : créer, obtenir, lire, corriger, mettre à jour et supprimer Ressources de journaux de flux : créer, obtenir, lire, corriger, mettre à jour et supprimer N/A
Lecteur de la détection de projets ClusterRoleBinding Projets : lecture N/A N/A
Visionneuse d'images publiques RoleBinding Images de VM : lecture N/A N/A
Surveillance du secret anthos-creds System Artifact Registry RoleBinding anthos-creds secrets : obtenir et lire anthos-creds secrets : obtenir et lire N/A
Surveillance du secret système Artifact Registry gpc-system RoleBinding gpc-system secrets : obtenir et lire gpc-system secrets : obtenir et lire N/A
Moniteur de secret harbor-system System Artifact Registry RoleBinding harbor-system secrets : obtenir et lire harbor-system secrets : obtenir et lire N/A
Lecteur VirtualMachineType OrganizationRoleBinding N/A Types de VM : lecture N/A
Lecteur de types de VM ClusterRoleBinding Types de VM : lecture N/A N/A

Il existe deux façons d'accorder l'accès aux ressources :

Configurer des liaisons de rôles à l'aide de la CLI

Accès AO dans le cluster d'administrateur

Contrairement aux opérateurs d'infrastructure (IO) et aux administrateurs de plate-forme (PA), GDC associe les opérateurs d'application (AO) à un Project via un RoleBinding, au lieu d'un ClusterRoleBinding.

Pour accorder à un AO l'accès au cluster d'administrateur, procédez comme suit :

  1. Exportez l'adresse e-mail que vous utilisez pour accéder à AO. Par exemple, un e-mail tel que ao-alice@example.com.

    export AO_EMAIL=AO_EMAIL
    
  2. Créez une liaison de rôle pour accorder l'accès ${AO_EMAIL} Administrateur IAM du projet dans l'espace de noms iam-test :

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-iam-admin \
    --role=project-iam-admin --user=$AO_EMAIL \
    --namespace=iam-test
    

    Le rôle project-iam-admin est un rôle prédéfini pour GDC. L'espace de noms Kubernetes iam-test correspond au projet iam-test dans le cluster d'administrateur.

  3. Vérifiez que le compte AO dispose des autorisations nécessaires pour créer des liaisons de rôle dans l'espace de noms iam-test :

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
    

    Le résultat suivant s'affiche :

    yes
    
  4. Créez une liaison de rôle pour accorder l'accès au rôle Lecteur de projet ${AO_EMAIL} dans l'espace de noms bar :

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-viewer \
    --role=project-viewer --user=$AO_EMAIL \
    --namespace=bar
    

    Le rôle project-viewer est un rôle prédéfini pour GDC. L'espace de noms Kubernetes bar correspond au projet bar dans le cluster d'administrateur de l'organisation.

  5. Vérifiez que le compte AO n'est pas autorisé à créer des liaisons de rôle dans l'espace de noms bar :

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
    

    Le résultat suivant s'affiche :

    no
    
  6. Facultatif : Supprimez la liaison de rôle pour révoquer l'autorisation accordée au compte AO :

    kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
    

Accès AO dans les clusters d'utilisateur

Un AO utilise les ressources ProjectRole et ProjectRoleBinding pour accéder à l'espace de noms des clusters d'utilisateur. Toutefois, les administrateurs de parc peuvent accorder des autorisations à l'ensemble de l'organisation AO dans les clusters d'utilisateur à l'aide des ressources prédéfinies OrganizationRole et ProjectRoleBinding.

Pour donner accès aux clusters d'utilisateur aux AO, procédez comme suit :

Pour accorder l'accès aux clusters d'utilisateur, vous devez disposer du rôle d'administrateur IAM de projet.

  1. Créez une ressource ProjectRoleBinding pour accorder l'accès administrateur à l'espace de noms ${AO_EMAIL} dans tous les clusters d'utilisateur de l'espace de noms iam-test :

    kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF
    apiVersion: resourcemanager.gdc.goog/v1
    kind: ProjectRoleBinding
    metadata:
      name: ${AO_EMAIL%@*}-namespace-admin
      namespace: iam-test
    spec:
      roleRef:
        apiGroup: resourcemanager.gdc.goog
        kind: ProjectRole
        name: namespace-admin
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${AO_EMAIL}
    EOF
    
  2. Suivez les instructions de la section Se connecter avec la CLI et kubectl pour obtenir les identifiants utilisateur du cluster d'utilisateur et les exporter dans la variable AO_USER_CLUSTER_KUBECONFIG :

    export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
    
  3. Vérifiez que le compte AO dispose des autorisations nécessaires pour créer des déploiements dans l'espace de noms iam-test :

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
    

    Le résultat suivant s'affiche :

    yes
    
  4. Facultatif : Supprimez les liaisons de rôle du projet pour révoquer l'autorisation accordée au compte AO de test :

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
    

Configurer des liaisons de rôles à l'échelle du projet à l'aide de l'UI

Un opérateur d'application ajoute d'autres opérateurs d'application au projet afin qu'ils aient accès aux ressources du projet.

Pour obtenir les autorisations nécessaires pour configurer des liaisons de rôle, demandez à votre administrateur IAM de projet de vous accorder le rôle "Administrateur IAM de projet".

Suivez les étapes ci-dessous pour configurer les liaisons de rôle :

  1. Connectez-vous à la console de l'appliance GDC isolée.
  2. Sélectionnez un projet.
  3. Dans le menu de navigation, cliquez sur Gestion des accès.
  4. Cliquez sur Ajouter un membre.
  5. Dans la liste Fournisseur d'identité, sélectionnez un fournisseur d'identité.
  6. Indiquez si vous souhaitez ajouter des utilisateurs individuels ou des groupes.
  7. Dans le champ Nom d'utilisateur ou alias de groupe, saisissez le nom d'utilisateur, l'adresse e-mail ou l'alias.
  8. Dans la liste Rôle, sélectionnez le rôle que vous souhaitez attribuer à l'utilisateur ou au groupe, par exemple Lecteur de projet.
  9. Cliquez sur Ajouter.

Supprimer des liaisons de rôle à l'aide de l'UI

Lorsque l'accès n'est plus nécessaire, supprimez un membre ainsi que les rôles, autorisations et accès qui lui sont associés.

Pour supprimer des membres, procédez comme suit :

  1. Connectez-vous à la console de l'appliance GDC isolée.
  2. Sélectionnez un projet.
  3. Dans le menu de navigation, cliquez sur Gestion des accès.
  4. Dans la liste Membres autorisés, sélectionnez un membre.
  5. Cliquez sur Supprimer le membre.
  6. Lorsque vous y êtes invité, cliquez sur Supprimer le membre pour confirmer.