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 servicerobot
dans le projettop-secret
:$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
AstuceVous 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>
ImportantSi 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é.AstuceVous 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
AstuceVous 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 projetmy-project
:$ oc policy add-role-to-group edit system:serviceaccounts:managers -n my-project
AstuceVous 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