10.3. Exemples d'attribution de rôles aux comptes de service


Vous pouvez attribuer des rôles aux comptes de service de la même manière que vous attribuez des rôles à un compte d'utilisateur normal.

  • Vous pouvez modifier les comptes de service du projet en cours. Par exemple, pour ajouter le rôle view au compte de service robot dans le projet top-secret:

    $ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
    Astuce

    Vous pouvez également appliquer le code YAML suivant pour ajouter le rôle :

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: view
      namespace: top-secret
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: view
    subjects:
    - kind: ServiceAccount
      name: robot
      namespace: top-secret
  • Vous pouvez également accorder l'accès à un compte de service spécifique dans un projet. Par exemple, à partir du projet auquel le compte de service appartient, utilisez l'indicateur -z et spécifiez l'option <service_account_name>

    $ oc policy add-role-to-user <role_name> -z <service_account_name>
    Important

    Si vous souhaitez accorder l'accès à un compte de service spécifique dans un projet, utilisez l'option -z. L'utilisation de cet indicateur permet d'éviter les fautes de frappe et garantit que l'accès n'est accordé qu'au compte de service spécifié.

    Astuce

    Vous pouvez également appliquer le code YAML suivant pour ajouter le rôle :

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: <rolebinding_name>
      namespace: <current_project_name>
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: <role_name>
    subjects:
    - kind: ServiceAccount
      name: <service_account_name>
      namespace: <current_project_name>
  • Pour modifier un autre espace de noms, vous pouvez utiliser l'option -n pour indiquer l'espace de noms du projet auquel elle s'applique, comme le montrent les exemples suivants.

    • Par exemple, pour permettre à tous les comptes de service de tous les projets de visualiser les ressources du projet my-project:

      $ oc policy add-role-to-group view system:serviceaccounts -n my-project
      Astuce

      Vous pouvez également appliquer le code YAML suivant pour ajouter le rôle :

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: view
        namespace: my-project
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: view
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: Group
        name: system:serviceaccounts
    • Pour permettre à tous les comptes de service du projet managers de modifier les ressources du projet my-project:

      $ oc policy add-role-to-group edit system:serviceaccounts:managers -n my-project
      Astuce

      Vous pouvez également appliquer le code YAML suivant pour ajouter le rôle :

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        name: edit
        namespace: my-project
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: edit
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: Group
        name: system:serviceaccounts:managers
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.