このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスの Application Operator(AO)の Identity and Access Management(IAM)プラクティスについて説明します。
ID プロバイダ(IdP)は、プリンシパルの ID 情報を作成、維持、管理するシステム エンティティです。IdP は、フェデレーションまたは分散ネットワーク内のアプリケーションに認証サービスも提供します。
ログイン
このセクションでは、ウェブ ユーザー インターフェース(UI)またはコマンドライン インターフェース(CLI)を使用してワークロードにアクセスする方法について説明します。
ウェブ UI にログインする
このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンス内のワークロードとリソースにアクセスして管理する方法について説明します。認証方法、Management API サーバーと Kubernetes クラスタの両方の kubeconfig ファイルの生成方法、セッションの非アクティブ状態の管理方法について説明します。これらのプロセスを理解することで、プロジェクトとワークロードへの安全で信頼性の高いアクセスが保証されます。
GDC コンソールまたは gdcloud CLI を使用してワークロードにアクセスします。
ログイン
GDC コンソールまたはクラスタにログインするには、次の手順に沿って操作します。
コンソール
新しいブラウザタブで次の URL を開いて、GDC エアギャップ アプライアンスのユーザー インターフェース(UI)にアクセスします。
https://GDC_URL
GDC_URL は、インフラストラクチャ オペレーター(IO)が提供する GDC へのアクセスに使用するドメイン名に置き換えます。URL を初めて開くと、インフラストラクチャ オペレーター(IO)がページを構成している場合、GDC は ID プロバイダのログインページにリダイレクトします。
たとえば、`org-1` という名前の組織のコンソールにログインすると、次のページが表示されます。
CLI
アクセス権のあるクラスタには、すべてログインできます。すべてのクラスタの CLI ログイン プロセスは同じです。クラスタ名と関連する kubeconfig ファイルのみを指定し、各クラスタに個別にログインする必要があります。
ログインする前に、次のことを確認してください。
- gdcloud CLI バイナリをダウンロードしてシステムにインストールします。詳細については、gdcloud CLI をダウンロードするをご覧ください。
- gdcloud CLI のデフォルト構成を設定して初期化します。ログイン構成エンドポイントの取得に使用される正しい組織 URL を設定してください。詳細については、gdcloud CLI のインストールをご覧ください。
- 認証プラグイン
gdcloud-k8s-auth-pluginをインストールします。詳細については、gdcloud CLI 認証をご覧ください。
クラスタにログインする手順は次のとおりです。
gdcloud CLI インスタンスを認証してログインします。認証方法は次の 2 つです。
標準のブラウザ ログイン: ブラウザからログインする場合は、この認証フローを使用します。
gdcloud auth loginセカンダリ デバイスのログイン: メイン デバイスでブラウザを使用できない場合は、この認証フローを使用します。このフローでは、ブラウザ アクセス権のないメインのデバイスでログインを開始し、ブラウザ アクセス権のあるセカンダリ デバイスでログインを続行します。
ブラウザのないメインのデバイスでログインを開始します。
gdcloud auth login --no-browserプライマリ デバイスのコマンドは、手順 c でセカンダリ デバイスで実行する必要がある別の
gdcloudコマンドを出力します。クラスタにログインするの手順 1 を繰り返して、セカンダリ デバイスに証明書をダウンロードします。
手順 a でプライマリ デバイスに表示されたコマンドを入力して、セカンダリ デバイスでのログインを完了します。
この操作により、構成された ID プロバイダ(IdP)にログインするためのブラウザが開きます。ログインするには、gcloud CLI の初期設定時に設定したユーザー名とパスワードを入力します。
ユーザー ID
kubeconfigファイルを変数としてエクスポートします。export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yamlユーザー ID を含む
kubeconfigファイルを生成します。gdcloud clusters get-credentials CLUSTER_NAMEユーザー ID を含む
kubeconfigファイルが生成されます。次の YAML ファイルに例を示します。apiVersion: v1 clusters: - cluster: certificate-authority-data: <REDACTED> server: https://10.200.0.32:443 name: cluster-name contexts: - context: cluster: cluster-name user: cluster-name-anthos-default-user name: cluster-name-cluster-name-anthos-default-user current-context: cluster-name-cluster-name-anthos-default-user kind: Config preferences: {} users: - name: cluster-name-anthos-default-user user: exec: apiVersion: client.authentication.k8s.io/v1 args: - --audience=root-admin command: gdcloud-k8s-auth-plugin env: null installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin interactiveMode: Never provideClusterInfo: falseクラスタにアクセスできることを確認するには、生成された
kubeconfigファイルを使用してユーザー ID でログインします。kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
ログアウト
GDC コンソールからログアウトする手順は次のとおりです。
コンソール
メニューバーの [ログアウト] をクリックします。

