12.2. ユーザー名およびグループ
すべてのサービスアカウントには、一般ユーザーのようにロールを付与できるユーザー名が関連付けられています。ユーザー名はそのプロジェクトおよび名前から派生します。
system:serviceaccount:<project>:<name>
たとえば、view (表示) ロールを top-secret プロジェクトの robot サービスアカウントに追加するには、以下を実行します。
$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
プロジェクトで特定のサービスアカウントにアクセスを付与する必要がある場合は、-z
フラグを使用できます。サービスアカウントが属するプロジェクトから -z
フラグを使用し、<serviceaccount_name>
を指定します。これによりタイプミスの発生する可能性が減り、アクセスを指定したサービスアカウントのみに付与できるため、この方法を使用することを強くお勧めします。以下は例になります。
$ oc policy add-role-to-user <role_name> -z <serviceaccount_name>
プロジェクトから実行しない場合は、以下の例に示すように -n
オプションを使用してこれが適用されるプロジェクトの namespace を指定します。
すべてのサービスアカウントは以下の 2 つのグループのメンバーでもあります。
- system:serviceaccount
- システムのすべてのサービスアカウントが含まれます。
- system:serviceaccount:<project>
- 指定されたプロジェクトのすべてのサービスアカウントが含まれます。
たとえば、すべてのプロジェクトのすべてのサービスアカウントが top-secret プロジェクトのリソースを表示できるようにするには、以下を実行します。
$ oc policy add-role-to-group view system:serviceaccount -n top-secret
managers プロジェクトのすべてのサービスアカウントが top-secret プロジェクトのリソースを編集できるようにするには、以下を実行します。
$ oc policy add-role-to-group edit system:serviceaccount:managers -n top-secret