始める前に
GKE RBAC ガイドに従って操作した後、次の手順に進んでください。
Identity and Access Management(IAM)を構成する
プロジェクト レベルで GKE クラスタを確認するには、Kf RBAC で付与される権限に加えて、ユーザー、グループ、サービス アカウントも認証する必要があります。この要件は、GKE RBAC を構成する場合と同じです。つまり、ユーザーやグループには、クラスタを含むプロジェクトで container.clusters.get
以上の IAM 権限を持っている必要があります。この権限は、container.clusterViewer
ロールなど、より高い権限があるロールに含まれています。詳細については、Identity and Access Management とのやり取りをご覧ください。
ユーザーまたはグループに container.clusterViewer
を割り当てます。
gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
--role="container.clusterViewer" \
--member="${MEMBER}"
メンバー値の例を次に示します。
- user:test-user@gmail.com
- group:admins@example.com
- serviceAccount:test123@example.domain.com
SpaceManager として Space のメンバーシップを管理する
クラスタ管理者ロール、すなわち SpaceManager ロールを持つメンバーは、ユーザー、グループ、サービス アカウントにロールを割り当てることができます。
kf set-space-role MEMBER -t [Group|ServiceAccount|User]
クラスタ管理者ロール、すなわち SpaceManager ロールを持つメンバーは、ロールからメンバーを削除できます。
kf unset-space-role MEMBER -t [Group|ServiceAccount|User]
Space 内のメンバーとそのロールを確認できます。
kf space-users
例:
SpaceDeveloper ロールをユーザーに割り当てます。
kf set-space-role alice@example.com SpaceDeveloper
SpaceDeveloper ロールをグループに割り当てます。
kf set-space-role devs@example.com SpaceDeveloper -t Group
SpaceDeveloper ロールをサービス アカウントに割り当てます。
kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount
SpaceDeveloper としてのアプリ開発
SpaceDeveloper ロールを持つメンバーは、Space 内で Kf アプリ開発オペレーションを実行できます。
アプリを push するには:
kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]
アプリのログを表示するには、posix-terminal
kf logs app_name
を使用します。
アプリを実行している Kubernetes Pod に SSH 接続するには、posix-terminal
kf ssh app_name
を使用します。
使用可能なサービス ブローカーを表示するには、次のコマンドを使用します。
kf marketplace
SpaceManager または SpaceAuditor としてアプリを表示する
SpaceManager または SpaceAuditor のロールを持つメンバーは、Space 内の利用可能なアプリを表示できます。
kf apps
クラスタ内の Kf Spaces を表示する
すべてのロール(SpaceManager、SpaceDeveloper、SpaceAuditor)は、クラスタ内の利用可能な Kf Space を表示できます。
kf spaces
Space 内の Space メンバーとそのロールを表示します。
kf space-users
権限借用フラグ
メンバーの権限を確認するには、より高い権限を与えられたメンバーが権限借用フラグ --as
と --as-group
を使用して別のメンバーの権限をテストします。
たとえば、クラスタ管理者は、ユーザー(ユーザー名: bob)がアプリの push 権限を持っているかどうかを確認できます。
kf push APP_NAME --as bob
他のメンバーに権限を割り当てる権限がグループ(manager-group@example.com)にあることを確認します。
kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com