CMEK の組織のポリシー

Google Cloud には、組織全体で CMEK が使用されるように、2 つの組織のポリシーの制約が提供されています。

  • constraints/gcp.restrictNonCmekServices は、CMEK 保護を要求するために使用されます。
  • constraints/gcp.restrictCmekCryptoKeyProjects は、CMEK の保護に使用される Cloud KMS 鍵を制限するために使用されます。

CMEK の組織のポリシーは、 サポート対象の Google Cloud サービス内で新しく作成されたリソースにのみ適用されます。

必要なロール

リソースの作成時に各ユーザーが組織のポリシーを確認するために必要な権限を確実に持つようにするため、各ユーザーに組織のポリシー閲覧者 roles/orgpolicy.policyViewer)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、リソースの作成時に組織のポリシーを確認するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

リソースの作成時に組織のポリシーを確認するには、次の権限が必要です。

  • 組織のポリシーの詳細を表示する: orgpolicy.policy.get
  • リソースの作成時に組織のポリシーを確認するには: orgpolicy.policies.check

管理者は、各ユーザーに これらの権限を カスタムロールまたは 他の事前定義ロールで付与することもできます。

組織のポリシーが有効な場合、orgpolicy.policies.check 権限 は、CMEK 鍵で保護されたリソースを作成する Google Cloud コンソール ユーザーに必要です。この権限のないユーザーは、CMEK で保護された リソースを Google Cloud コンソールを使用して作成できますが、こうしたユーザーは restrictCmekCryptoKeyProjects制約で許可されていない CMEK 鍵を選択できます。この制約を満たさない鍵が選択されると、リソースの作成は最終的に失敗します。

CMEK 保護を要求する

組織の CMEK 保護を要求するには、constraints/gcp.restrictNonCmekServices 組織のポリシーを構成します。

リスト型制約として許可される値は、 Google Cloud サービス名です(例: bigquery.googleapis.com)。この制約を使用するには、 サービス名のリストを指定し、 Google Cloud 制約を [**拒否**]に設定します。リソースが CMEK によって保護されていない場合、この構成によりこれらのサービスでのリソースの作成がブロックされます。つまり、 サービス内でリソースを作成するリクエストは Cloud KMS 鍵を指定しないと成功しません。また、この制約により、これらのサービスのリソースから CMEK 保護を削除できなくなります。この制約 は、サポート対象サービスにのみ適用されます。

CMEK の Cloud KMS 鍵の使用を制限する

CMEK の保護に使用される Cloud KMS 鍵がどれかを制限するには、constraints/gcp.restrictCmekCryptoKeyProjects 制約を構成します。

リスト型制約として許容される値は、リソース階層インジケーター( たとえば、projects/PROJECT_IDunder:folders/FOLDER_IDunder:organizations/ORGANIZATION_ID など)です。この制約を使用するには、 リソース階層インジケーターのリストを構成し、制約を [許可]に設定します。この構成では、CMEK 鍵が、リストされたプロジェクト、フォルダ、組織からのみ選択できるように、サポート対象サービスが制限されます。 構成されたサービスで CMEK で保護されたリソースを作成するリクエストは、許可されたリソースのいずれかからの Cloud KMS 鍵がないと成功しません。この制約が構成されている場合、 すべてのサポート対象サービスに適用されます。

サポート対象のサービス

サービス CMEK を要求する場合の制約値
Agent Assist dialogflow.googleapis.com
AlloyDB for PostgreSQL alloydb.googleapis.com
Apigee apigee.googleapis.com
アプリケーションの統合 integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
Backup and DR サービス backupdr.googleapis.com
Backup for GKE gkebackup.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud Run 関数 cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Tasks cloudtasks.googleapis.com
Cloud TPU tpu.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
カスタマー エクスペリエンスのインサイト contactcenterinsights.googleapis.com
Dataflow dataflow.googleapis.com
Dataform dataform.googleapis.com
Dataplex Universal Catalog dataplex.googleapis.com
Dataproc dataproc.googleapis.com
Dialogflow CX dialogflow.googleapis.com
Document AI documentai.googleapis.com
Eventarc Advancedプレビューeventarc.googleapis.com
Eventarc Standard eventarc.googleapis.com
Filestore file.googleapis.com
Firestore firestore.googleapis.com
Gemini Enterprise Enterprise discoveryengine.googleapis.com
Google Cloud NetApp Volumes netapp.googleapis.com
Google Kubernetes Engineプレビューcontainer.googleapis.com
Looker(Google Cloud コア) looker.googleapis.com
Memorystore for Redis redis.googleapis.com
Memorystore for Redis Cluster redis.googleapis.com
Memorystore for Valkey memorystore.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Security Command Center securitycenter.googleapis.com
Spanner spanner.googleapis.com
Speech-to-Text speech.googleapis.com
Vertex AI aiplatform.googleapis.com
Vertex AI Search discoveryengine.googleapis.com
Vertex AI Workbench インスタンス notebooks.googleapis.com