CLI
CLI からログアウトします。
gdcloud auth revoke
kubeconfig ファイルを手動で生成する
KRM API を直接呼び出して kubectl CLI でリソースを管理している場合は、管理するリソースのタイプに応じて、リソースをホストするクラスタの kubeconfig ファイルを生成する必要があります。必要な kubeconfig ファイルを特定するには、リソースのドキュメントをご覧ください。
リソースタイプに基づいて、該当する設定を完了します。
Management API サーバー リソース
次の手順に沿って、Management API サーバーの kubeconfig ファイルを生成します。
MANAGEMENT_API_SERVER環境変数を設定します。export MANAGEMENT_API_SERVER="root-admin"Management API サーバーの kubeconfig ファイルを生成し、認証情報を検証します。
export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"コマンド
rm ${KUBECONFIG:?}は、ホーム ディレクトリ内の既存の kubeconfig ファイルを削除します。新しい kubeconfig ファイルを生成すると、既存のファイルが上書きされます。既存のファイルを上書きまたは削除したくない場合は、別の安全な場所にバックアップしてください。
Kubernetes クラスタ リソース
ベアメタル Kubernetes クラスタの kubeconfig ファイルを生成する手順は次のとおりです。
KUBERNETES_CLUSTER環境変数を設定します。export KUBERNETES_CLUSTER="root-infra"Kubernetes クラスタの kubeconfig ファイルを生成し、認証情報を検証します。
export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"コマンド
rm ${KUBECONFIG:?}は、ホーム ディレクトリ内の既存の kubeconfig ファイルを削除します。新しい kubeconfig ファイルを生成すると、既存のファイルが上書きされます。既存のファイルを上書きまたは削除したくない場合は、別の安全な場所にバックアップしてください。
セッションの非アクティブ ログアウト
セッションで 15 分以上操作がないと、GDC コンソールと gdcloud CLI からログアウトされます。GDC では、セッションの非アクティブ状態とは、開いているセッション中にカーソルやキーボードの操作など、ユーザーによるアクティブな操作がない期間を指します。アクティブ セッションは、ユーザー アクティビティがある場合、最大 12 時間継続します。
コンソール
セッションが非アクティブになると、GDC コンソールからログアウトされます。GDC コンソールが非アクティブ状態のためにログアウトする 2 分前に、ログアウトを警告するダイアログが表示されます。

操作がないためログアウトすると、次の画面が表示されます。

