第 9 章 サービスアカウントの概要および作成
9.2. サービスアカウントの作成
サービスアカウントをプロジェクトで作成し、これをロールにバインドすることでパーミッションを付 与できます。
手順 手順
system:serviceaccount:<project>:<name>
1
1. オプション: サービスアカウントを現在のプロジェクトで表示するには、以下を実行します。
出力例 出力例
2. 新規サービスアカウントを現在のプロジェクトで作成するには、以下を実行します。
別のプロジェクトでサービスアカウントを作成するには、-n <project_name> を指定しま す。
出力例 出力例
3. オプション: サービスアカウントのシークレットを表示します。
出力例 出力例
9.3. ロールをサービスアカウントに付与する例
ロールをサービスアカウントに付与する方法は、ロールを通常ユーザーアカウントに付与する方法と同 じです。
現在のプロジェクトのサービスアカウントを変更できます。たとえば、view ロールを
top-secret プロジェクトの robot サービスアカウントに追加するには、以下を実行します。
アクセスをプロジェクトの特定のサービスアカウントに付与することもできます。たとえば、
$ oc get sa
NAME SECRETS AGE builder 2 2d
default 2 2d deployer 2 2d
$ oc create sa <service_account_name> 1
serviceaccount "robot" created
$ oc describe sa robot
Name: robot
Namespace: project1 Labels: <none>
Annotations: <none>
Image pull secrets: robot-dockercfg-qzbhb Mountable secrets: robot-token-f4khf robot-dockercfg-qzbhb Tokens: robot-token-f4khf robot-token-z8h44
$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
アクセスをプロジェクトの特定のサービスアカウントに付与することもできます。たとえば、
サービスアカウントが属するプロジェクトから、-z フラグを使用 し、<service_account_name> を指定します。
重要 重要
プロジェクトの特定のサービスアカウントにアクセスを付与する必要がある場合 には、-z フラグを使用します。このフラグを使用することにより、アクセスが指 定されたサービスアカウントのみに付与することができます。
別の namespace を変更するには、-n オプションを使用して、以下の例にあるように、適用先
のプロジェクト namespace を指定します。
たとえば、すべてのプロジェクトのすべてのサービスアカウントが top-secret プロジェク トのリソースを表示できるようにするには、以下を実行します。
managers プロジェクトのすべてのサービスアカウントが top-secret プロジェクトのリ ソースを編集できるようにするには、以下を実行します。
$ oc policy add-role-to-user <role_name> -z <service_account_name>
$ oc policy add-role-to-group view system:serviceaccounts -n top-secret
$ oc policy add-role-to-group edit system:serviceaccounts:managers -n top-secret