2.9.2.2. Google Cloud 用の OpenShift Container Platform サービスアカウントを作成する


OpenShift Container Platform のサービスアカウントを作成し、Google Cloud のサービスアカウントに成り代われるように、そのサービスアカウントにアノテーションを付けます。

前提条件

  • Google Cloud のクラスターで GCP Workload Identity を使用している。
  • フェデレーションされた Google Cloud サービスアカウントを作成した。
  • cluster-admin ロールを持つユーザーとして OpenShift CLI (oc) にアクセスできる。
  • Identity and Access Management (IAM) とワークロードアイデンティティー設定を管理する権限を持つユーザーとして、Google Cloud CLI (gcloud) にアクセスできる。

手順

  1. 次のコマンドを実行して、GCP Workload Identity Pod 認証に使用する OpenShift Container Platform サービスアカウントを作成します。

    $ oc create serviceaccount <service_account_name>
  2. 次のコマンドを実行して、サービスアカウントに成り代わるアイデンティティープロバイダーと Google Cloud サービスアカウントのアノテーションを付けます。

    $ oc patch serviceaccount <service_account_name> -p '{"metadata": {"annotations": {"cloud.google.com/workload-identity-provider": "projects/<project_number>/locations/global/workloadIdentityPools/<identity_pool>/providers/<identity_provider>"}}}'

    <project_number><identity_pool><identity_provider> を実際の設定の値に置き換えます。

    注記

    <project_number> には、プロジェクト ID ではなく、Google Cloud プロジェクト番号を指定します。

  3. 次のコマンドを実行して、Google Cloud サービスアカウントのメールアドレスをサービスアカウントにアノテーションとして追加します。

    $ oc patch serviceaccount <service_account_name> -p '{"metadata": {"annotations": {"cloud.google.com/service-account-email": "<service_account_email>"}}}'

    <service_account_email> は、Google Cloud サービスアカウントのメールアドレスに置き換えます。

    ヒント

    通常、Google Cloud サービスアカウントのメールアドレスは、<service_account_name>@<project_id>.iam.gserviceaccount.com という形式を使用します。

  4. 次のコマンドを実行して、direct 外部認証情報設定注入モードを使用するようにサービスアカウントにアノテーションを付けます。

    $ oc patch serviceaccount <service_account_name> -p '{"metadata": {"annotations": {"cloud.google.com/injection-mode": "direct"}}}'

    このモードでは、Workload Identity Federation Webhook コントローラーが Google Cloud 外部認証情報の設定を直接生成し、Pod に注入します。

  5. Google Cloud CLI (gcloud) を使用して次のコマンドを実行し、ワークロードの権限を指定します。

    $ gcloud projects add-iam-policy-binding <project_id> --member "<service_account_email>" --role "projects/<project_id>/roles/<role_for_workload_permissions>"

    <role_for_workload_permissions> をワークロードのロールに置き換えます。ワークロードに必要な権限を付与するロールを指定します。

検証

  • サービスアカウントの設定を検証するには、次のコマンドを実行して ServiceAccount マニフェストを調べます。

    $ oc get serviceaccount <service_account_name>

    次の例では、service-a/app-x という OpenShift Container Platform サービスアカウントが、app-x という Google Cloud サービスアカウントに成り代わることができます。

    出力例

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: app-x
      namespace: service-a
      annotations:
        cloud.google.com/workload-identity-provider: "projects/<project_number>/locations/global/workloadIdentityPools/<identity_pool>/providers/<identity_provider>" 
    1
    
        cloud.google.com/service-account-email: "app-x@project.iam.googleapis.com"
        cloud.google.com/audience: "sts.googleapis.com" 
    2
    
        cloud.google.com/token-expiration: "86400" 
    3
    
        cloud.google.com/gcloud-run-as-user: "1000"
        cloud.google.com/injection-mode: "direct" 
    4
    1
    クラスターのサービスアカウントのワークロードアイデンティティープロバイダー。
    2
    ワークロードアイデンティティープロバイダーの許可されたオーディエンス。
    3
    トークンの有効期限 (秒単位)。
    4
    direct 外部認証情報設定注入モード。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る