このページでは、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)にログインするためのブラウザが開きます。初期の gdcloud 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 作成者: プロジェクト 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 管理者: プロジェクト名前空間の 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-creds
Namespace のシークレットに対する読み取り専用アクセス権を持ちます。 - システム Artifact Registry gpc-system シークレット モニター:
gpc-system
Namespace のシークレットに対する読み取り専用アクセス権を持ちます。 - システム Artifact Registry harbor-system Secret モニター:
harbor-system
Namespace の 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 |
プロジェクトの NetworkPolicy 管理者 | 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 |
なし | Deployments: 取得と読み取り | なし |
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: 読み取りと書き込み | なし | なし |
プロジェクトの NetworkPolicy 管理者 | 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 は Application Operator(AO)を ClusterRoleBinding
ではなく RoleBinding
を介して Project
にバインドします。
AO に管理クラスタへのアクセス権を付与する手順は次のとおりです。
AO アクセスに使用しているメールアドレスをエクスポートします。たとえば、
ao-alice@example.com
などのメールアドレス。export AO_EMAIL=AO_EMAIL
ロール バインディングを作成して、
iam-test
Namespace で${AO_EMAIL}
プロジェクト IAM 管理者アクセス権を付与します。kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-iam-admin \ --role=project-iam-admin --user=$AO_EMAIL \ --namespace=iam-test
project-iam-admin
ロールは、GDC の事前定義ロールです。iam-test
Kubernetes Namespace は、管理クラスタのiam-test
プロジェクトに対応しています。AO アカウントに
iam-test
Namespace でロール バインディングを作成する権限があることを確認します。kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
次の出力が表示されます。
yes
ロール バインディングを作成して、
bar
Namespace で${AO_EMAIL}
プロジェクト閲覧者のアクセス権を付与します。kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-viewer \ --role=project-viewer --user=$AO_EMAIL \ --namespace=bar
project-viewer
ロールは、GDC のプリセット ロールです。bar
Kubernetes Namespace は、組織管理クラスタのbar
プロジェクトに対応しています。AO アカウントに
bar
Namespace でロール バインディングを作成する権限がないことを確認します。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-test
Namespace 内のすべてのユーザー クラスタで${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} EOF
CLI と kubectl でログインするの手順に沿って、ユーザー クラスタのユーザー認証情報を取得し、
AO_USER_CLUSTER_KUBECONFIG
変数にエクスポートします。export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
AO アカウントに
iam-test
Namespace で 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 エアギャップ アプライアンス コンソールにログインします。
- プロジェクトを選択します。
- ナビゲーション メニューで、[アクセス管理] をクリックします。
- [承認済みメンバー] リストで、メンバーを選択します。
- [メンバーを削除] をクリックします。
- 確認画面が表示されたら、[メンバーを削除] をクリックして確定します。