CMEK の組織のポリシー

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

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

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

必要なロール

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

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

必要な権限

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

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

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

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

CMEK 保護を要求する

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

リスト型制約として許可される値は、 Cloud de Confiance by S3NSサービス名です(例: bigquery.googleapis.com)。この制約を使用するには、 Cloud de Confiance by S3NS サービス名のリストを指定し、制約を [拒否] に設定します。リソースが 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 が必要な場合の制約値
Cloud Storage storage.googleapis.com

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

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

リソースの種類 適用例外
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
  • ポリシータイプ: 拒否
  • ポリシーの値:(すべてのサポート対象サービス

制限事項

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

次のステップ

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

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