ユーザーまたはグループのすべてのサブジェクトは、2 段階のプロセスを経てグローバル API サーバーにアクセスします。IAMRoleBinding を使用して、グローバル API
サーバーの権限を持つサブジェクトに事前定義された IAMRole を付与します。すべてのロールとロール バインディングはグローバルです。
このページは、組織内の権限を管理するプラットフォーム管理者グループ内のユーザーを対象としています。詳細については、 GDC エアーギャップ ドキュメントの対象ユーザーをご覧ください。
始める前に
ロール バインディングの管理またはアクセス権の取り消しを行う前に、必要な権限をリクエストして環境を準備する必要があります。必要なロールは、ロール バインディングを管理するか、ユーザー アクセスを取り消すかによって異なります。
IAM ロールをリクエストする
実行する必要があるタスクに基づいてロールをリクエストするには、組織 IAM 管理者にお問い合わせください。
- 組織 IAM 管理者 (
organization-iam-admin): 組織レベルとプロジェクト レベルでロール バインディングを作成、更新、削除します。 - 組織セッション管理者 (
org-session-admin): 特定のゾーン内のユーザーのアクティブ セッションとアクセス権を取り消します。
環境を準備する
コマンドライン ツールを使用してロール バインディングを管理またはアクセス権を取り消すには、次の設定を行います。
- gdcloud CLI を ダウンロードして インストールします(まだインストールしていない場合)。
kubectlで API を使用するには、追加の設定が必要です。
ロール バインディングを設定する
チームメンバーに組織レベルまたはプロジェクト レベルでリソースへのアクセス権を付与するロール バインディングを設定できます。
承認されたメンバーにロールを割り当てます。
コンソール
- GDC コンソールにログインします。
- スコープ選択ツールから組織またはプロジェクトを選択します。
- 組織のロール バインディングを設定するには、組織を選択します。
- プロジェクトのロール バインディングを設定するには、プロジェクトを選択します。
- ナビゲーション メニューで、[ID とアクセス] > [アクセス] をクリックします。
- [メンバーを追加] をクリックします。
- 個々のユーザーまたはグループを追加するかどうかを選択します。
- [ID プロバイダ] リストで、ID プロバイダを選択します。
- [ユーザー名またはグループ エイリアス] フィールドに、ユーザー名、メールアドレス、またはエイリアスを入力します。
- [ロール] リストで、ユーザーまたはグループに割り当てるロールを選択します。たとえば、組織レベルの [組織閲覧者]やプロジェクトレベルの [プロジェクト作成者]などです。
- [追加] をクリックします。
メンバーが [承認済みメンバー] リストに表示されます。
gdcloud
gdcloud auth loginコマンドを使用してログインし、ID プロバイダで認証します。詳細については、 gdcloud CLI の認証をご覧ください。ロール バインディングを設定します。
組織のロール バインディングを設定します。
gdcloud organizations add-iam-policy-binding ORGANIZATION \ --member=USER_ACCOUNT \ --role=ROLE次の変数を置き換えます。
ORGANIZATION: ロール バインディングを設定する組織の名前。USER_ACCOUNT: ロールを付与するユーザー アカウント。このフラグは、ID プロバイダの接頭辞が付いたユーザーのメールアドレス(user:idpprefix-user@example.com)またはサービス アカウント プロジェクトが付いたサービス アカウント名(serviceAccount:projectName:serviceAccountName)を受け入れます。ROLE: ユーザーに割り当てる事前定義ロールまたはカスタムロールの名前。
プロジェクトのロール バインディングを設定します。
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE次の変数を置き換えます。
PROJECT: ロール バインディングを設定するプロジェクトの名前。USER_ACCOUNT: ロールを付与するユーザー アカウント。このフラグは、ID プロバイダの接頭辞が付いたユーザーのメールアドレス(user:idpprefix-user@example.com)またはサービス アカウント プロジェクトが付いたサービス アカウント名(serviceAccount:projectName:serviceAccountName)を受け入れます。ROLE: ユーザーに割り当てる事前定義ロールまたはカスタムロールの名前。
API
使用するユーザー認証情報をエクスポートします。
export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIGロールを割り当てるユーザー アカウントをエクスポートします。ID プロバイダの接頭辞(
idpprefix-paul@example.comなど)を含めます。export USERNAME=IDP_PREFIX-USER_EMAILユーザーに必要なロールの名前(
project-creatorなど)をエクスポートします。対応するロールを見つけるには、 ロールの定義 をご覧ください。export ROLE_NAME=ROLE_NAMEバインディングを作成する必要がある Namespace をエクスポートします。
export BINDING_NAMESPACE=BINDING_NAMESPACE組織スコープのロールの場合は BINDING_NAMESPACE を
platformに置き換え、プロジェクト スコープのロールの場合はターゲット プロジェクトの Namespace の名前に置き換えます。ロールとそのスコープのリストについては、 ロールの定義 をご覧ください。
IAMRoleBindingカスタム リソースを作成して適用します。cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f - apiVersion: iam.global.gdc.goog/v1 kind: IAMRoleBinding metadata: name: ${USERNAME}-${ROLE_NAME}-binding namespace: ${BINDING_NAMESPACE} spec: roleRef: apiGroup: iam.global.gdc.goog kind: IAMRole name: ${ROLE_NAME} subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: ${USERNAME} EOF
ロール バインディングを削除する
アクセスが不要になったら、メンバーと、関連するロール、権限、アクセス権を削除します。
メンバーを削除する手順は次のとおりです。
コンソール
- GDC コンソールにログインします。
- ナビゲーション メニューで、[ID とアクセス] > [アクセス] をクリックします。
- [承認済みメンバー] リストで、メンバーを選択します。
- [メンバーを削除] をクリックします。
- 確認画面が表示されたら、[メンバーを削除] をクリックして確定します。
gdcloud
gdcloud auth loginコマンドを使用してログインし、ID プロバイダで認証します。詳細については、 gdcloud CLI の認証をご覧ください。ロール バインディングを削除します。
組織のロール バインディングを削除します。
gdcloud organizations remove-iam-policy-binding ORGANIZATION \ --member=USER_ACCOUNT \ --role=ROLE次の変数を置き換えます。
ORGANIZATION: ロール バインディングを削除する組織の名前。USER_ACCOUNT: ロールを削除するユーザー アカウント。このフラグは、ID プロバイダの接頭辞が付いたユーザーのメールアドレス(user:idpprefix-user@example.com)またはサービス アカウント プロジェクトが付いたサービス アカウント名(serviceAccount:projectName:serviceAccountName)を受け入れます。ROLE: ユーザー アカウントから削除する事前定義ロールまたはカスタムロールの名前。
プロジェクトのロール バインディングを削除します。
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE次の変数を置き換えます。
PROJECT: ロール バインディングを削除するプロジェクトの名前。USER_ACCOUNT: ロールを削除するユーザー アカウント。このフラグは、ID プロバイダの接頭辞が付いたユーザーのメールアドレス(user:idpprefix-user@example.com)またはサービス アカウント プロジェクトが付いたサービス アカウント名(serviceAccount:projectName:serviceAccountName)を受け入れます。ROLE: ユーザー アカウントから削除する事前定義ロールまたはカスタムロールの名前。
kubectl
IAMRoleBinding を削除して、PA アカウントに付与された権限を取り消します。
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE
次のように置き換えます。
- GLOBAL_API_SERVER_KUBECONFIG: グローバル API サーバーにアクセスするための kubeconfig ファイルのパス。
- USERNAME:ロールを削除するユーザー アカウント。ID プロバイダの接頭辞(
idpprefix-paul@example.comなど)を含めます。 - ROLE_NAME: 削除するロールの名前(
project-creatorなど)。 - BINDING_NAMESPACE:組織スコープのロールの場合は
platformに置き換え、プロジェクト スコープのロールの場合はターゲット プロジェクトの Namespace の名前に置き換えます。
ユーザー アクセスを取り消す
メンバーが組織またはチームを離れた場合は、Google Distributed Cloud(GDC)エアーギャップへのアクセスを取り消すことができます。ユーザーのアクセス権を取り消すと、Distributed Cloud からログアウトされ、ロールと権限が削除されます。また、開始時刻と終了時刻からユーザーのアクティビティとセッションを一覧表示することもできます。
GDC ユニバース全体でユーザーのアクセス権を取り消すには、ゾーンごとに個別にアクセス権を取り消す必要があります。ゾーンごとに次の手順を完了します。
アクセス権を取り消すゾーンにログインしていることを確認します。たとえば、gdcloud CLI のゾーン URL 構成を設定してからログインします。
gdcloud config set organization_console_url ZONE_URL gdcloud auth loginZONE_URLは、ユーザー アクセスを取り消すゾーンの GDC コンソール URL (https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIXなど)に置き換えます。ゾーン コンテキストの切り替えの詳細については、 ツールでゾーンにアクセスするをご覧ください。
ゾーンのユーザーのアクセス権を取り消します。
gdcloud admin auth revoke --accounts USER_EMAILUSER_EMAIL は、アクセス権を取り消すユーザーのメールアドレスに置き換えます。
コマンドを実行すると、次のような出力が表示されます。この例では、ユーザー
ariel@example.comからのアクセス権を取り消します。Success: NUMBER of sessions revoked for user ariel@example.comこの例では、変数 NUMBER は ユーザーが持っていたアクティブ セッションの数を表します。
gdcloud admin auth revokeコマンドを再度実行して、ユーザーのアクセス権を取り消したことを確認します。成功すると、次のようになります。No sessions found for account: ariel@example.comユニバース内のゾーンごとに上記の手順を繰り返します。