GDC コンソールに再度ログインするには、ID プロバイダを選択してログイン認証情報を追加します。モニタリング ダッシュボードなどのサービスを使用しているときに、GDC コンソールが非アクティブ状態のためにログアウトした場合は、再度ログインしてアクセスします。
CLI
セッションが非アクティブになると、gdcloud CLI からログアウトします。gdcloud CLI からログアウトした後、コマンドを実行しようとすると、承認エラーが表示されます。
Error: error when creating kube client: unable to create k8sclient: Unauthorized
gdcloud CLI に再度ログインするには、ログインの CLI の手順に沿って操作します。
kubectl
gdcloud CLI は、セッションが非アクティブになると kubeconfig ファイルを期限切れにします。非アクティブ状態の後に kubectl コマンドを実行しようとすると、認証エラーが発生します。
error: You must be logged in to the server (Unauthorized)
再度ログインして kubeconfig ファイルを使用するには、ログインの CLI の手順に沿って操作します。セッションがタイムアウトするたびに、kubeconfig ファイルを再生成する必要があります。
IAM 許可ポリシーを設定する
事前定義ロールの説明
アプリケーション オペレータ(AO)は、プラットフォーム管理者(PA)組織内の開発チームのメンバーです。AO はプロジェクト レベルのリソースとやり取りします。チームメンバーには、次の事前定義ロールを割り当てることができます。
- プロジェクト IAM 管理者: プロジェクトの IAM 許可ポリシーを管理します。
- AI OCR デベロッパー: 光学式文字認識サービスにアクセスして、画像内のテキストを検出します。
- AI Speech Developer: Speech-to-Text サービスにアクセスして、音声を認識し、音声を文字に変換します。
- AI Translation デベロッパー: Vertex AI Translation サービスにアクセスしてテキストを翻訳します。
- Artifact Management Admin: プロジェクト Namespace 内のすべての Harbor プロジェクトのリソースに対する管理者権限があります。
- Artifact Management Editor: プロジェクト Namespace 内のすべての Harbor プロジェクトのリソースに対する読み取り / 書き込みアクセス権を持ちます。
- Certificate Authority Service 管理者: プロジェクト内の認証局と証明書リクエストを管理する権限があります。
- Certificate Service 管理者: プロジェクト内の証明書と証明書発行者を管理する権限があります。
- ダッシュボード編集者:
Dashboardカスタム リソースに対する読み取り / 書き込みアクセス権があります。 - ダッシュボード閲覧者:
Dashboardカスタム リソースに対する読み取り専用アクセス権があります。 - Harbor インスタンス管理者: プロジェクト内の Harbor インスタンスを管理するための完全なアクセス権を持ちます。
- Harbor インスタンス閲覧者: プロジェクト内の Harbor インスタンスを表示する読み取り専用アクセス権があります。
- Harbor プロジェクト作成者: Harbor インスタンス プロジェクトを管理する権限があります。
- K8s ネットワーク ポリシー管理者: Kubernetes クラスタのネットワーク ポリシーを管理します。
- LoggingRule 作成者: プロジェクト Namespace に
LoggingRuleカスタム リソースを作成します。 - LoggingRule エディタ: プロジェクト Namespace の
LoggingRuleカスタム リソースを編集します。 - LoggingRule 閲覧者: プロジェクト Namespace の
LoggingRuleカスタム リソースを表示します。 - LoggingTarget Creator: プロジェクト Namespace に
LoggingTargetカスタム リソースを作成します。 - LoggingTarget エディタ: プロジェクト Namespace の
LoggingTargetカスタム リソースを編集します。 - LoggingTarget 閲覧者: プロジェクト Namespace の
LoggingTargetカスタム リソースを表示します。 - ロードバランサ管理者: プロジェクト Namespace 内のすべてのロードバランサ リソースに対する読み取り / 書き込み権限を持ちます。
- MonitoringRule 編集者:
MonitoringRuleリソースに対する読み取り / 書き込みアクセス権があります。 - MonitoringRule 閲覧者:
MonitoringRuleカスタム リソースに対する読み取り専用アクセス権があります。 - MonitoringTarget 編集者:
MonitoringTargetカスタム リソースに対する読み取り / 書き込みアクセス権があります。 - MonitoringTarget 閲覧者:
MonitoringTargetカスタム リソースに対する読み取り専用アクセス権があります。 - NAT 閲覧者: Kubernetes クラスタのデプロイに対する読み取り専用アクセス権があります。
- Namespace 管理者: プロジェクト Namespace 内のすべてのリソースを管理します。
- ObservabilityPipeline 編集者:
ObservabilityPipeineカスタム リソースに対する読み取り / 書き込みアクセス権があります。 - ObservabilityPipeline 閲覧者:
ObservabilityPipelineカスタム リソースに対する読み取り専用アクセス権があります。 - プロジェクト バケット管理者: バケット内のストレージ バケットとオブジェクトを管理します。
- プロジェクト バケット オブジェクト管理者: プロジェクト内のバケットに対する読み取り専用アクセス権と、それらのバケット内のオブジェクトに対する読み取り / 書き込みアクセス権があります。
- プロジェクト バケット オブジェクト閲覧者: プロジェクト内のバケットと、そのバケット内のオブジェクトに対する読み取り専用アクセス権があります。
- Project Cortex Alertmanager Editor: プロジェクト Namespace の Cortex Alertmanager インスタンスを編集する権限を付与します。
- Project Cortex Alertmanager Viewer: プロジェクト Namespace の Cortex Alertmanager インスタンスにアクセスする権限を付与します。
- Project Cortex Prometheus Viewer: プロジェクト Namespace の Cortex Prometheus インスタンスにアクセスする権限を付与します。
- プロジェクト Grafana 閲覧者: フリート管理クラスタのプロジェクト Namespace の Grafana インスタンスにアクセスします。
- プロジェクト NetworkPolicy 管理者: プロジェクト Namespace のプロジェクト ネットワーク ポリシーを管理します。
- プロジェクト閲覧者: プロジェクト Namespace 内のすべてのリソースに対する読み取り専用アクセス権を持ちます。
- プロジェクト VirtualMachine 管理者: プロジェクトの Namespace 内の VM を管理します。
- プロジェクト VirtualMachine Image 管理者: プロジェクト Namespace の VM イメージを管理します。
- Secret 管理者: プロジェクト内の Kubernetes Secret を管理します。
- Secret 閲覧者: プロジェクト内の Kubernetes Secret を表示します。
- サービス構成管理者: プロジェクト Namespace 内のサービス構成に対する読み取り / 書き込みアクセス権があります。
- サービス構成閲覧者: プロジェクト Namespace 内のサービス構成に対する読み取りアクセス権があります。
- ボリューム レプリケーション管理者: ボリューム レプリケーション リソースを管理します。
- Workbench Notebooks 管理者: プロジェクト Namespace 内のすべてのノートブック リソースに対する読み取り / 書き込みアクセス権を取得します。
- Workbench Notebooks 閲覧者: プロジェクト Namespace 内のすべてのノートブック リソースへの読み取り専用アクセス権を取得し、Vertex AI Workbench ユーザー インターフェースを表示します。
- ワークロード閲覧者: プロジェクト内のワークロードに対する読み取りアクセス権があります。
一般的なロール
次の事前定義された共通ロールは、すべての認証済みユーザーに適用されます。
- AI Platform 閲覧者: 事前トレーニング済みサービスを表示する権限を付与します。
- DNS サフィックス ビューア: ドメイン ネーム サービス(DNS)サフィックス構成マップにアクセスします。
- フローログ管理者: すべてのフローログ リソースに対する読み取り / 書き込みアクセス権を持ちます。
- フローログ閲覧者: すべてのフローログ リソースに対する読み取り専用アクセス権があります。
- プロジェクト検出閲覧者: 認証されたすべてのユーザーにプロジェクト ビューへの読み取りアクセス権を付与します。
- 公開イメージ閲覧者: Namespace
vm-imagesの公開 VM イメージに対するすべての認証済みユーザーの読み取りアクセス権があります。 - システム Artifact Registry anthos-creds シークレット モニター:
anthos-credsNamespace のシークレットに対する読み取り専用アクセス権を持ちます。 - システム Artifact Registry gpc-system シークレット モニター:
gpc-systemNamespace のシークレットに対する読み取り専用アクセス権を持ちます。 - システム Artifact Registry harbor-system Secret モニター:
harbor-systemNamespace の Secret への読み取り専用アクセス権があります。 - 仮想マシンタイプの閲覧者: クラスタ スコープの仮想マシンタイプに対する読み取りアクセス権があります。
- VM タイプ閲覧者: 管理クラスタの事前定義された仮想マシンタイプに対する読み取りアクセス権があります。
ロール定義
このセクションの表では、さまざまな事前定義ロールとその権限について説明します。テーブルには次の列が含まれています。
- 名前: ユーザー インターフェース(UI)に表示されるロールの名前。
- Kubernetes リソース名: 対応する Kubernetes カスタム リソースの名前。
- レベル: このロールが組織またはプロジェクトによってスコープ設定されているかどうかを指定します。
- タイプ: このロールのタイプ。たとえば、
Role、ProjectRole、ClusterRole、ProjectClusterRoleなどの値が考えられます。 - バインディング タイプ: このロールに適用する必要があるバインディングのタイプ。
- Management API サーバーまたは Kubernetes クラスタの権限: このロールが Management API サーバーまたは Kubernetes クラスタに対して持つ権限。たとえば、read、write、read and write、not applicable(N/A)などの値が考えられます。
- エスカレーション先: このロールが他のロールにエスカレーションするかどうかを指定します。
AO ペルソナ、事前定義された ID とアクセスロール
| AO ペルソナ | ||||
|---|---|---|---|---|
| 名前 | Kubernetes リソース名 | 初期管理者 | レベル | 型 |
| プロジェクト IAM 管理者 | project-iam-admin |
正しい | プロジェクト | Role |
| AI OCR デベロッパー | ai-ocr-developer |
誤り | プロジェクト | Role |
| AI Platform 閲覧者 | ai-platform-viewer |
誤り | プロジェクト | Role |
| AI Speech デベロッパー | ai-speech-developer |
誤り | プロジェクト | Role |
| AI Translation デベロッパー | ai-translation-developer |
誤り | プロジェクト | Role |
| Artifact Management 管理者 | artifact-management-admin |
誤り | プロジェクト | Role |
| アーティファクト管理編集者 | artifact-management-editor |
誤り | プロジェクト | Role |
| Certificate Authority Service 管理者 | certificate-authority-service-admin |
誤り | プロジェクト | Role |
| 証明書サービス管理者 | certificate-service-admin |
誤り | プロジェクト | Role |
| ダッシュボード エディタ | dashboard-editor |
誤り | プロジェクト | Role |
| ダッシュボード閲覧者 | dashboard-viewer |
誤り | プロジェクト | Role |
| Harbor インスタンス管理者 | harbor-instance-admin |
誤り | プロジェクト | Role |
| Harbor インスタンス閲覧者 | harbor-instance-viewer |
誤り | プロジェクト | Role |
| Harbor プロジェクト作成者 | harbor-project-creator |
誤り | プロジェクト | Role |
| K8s ネットワーク ポリシー管理者 | k8s-networkpolicy-admin |
誤り | プロジェクト | ProjectRole |
| ロードバランサ管理者 | load-balancer-admin |
誤り | プロジェクト | ProjectRole |
| LoggingRule 作成者 | loggingrule-creator |
誤り | プロジェクト | Role |
| LoggingRule エディタ | loggingrule-editor |
誤り | プロジェクト | Role |
| LoggingRule 閲覧者 | loggingrule-viewer |
誤り | プロジェクト | Role |
| LoggingTarget Creator | loggingtarget-creator |
誤り | プロジェクト | Role |
| LoggingTarget エディタ | loggingtarget-editor |
誤り | プロジェクト | Role |
| LoggingTarget 閲覧者 | loggingtarget-viewer |
誤り | プロジェクト | Role |
| MonitoringRule エディタ | monitoringrule-editor |
誤り | プロジェクト | Role |
| MonitoringRule 閲覧者 | monitoringrule-viewer |
誤り | プロジェクト | Role |
| MonitoringTarget 編集者 | monitoringtarget-editor |
誤り | プロジェクト | Role |
| MonitoringTarget 閲覧者 | monitoringtarget-viewer |
誤り | プロジェクト | Role |
| Namespace Admin | namespace-admin |
誤り | プロジェクト | ProjectRole |
| NAT 閲覧者 | nat-viewer |
誤り | プロジェクト | ProjectRole |
| ObservabilityPipeline 編集者 | observabilitypipeline-editor |
誤り | プロジェクト | Role |
| ObservabilityPipeline 閲覧者 | observabilitypipeline-viewer |
誤り | プロジェクト | Role |
| プロジェクト バケット管理者 | project-bucket-admin |
誤り | プロジェクト | Role |
| プロジェクト バケット オブジェクト管理者 | project-bucket-object-admin |
誤り | プロジェクト | Role |
| プロジェクト バケット オブジェクト閲覧者 | project-bucket-object-viewer |
誤り | プロジェクト | Role |
| Project Cortex Alertmanager 編集者 | project-cortex-alertmanager-editor |
誤り | プロジェクト | Role |
| Project Cortex Alertmanager 閲覧者 | project-cortex-alertmanager-viewer |
誤り | プロジェクト | Role |
| Project Cortex Prometheus Viewer | project-cortex-prometheus-viewer |
誤り | プロジェクト | Role |
| プロジェクト Grafana 閲覧者 | project-grafana-viewer |
誤り | プロジェクト | Role |
| プロジェクト ネットワーク ポリシー管理者 | project-networkpolicy-admin |
誤り | プロジェクト | Role |
| プロジェクト閲覧者 | project-viewer |
誤り | プロジェクト | Role |
| プロジェクト VirtualMachine 管理者 | project-vm-admin |
誤り | プロジェクト | Role |
| プロジェクト VirtualMachine イメージ管理者 | project-vm-image-admin |
誤り | プロジェクト | Role |
| シークレット管理者 | secret-admin |
誤り | プロジェクト | Role |
| シークレット閲覧者 | secret-viewer |
誤り | プロジェクト | Role |
| サービス構成管理者 | service-configuration-admin |
誤り | プロジェクト | Role |
| サービス構成閲覧者 | service-configuration-viewer |
誤り | プロジェクト | Role |
| Workbench Notebooks 管理者 | workbench-notebooks-admin |
誤り | プロジェクト | Role |
| ボリューム レプリケーション管理者 | app-volume-replication-admin |
誤り | クラスタ | Role |
| Workbench Notebooks 閲覧者 | workbench-notebooks-viewer |
誤り | プロジェクト | Role |
| ワークロード閲覧者 | workload-viewer |
誤り | プロジェクト | Role |
AO ペルソナ、事前定義された ID とアクセスロール
| AO ペルソナ | ||||
|---|---|---|---|---|
| 名前 | バインディング タイプ | Management API サーバーの権限 | Kubernetes クラスタの権限 | エスカレーション先 |
| プロジェクト IAM 管理者 | RoleBinding |
|
なし | その他のすべての AO ロール |
| AI OCR デベロッパー | RoleBinding |
OCR リソース: 読み取りと書き込み | なし | なし |
| AI Speech デベロッパー | RoleBinding |
音声リソース: 読み取りと書き込み | なし | なし |
| AI Translation デベロッパー | RoleBinding |
翻訳リソース: 読み取りと書き込み | なし | なし |
| Artifact Management 管理者 | RoleBinding |
HarborProjects: 管理者、作成、読み取り、書き込み、削除、表示 |
なし | なし |
| アーティファクト管理編集者 | RoleBinding |
HarborProjects: 読み取り、書き込み、表示 |
なし | なし |
| Certificate Authority Service 管理者 | RoleBinding |
認証局と証明書リクエスト: 取得、一覧表示、監視、更新、作成、削除、パッチ適用 | なし | なし |
| 証明書サービス管理者 | RoleBinding |
証明書と証明書発行者: 取得、一覧表示、監視、更新、作成、削除、パッチ適用 | なし | なし |
| ダッシュボード エディタ | RoleBinding |
Dashboard カスタム リソース: 取得、読み取り、作成、更新、削除、パッチ適用 |
なし | なし |
| ダッシュボード閲覧者 | RoleBinding |
Dashboard: 取得して読み取る |
なし | なし |
| Harbor インスタンス管理者 | RoleBinding |
Harbor インスタンス: 作成、読み取り、更新、削除、パッチ適用 | なし | なし |
| Harbor インスタンス閲覧者 | RoleBinding |
Harbor インスタンス: 読み取り | なし | なし |
| Harbor プロジェクト作成者 | RoleBinding |
Harbor インスタンス プロジェクト: 作成、取得、監視 | なし | なし |
| K8s NetworkPolicy 管理者 | ProjectRoleBinding |
なし | NetworkPolicy リソース: 作成、読み取り、取得、更新、削除、パッチ適用 |
なし |
| ロードバランサ管理者 | RoleBinding |
なし |
|
なし |
| LoggingRule 作成者 | RoleBinding |
LoggingRule カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| LoggingRule エディタ | RoleBinding |
LoggingRule カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| LoggingRule 閲覧者 | RoleBinding |
LoggingRule カスタム リソース: 読み取り |
なし | なし |
| LoggingTarget Creator | RoleBinding |
LoggingTarget カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| LoggingTarget エディタ | RoleBinding |
LoggingTarget カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| LoggingTarget 閲覧者 | RoleBinding |
LoggingTarget カスタム リソース: 読み取り |
なし | なし |
| MonitoringRule エディタ | RoleBinding |
MonitoringRule カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| MonitoringRule 閲覧者 | RoleBinding |
MonitoringRule カスタム リソース: 読み取り |
なし | なし |
| MonitoringTarget 編集者 | RoleBinding |
MonitoringTarget カスタム リソース: 作成、読み取り、更新、削除、パッチ適用 |
なし | なし |
| MonitoringTarget 閲覧者 | RoleBinding |
MonitoringTarget カスタム リソース: 読み取り |
なし | なし |
| Namespace Admin | ProjectRoleBinding |
なし | すべてのリソース: プロジェクト Namespace の読み取り / 書き込みアクセス | なし |
| NAT 閲覧者 | ProjectRoleBinding |
なし | デプロイ: 取得と読み取り | なし |
| ObservabilityPipeline 編集者 | RoleBinding |
ObservabilityPipeline リソース: 取得、読み取り、作成、更新、削除、パッチ適用 |
なし | なし |
| ObservabilityPipeline 閲覧者 | RoleBinding |
ObservabilityPipeline リソース: 取得と読み取り |
なし | なし |
| プロジェクト バケット管理者 | RoleBinding |
バケット: プロジェクトの Namespace での読み取りと書き込み | なし | なし |
| プロジェクト バケット オブジェクト管理者 | RoleBinding |
|
なし | なし |
| プロジェクト バケット オブジェクト閲覧者 | RoleBinding |
バケットとオブジェクト: 読み取り | なし | なし |
| Project Cortex Alertmanager 編集者 | RoleBinding |
Cortex システムと Cortex Alertmanager: 読み取りと書き込み | なし | なし |
| Project Cortex Alertmanager 閲覧者 | RoleBinding |
Cortex システムと Cortex Alertmanager: 読み取り | なし | なし |
| Project Cortex Prometheus Viewer | RoleBinding |
Cortex システムと Cortex Prometheus: 読み取り | なし | なし |
| プロジェクト Grafana 閲覧者 | RoleBinding |
Grafana システムと Grafana: 読み取りと書き込み | なし | なし |
| プロジェクト ネットワーク ポリシー管理者 | RoleBinding |
プロジェクト ネットワーク ポリシー: プロジェクト Namespace の読み取りと書き込み | なし | なし |
| プロジェクト閲覧者 | RoleBinding |
プロジェクト Namespace 内のすべてのリソース: 読み取り | なし | なし |
| プロジェクト VirtualMachine 管理者 | RoleBinding |
|
なし | なし |
| プロジェクト VirtualMachine イメージ管理者 | RoleBinding |
|
なし | なし |
| シークレット管理者 | RoleBinding |
Kubernetes Secret: 読み取り、作成、更新、削除、パッチ適用 | なし | なし |
| シークレット閲覧者 | RoleBinding |
Kubernetes Secret: 読み取り | なし | なし |
| サービス構成管理者 | RoleBinding |
ServiceConfigurations: 読み取りと書き込み |
なし | なし |
| サービス構成閲覧者 | RoleBinding |
ServiceConfigurations: 既読
|
なし | なし |
| ボリューム レプリケーション管理者 | ClusterRoleBinding |
Volume failovers, volume relationship replicas:
作成、取得、一覧表示、監視、削除
|
なし | なし |
| Workbench Notebooks 管理者 | RoleBinding |
なし |
|
なし |
| Workbench Notebooks 閲覧者 | RoleBinding |
なし |
|
なし |
| ワークロード閲覧者 | ProjectRoleBinding |
なし |
|
なし |
一般的な事前定義の ID とアクセスロール
| 一般的なロール | ||||
|---|---|---|---|---|
| 名前 | Kubernetes リソース名 | 初期管理者 | レベル | 型 |
| AI Platform 閲覧者 | ai-platform-viewer |
誤り | プロジェクト | Role |
| DNS サフィックス閲覧者 | dnssuffix-viewer |
誤り | 組織 | Role |
| フローログ管理者 | flowlog-admin |
誤り | 組織 | ClusterRole |
| フローログ ビューア | flowlog-viewer |
誤り | プロジェクト | ClusterRole |
| プロジェクト ディスカバリ閲覧者 | projectdiscovery-viewer |
誤り | プロジェクト | ClusterRole |
| 公開画像ビューア | public-image-viewer |
誤り | 組織 | Role |
| システム Artifact Registry anthos-creds シークレット モニター | sar-anthos-creds-secret-monitor |
誤り | 組織 | Role |
| システム Artifact Registry gpc-system シークレット モニター | sar-gpc-system-secret-monitor |
誤り | 組織 | Role |
| システム Artifact Registry harbor-system シークレット モニター | sar-harbor-system-secret-monitor |
誤り | 組織 | Role |
| Virtual Machine Type ビューア | virtualmachinetype-viewer |
誤り | 組織 | OrganizationRole |
| VM タイプ閲覧者 | vmtype-viewer |
誤り | 組織 | Role |
一般的な事前定義の ID とアクセスロール
| 一般的なロール | ||||
|---|---|---|---|---|
| 名前 | バインディング タイプ | 管理クラスタの権限 | Kubernetes クラスタの権限 | エスカレーション先 |
| AI Platform 閲覧者 | RoleBinding |
事前トレーニング済みサービス: 読み取り | なし | なし |
| DNS サフィックス閲覧者 | ClusterRoleBinding |
DNS サフィックス構成マップ: 読み取り | なし | なし |
| フローログ管理者 | ClusterRoleBinding |
フローログ リソース: 取得と読み取り | フローログ リソース: 取得と読み取り | なし |
| フローログ ビューア | ClusterRoleBinding |
フローログ リソース: 作成、取得、読み取り、パッチ適用、更新、削除 | フローログ リソース: 作成、取得、読み取り、パッチ適用、更新、削除 | なし |
| プロジェクト ディスカバリ閲覧者 | ClusterRoleBinding |
プロジェクト: 読み取り | なし | なし |
| 公開画像ビューア | RoleBinding |
VM イメージ: 読み取り | なし | なし |
| システム Artifact Registry anthos-creds シークレット モニター | RoleBinding |
anthos-creds シークレット: 取得と読み取り |
anthos-creds シークレット: 取得と読み取り |
なし |
| システム Artifact Registry gpc-system シークレット モニター | RoleBinding |
gpc-system シークレット: 取得と読み取り |
gpc-system シークレット: 取得と読み取り |
なし |
| システム Artifact Registry harbor-system シークレット モニター | RoleBinding |
harbor-system シークレット: 取得と読み取り |
harbor-system シークレット: 取得と読み取り |
なし |
| Virtual Machine Type ビューア | OrganizationRoleBinding |
なし | VM タイプ: 読み取り | なし |
| VM タイプ閲覧者 | ClusterRoleBinding |
VM タイプ: 読み取り | なし | なし |
リソースへのアクセス権を付与する方法は 2 つあります。
CLI を使用してロール バインディングを設定する
管理クラスタでの AO アクセス
Infrastructure Operator(IO)と Platform Administrator(PA)とは異なり、GDC は ClusterRoleBinding ではなく RoleBinding を介して Application Operator(AO)を Project にバインドします。
AO に管理クラスタへのアクセス権を付与する手順は次のとおりです。
AO アクセスに使用しているメールをエクスポートします。たとえば、
ao-alice@example.comなどのメールアドレス。export AO_EMAIL=AO_EMAILロール バインディングを作成して、
iam-testNamespace で${AO_EMAIL}プロジェクト IAM 管理者アクセス権を付与します。kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-iam-admin \ --role=project-iam-admin --user=$AO_EMAIL \ --namespace=iam-testproject-iam-adminロールは、GDC の事前定義ロールです。iam-testKubernetes Namespace は、管理クラスタのiam-testプロジェクトに対応しています。AO アカウントに
iam-testNamespace でロール バインディングを作成する権限があることを確認します。kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test次の出力が表示されます。
yesロール バインディングを作成して、
barNamespace で${AO_EMAIL}プロジェクト閲覧者のアクセス権を付与します。kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-viewer \ --role=project-viewer --user=$AO_EMAIL \ --namespace=barproject-viewerロールは、GDC のプリセット ロールです。barKubernetes Namespace は、組織管理クラスタのbarプロジェクトに対応しています。AO アカウントに
barNamespace でロール バインディングを作成する権限がないことを確認します。kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar次の出力が表示されます。
no省略可: ロール バインディングを削除して、AO アカウントに付与された権限を取り消します。
kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
ユーザー クラスタでの AO アクセス
AO は ProjectRole リソースと ProjectRoleBinding リソースを使用して、ユーザー クラスタへの Namespace アクセス権を取得します。ただし、PA は、プリセットの OrganizationRole リソースと ProjectRoleBinding リソースを使用して、ユーザー クラスタで AO に組織全体の権限を付与できます。
次の手順に沿って、AO にユーザー クラスタへのアクセス権を付与します。
ユーザー クラスタへのアクセス権を付与するには、プロジェクト IAM 管理者のロールが必要です。
iam-testNamespace 内のすべてのユーザー クラスタで${AO_EMAIL}Namespace 管理者アクセス権を付与するProjectRoleBindingリソースを作成します。kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: ${AO_EMAIL%@*}-namespace-admin namespace: iam-test spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: namespace-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: ${AO_EMAIL} EOFCLI と kubectl でログインするの手順に沿って、ユーザー クラスタのユーザー認証情報を取得し、
AO_USER_CLUSTER_KUBECONFIG変数にエクスポートします。export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIGAO アカウントに
iam-testNamespace で Deployment を作成する権限があることを確認します。kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test次の出力が表示されます。
yes省略可: プロジェクト ロール バインディングを削除して、テスト AO アカウントに付与された権限を取り消します。
kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
UI を使用してプロジェクト全体のロール バインディングを設定する
アプリケーション オペレーターは、プロジェクト リソースにアクセスできるように、他のアプリケーション オペレーターをプロジェクトに追加します。
ロール バインディングの設定に必要な権限を取得するには、プロジェクト IAM 管理者にプロジェクト IAM 管理者ロールの付与を依頼してください。
ロール バインディングを設定する手順は次のとおりです。
- GDC エアギャップ アプライアンス コンソールにログインします。
- プロジェクトを選択します。
- ナビゲーション メニューで、[アクセス管理] をクリックします。
- [メンバーを追加] をクリックします。
- [ID プロバイダ] リストで、ID プロバイダを選択します。
- 個々のユーザーを追加するか、グループを追加するかを選択します。
- [ユーザー名またはグループ エイリアス] フィールドに、ユーザー名、メールアドレス、エイリアスのいずれかを入力します。
- [ロール] リストで、ユーザーまたはグループに割り当てるロール([プロジェクト閲覧者] など)を選択します。
- [追加] をクリックします。
UI を使用してロール バインディングを削除する
アクセスが不要になったら、メンバーとそれに関連するロール、権限、アクセス権を削除します。
メンバーを削除する手順は次のとおりです。
- GDC エアギャップ アプライアンス コンソールにログインします。
- プロジェクトを選択します。
- ナビゲーション メニューで、[アクセス管理] をクリックします。
- [承認済みメンバー] リストで、メンバーを選択します。
- [メンバーを削除] をクリックします。
- 確認画面が表示されたら、[メンバーを削除] をクリックして確定します。