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
viewau compte de servicerobotdans le projettop-secret:$ oc policy add-role-to-user view system:serviceaccount:top-secret:robotAstuceVous 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-secretVous 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
-zet 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
-npour 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-projectAstuceVous 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:serviceaccountsPour permettre à tous les comptes de service du projet
managersde modifier les ressources du projetmy-project:$ oc policy add-role-to-group edit system:serviceaccounts:managers -n my-projectAstuceVous 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