CMEK の組織のポリシーと Storage Transfer Service

Storage Transfer Service には CMEK 統合はありませんが、CMEK の組織のポリシーで使用できます。Storage Transfer Service を使用して、Secret Manager に保存されているデータベース認証情報を CMEK で保護する場合は、storagetransfer.googleapis.comsecretmanager.googleapis.com の両方を constraints/gcp.restrictNonCmekServices 制約に追加する必要があります。詳細については、Storage Transfer Service の CMEK のドキュメントをご覧ください。

リソースタイプ別の適用例外

CMEK の組織のポリシーの制約は、新しいリソースを作成するとき、または既存のリソースの Cloud KMS 鍵を変更するとき(サポートされている場合)に適用されます。通常、これらの制約は、CMEK をサポートし、リソースの構成のみに基づいた、すべてのサービス リソースタイプに適用されます。主な例外を以下にまとめます。

リソースの種類 適用例外
bigquery.googleapis.com/Dataset データセットのデフォルトの Cloud KMS 鍵に部分的に適用(gcp.restrictCmekCryptoKeyProjects のみ)
bigquery.googleapis.com/Job クエリジョブのみ: クエリで指定された Cloud KMS 鍵または課金プロジェクトのデフォルトに適用されます。個別のプロジェクトのデフォルト Cloud KMS 鍵の構成もご覧ください
bigquerydatatransfer.googleapis.com/TransferConfig 転送構成では、CMEK の組織のポリシーの制約に Data Transfer Service のサービス名(bigquerydatatransfer.googleapis.com)を使用します。
container.googleapis.com/Cluster プレビュー)ノード ブートディスクのみの Cloud KMS 鍵に適用されます。アプリケーション レイヤでは Secret に適用されません
logging.googleapis.com/LogBucket 明示的に作成されたログバケットに適用されます。組み込みログバケットのコンプライアンスを確保するために必要な構成もご覧ください
storage.googleapis.com/Bucket バケットのデフォルトの Cloud KMS 鍵に適用されます
storage.googleapis.com/Object バケットとは独立して適用されます。個別のバケットのデフォルト Cloud KMS 鍵の構成もご覧ください。

設定例

この構成例では、サンプル組織について次のリソース階層があると想定しています。

組織リソース階層の図

CMEK を要求し、プロジェクトの鍵を制限する

projects/5 のすべての Cloud Storage リソースに対して CMEK による保護を要求し、projects/4 から取得した鍵のみを使用できるようにします。

すべての新しい Cloud Storage リソースで CMEK の保護を要求するには、次の組織のポリシー設定を使用します。

  • 組織のポリシー: constraints/gcp.restrictNonCmekServices
  • バインディングの場所: projects/5
  • ポリシータイプ: 拒否
  • ポリシーの値: storage.googleapis.com

projects/4 の鍵のみが使用されるようにするには、次の構成を使用します。

  • 組織のポリシー: constraints/gcp.restrictCmekCryptoKeyProjects
  • バインディングの場所: projects/5
  • ポリシータイプ: 許可
  • ポリシーの値: projects/4

CMEK を要求し、フォルダ内の鍵を制限する

または、今後 folders/2 に Cloud KMS プロジェクトを追加する予定があり、folders/3 内で CMEK をより広範に要求するとします。このシナリオでは、構成が少し異なります。

folders/3 で新しい Cloud SQL リソースと Cloud Storage リソースに対して追加の CMEK 保護を要求するには:

  • 組織のポリシー: constraints/gcp.restrictNonCmekServices
  • バインディングの場所: folders/3
  • ポリシータイプ: 拒否
  • ポリシーの値: sqladmin.googleapis.comstorage.googleapis.com

folders/2 の Cloud KMS プロジェクトの鍵のみが使用されるようにするには:

  • 組織のポリシー: constraints/gcp.restrictCmekCryptoKeyProjects
  • バインディングの場所: folders/3
  • ポリシータイプ: 許可
  • ポリシーの値: under:folders/2

組織の CMEK を要求する

CMEK を組織内の任意の場所(サポート対象サービス)で要求するには、次の設定で constraints/gcp.restrictNonCmekServices 制約を構成します。

  • 組織のポリシー: constraints/gcp.restrictNonCmekServices
  • バインディングの場所: organizations/1
  • ポリシータイプ: 拒否
  • ポリシーの値:(すべてのサポート対象サービス

制限事項

コンソールを使用してリソースを作成する場合、プロジェクトとサービスに constraints/gcp.restrictNonCmekServices が構成されていると、CMEK 以外の暗号化オプションを使用できないことがあります。 Google Cloud CMEK の組織のポリシーの制限は、プロジェクトに対する orgpolicy.policy.get IAM 権限が顧客アカウントに付与されている場合にのみ表示されます。

次のステップ

組織のポリシーの利点と一般的なユースケースの詳細について、組織のポリシー サービスの概要を確認する。

特定の制約を含む組織のポリシーを作成するその他の例については、制約の使用 をご覧ください。