2.5. GCP でのサービスアカウントの作成


OpenShift Container Platform には、Google API でデータにアクセスするための認証および承認を提供する Google Cloud Platform (GCP) サービスアカウントが必要です。プロジェクトに必要なロールが含まれる既存の IAM サービスアカウントがない場合は、これを作成する必要があります。

前提条件

  • クラスターをホストするプロジェクトを作成しています。

手順

  1. OpenShift Container Platform クラスターをホストするために使用するプロジェクトでサービスアカウントを作成します。GCP ドキュメントで サービスアカウントの作成 を参照してください。
  2. サービスアカウントに適切なパーミッションを付与します。付随する個別のパーミッションを付与したり、オーナー ロールをこれに割り当てることができます。特定のリソースのサービスアカウントへのロールの付与 を参照してください。

    注記

    サービスアカウントをプロジェクトの所有者にすることは、必要な権限を得る最も簡単な方法ですが、その場合、サービスアカウントはプロジェクトに対して完全な管理権限を持つことになります。この権限を提供することに伴うリスクが受け入れ可能であるかどうかを判別する必要があります。

  3. サービスアカウントキーを JSON 形式で作成するか、サービスアカウントを GCP 仮想マシンにアタッチできます。GCP ドキュメントの サービスアカウントキー作成とインスタンスのサービスアカウントの作成と有効 化をご覧ください。

    クラスターを作成するには、サービスアカウントキーまたはサービスアカウントがアタッチされた仮想マシンが必要です。

    注記

    サービスアカウントがアタッチされた仮想マシンを使用してクラスターを作成する場合は、インストール前に install-config.yaml ファイルで credentialsMode: Manual を設定する必要があります。

関連情報

  • 手動認証情報モードの使用の詳細については、IAM の手動作成 を参照してください。

2.5.1. 必要な GCP のロール

作成するサービスアカウントに オーナー ロールを割り当てると、OpenShift Container Platform のインストールに必要なパーミッションも含め、そのサービスアカウントにすべてのパーミッションが付与されます。組織のセキュリティーポリシーでより制限的なアクセス許可のセットが必要な場合は、次のアクセス許可を持つサービスアカウントを作成できます。

重要

Cloud Credential Operator を passthrough モードで動作するように設定する場合、粒度の細かいパーミッションではなくロールを使用する必要があります。

クラスターを既存の VPC (virtual private cloud) にデプロイする場合、サービスアカウントでは一部のネットワークのパーミッションを必要としません。これについては、以下の一覧に記載されています。

インストールプログラムに必要なロール

  • Compute 管理者
  • IAM セキュリティー管理者
  • サービスアカウント管理者
  • Service Account Key Admin
  • Service Account User
  • Storage Admin

インストール時のネットワークリソースの作成に必要なロール

  • DNS 管理者

パススルー認証情報モードの使用に必要なロール

  • ロードバランサー計算の管理者
  • IAM ロールビューアー

ロールは、コントロールプレーンおよびコンピュートマシンが使用するサービスアカウントに適用されます。

表2.4 GCP サービスアカウントのパーミッション
アカウントロール

コントロールプレーン

roles/compute.instanceAdmin

roles/compute.networkAdmin

roles/compute.securityAdmin

roles/storage.admin

roles/iam.serviceAccountUser

Compute

roles/compute.viewer

roles/storage.admin

2.5.2. installer-provisioned infrastructure に必要な GCP 権限

作成するサービスアカウントに オーナー ロールを割り当てると、OpenShift Container Platform のインストールに必要なパーミッションも含め、そのサービスアカウントにすべてのパーミッションが付与されます。

組織のセキュリティーポリシーで、より制限的なアクセス許可のセットが必要な場合は、必要なアクセス許可を持つ カスタムロール を作成できます。OpenShift Container Platform クラスターを作成および削除するために、installer-provisioned infrastructure には、以下のパーミッションが必要です。

重要

Cloud Credential Operator を passthrough モードで動作するように設定する場合、粒度の細かいパーミッションではなくロールを使用する必要があります。詳細は、「必須の GCP ロール」セクションの「パススルー認証情報モードを使用するための必要なロール」を参照してください。

例2.1 ネットワークリソースの作成に必要な権限

  • compute.addresses.create
  • compute.addresses.createInternal
  • compute.addresses.delete
  • compute.addresses.get
  • compute.addresses.list
  • compute.addresses.use
  • compute.addresses.useInternal
  • compute.firewalls.create
  • compute.firewalls.delete
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.create
  • compute.forwardingRules.get
  • compute.forwardingRules.list
  • compute.forwardingRules.setLabels
  • compute.networks.create
  • compute.networks.get
  • compute.networks.list
  • compute.networks.updatePolicy
  • compute.routers.create
  • compute.routers.get
  • compute.routers.list
  • compute.routers.update
  • compute.routes.list
  • compute.subnetworks.create
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp

例2.2 ロードバランサーリソースの作成に必要な権限

  • compute.regionBackendServices.create
  • compute.regionBackendServices.get
  • compute.regionBackendServices.list
  • compute.regionBackendServices.update
  • compute.regionBackendServices.use
  • compute.targetPools.addInstance
  • compute.targetPools.create
  • compute.targetPools.get
  • compute.targetPools.list
  • compute.targetPools.removeInstance
  • compute.targetPools.use

