10.3. ロールをサービスアカウントに付与する例
ロールをサービスアカウントに付与する方法は、ロールを通常ユーザーアカウントに付与する方法と同じです。
現在のプロジェクトのサービスアカウントを変更できます。たとえば、
view
ロールをtop-secret
プロジェクトのrobot
サービスアカウントに追加するには、以下を実行します。$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
ヒントまたは、以下の YAML を適用してロールを追加できます。
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
アクセスをプロジェクトの特定のサービスアカウントに付与することもできます。たとえば、サービスアカウントが属するプロジェクトから、
-z
フラグを使用し、<service_account_name>
を指定します。$ oc policy add-role-to-user <role_name> -z <service_account_name>
重要プロジェクトの特定のサービスアカウントにアクセスを付与する必要がある場合には、
-z
フラグを使用します。このフラグを使用することにより、アクセスが指定されたサービスアカウントのみに付与することができます。ヒントまたは、以下の YAML を適用してロールを追加できます。
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>
別の namespace を変更するには、
-n
オプションを使用して、以下の例にあるように、適用先のプロジェクト namespace を指定します。たとえば、すべてのプロジェクトのすべてのサービスアカウントが
my-project
プロジェクトのリソースを表示できるようにするには、以下を実行します。$ oc policy add-role-to-group view system:serviceaccounts -n my-project
ヒントまたは、以下の YAML を適用してロールを追加できます。
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
managers
プロジェクトのすべてのサービスアカウントがmy-project
プロジェクトのリソースを編集できるようにするには、以下を実行します。$ oc policy add-role-to-group edit system:serviceaccounts:managers -n my-project
ヒントまたは、以下の YAML を適用してロールを追加できます。
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