例2.3 DNS リソースの作成に必要な権限

  • dns.changes.create
  • dns.changes.get
  • dns.managedZones.create
  • dns.managedZones.get
  • dns.managedZones.list
  • dns.networks.bindPrivateDNSZone
  • dns.resourceRecordSets.create
  • dns.resourceRecordSets.list

例2.4 サービスアカウントリソースの作成に必要な権限

  • iam.serviceAccountKeys.create
  • iam.serviceAccountKeys.delete
  • iam.serviceAccountKeys.get
  • iam.serviceAccountKeys.list
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.create
  • iam.serviceAccounts.delete
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

例2.5 コンピューティングリソースの作成に必要な権限

  • compute.disks.create
  • compute.disks.get
  • compute.disks.list
  • compute.instanceGroups.create
  • compute.instanceGroups.delete
  • compute.instanceGroups.get
  • compute.instanceGroups.list
  • compute.instanceGroups.update
  • compute.instanceGroups.use
  • compute.instances.create
  • compute.instances.delete
  • compute.instances.get
  • compute.instances.list
  • compute.instances.setLabels
  • compute.instances.setMetadata
  • compute.instances.setServiceAccount
  • compute.instances.setTags
  • compute.instances.use
  • compute.machineTypes.get
  • compute.machineTypes.list

例2.6 ストレージリソースの作成に必要

  • storage.buckets.create
  • storage.buckets.delete
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list

例2.7 ヘルスチェックリソースを作成するために必要な権限

  • compute.healthChecks.create
  • compute.healthChecks.get
  • compute.healthChecks.list
  • compute.healthChecks.useReadOnly
  • compute.httpHealthChecks.create
  • compute.httpHealthChecks.get
  • compute.httpHealthChecks.list
  • compute.httpHealthChecks.useReadOnly

例2.8 GCP ゾーンとリージョン関連の情報を取得するために必要な権限

  • compute.globalOperations.get
  • compute.regionOperations.get
  • compute.regions.list
  • compute.zoneOperations.get
  • compute.zones.get
  • compute.zones.list

例2.9 サービスとクォータを確認するために必要な権限

  • monitoring.timeSeries.list
  • serviceusage.quotas.get
  • serviceusage.services.list

例2.10 インストールに必要な IAM パーミッション

  • iam.roles.get

例2.11 インストールのためのオプションのイメージ権限

  • compute.images.list

例2.12 収集ブートストラップを実行するためのオプションの権限

  • compute.instances.getSerialPortOutput

例2.13 ネットワークリソースを削除するために必要な権限

  • compute.addresses.delete
  • compute.addresses.deleteInternal
  • compute.addresses.list
  • compute.firewalls.delete
  • compute.firewalls.list
  • compute.forwardingRules.delete
  • compute.forwardingRules.list
  • compute.networks.delete
  • compute.networks.list
  • compute.networks.updatePolicy
  • compute.routers.delete
  • compute.routers.list
  • compute.routes.list
  • compute.subnetworks.delete
  • compute.subnetworks.list

例2.14 ロードバランサーリソースを削除するために必要な権限

  • compute.regionBackendServices.delete
  • compute.regionBackendServices.list
  • compute.targetPools.delete
  • compute.targetPools.list

例2.15 DNS リソースを削除するために必要な権限

  • dns.changes.create
  • dns.managedZones.delete
  • dns.managedZones.get
  • dns.managedZones.list
  • dns.resourceRecordSets.delete
  • dns.resourceRecordSets.list

例2.16 サービスアカウントリソースを削除するために必要な権限

  • iam.serviceAccounts.delete
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

例2.17 コンピューティングリソースを削除するために必要な権限

  • compute.disks.delete
  • compute.disks.list
  • compute.instanceGroups.delete
  • compute.instanceGroups.list
  • compute.instances.delete
  • compute.instances.list
  • compute.instances.stop
  • compute.machineTypes.list

例2.18 ストレージリソースの削除に必要

  • storage.buckets.delete
  • storage.buckets.getIamPolicy
  • storage.buckets.list
  • storage.objects.delete
  • storage.objects.list

例2.19 ヘルスチェックリソースを削除するために必要な権限

  • compute.healthChecks.delete
  • compute.healthChecks.list
  • compute.httpHealthChecks.delete
  • compute.httpHealthChecks.list

例2.20 削除に必要なイメージ権限

  • compute.images.list

2.5.3. 共有 VPC インストールに必要な GCP パーミッション

クラスターを 共有 VPC にインストールする場合は、ホストプロジェクトとサービスプロジェクトの両方のサービスアカウントを設定する必要があります。共有 VPC にインストールしない場合は、このセクションをスキップできます。

上記の標準インストールに必要な最小限のロールをサービスプロジェクトに適用する必要があります。

重要

手動または mint 認証情報モードで動作する Cloud Credential Operator に対して、詳細な権限を使用できます。パススルー認証情報モードでは、詳細な権限は使用できません。

ホストプロジェクトが、サービスアカウントに次のいずれかの設定を適用していることを確認します。

例2.21 ホストプロジェクトでファイアウォールを作成するために必要な権限

  • projects/<host-project>/roles/dns.networks.bindPrivateDNSZone
  • roles/compute.networkAdmin
  • roles/compute.securityAdmin

例2.22 必要な最小限の権限

  • projects/<host-project>/roles/dns.networks.bindPrivateDNSZone
  • roles/compute.networkUser
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

© 2024 Red Hat, Inc.