Google Cloud には、組織全体で CMEK が使用されるように、2 つの組織のポリシーの制約が提供されています。
constraints/gcp.restrictNonCmekServices
は、CMEK 保護を要求するために使用されます。constraints/gcp.restrictCmekCryptoKeyProjects
は、CMEK 保護に使用される Filestore 鍵を制限するために使用されます。
CMEK の組織ポリシーは、サポートされる Google Cloud サービス内で新しく作成されたリソースにのみ適用されます。
仕組みの詳細については、Google Cloud リソース階層と CMEK の組織ポリシーをご覧ください。
組織ポリシーで CMEK の使用を管理する
Filestore が CMEK の組織ポリシー制約と統合することで、組織内の Filestore リソースの暗号化コンプライアンス要件を指定できるようになります。
このインテグレーションにより、次のことが可能になります。
以降のセクションでは、この両方のタスクについて説明します。
すべての Filestore リソースで CMEK を必須にする
一般的なポリシーでは、組織内のすべてのリソースを保護するために CMEK を使用する必要があります。Filestore では、constraints/gcp.restrictNonCmekServices
制約を使用してこのポリシーを適用できます。
この組織のポリシーを設定すると、指定された Cloud KMS 鍵を持たないすべてのリソース作成リクエストは失敗します。
このポリシーを設定すると、それはプロジェクト内の新しいリソースにのみ適用されます。Cloud KMS 鍵が設定されていない既存のリソースは引き続き存在し、問題なくアクセスできます。
コンソール
[組織のポリシー] ページを開きます。
[フィルタ] フィールドに「
constraints/gcp.restrictNonCmekServices
」と入力し、[CMEK を使用せずにリソースを作成できるサービスを制限する] をクリックします。[
ポリシーを管理] をクリックします。[カスタマイズ] を選択して [置換] を選択し、[ルールを追加] をクリックします。
[カスタム] を選択した後、[拒否] をクリックします。
[カスタム値] フィールドに「
is:file.googleapis.com
」と入力します。[完了]、[ポリシーを設定] の順にクリックします。
gcloud
gcloud resource-manager org-policies --project=PROJECT_ID \ deny gcp.restrictNonCmekServices is:file.googleapis.com
ポリシーが正常に適用されていることを確認するために、プロジェクトにインスタンスまたはバックアップを作成してみることができます。Cloud KMS 鍵を指定しない限り、プロセスは失敗します。
Filestore プロジェクトの Cloud KMS 鍵を制限する
Filestore プロジェクト内でリソースの保護に使用できる Cloud KMS 鍵は、constraints/gcp.restrictCmekCryptoKeyProjects
制約を使用して制限できます。
たとえば、「projects/my-company-data-project のすべての Filestore リソースに対して、このプロジェクトで使用される Cloud KMS 鍵は projects/my-company-central-keys または projects/team-specific-keys からのものでなければならない」というルールを指定できます。
コンソール
[組織のポリシー] ページを開きます。
[フィルタ] フィールドに「
constraints/gcp.restrictCmekCryptoKeyProjects
」と入力し、[CMEK 用の KMS CryptoKey を提供するプロジェクトを制限する] をクリックします。[
ポリシーを管理] をクリックします。[カスタマイズ] を選択して [置換] を選択し、[ルールを追加] をクリックします。
[カスタム] を選択し、[許可] をクリックします。
[カスタム値] フィールドに次のように入力します。
under:projects/KMS_PROJECT_ID
次のように置き換えます。
- KMS_PROJECT_ID は、使用する Cloud KMS 鍵が配置されているプロジェクト ID に置き換えます。例:
under:projects/my-kms-project
- KMS_PROJECT_ID は、使用する Cloud KMS 鍵が配置されているプロジェクト ID に置き換えます。例:
[完了]、[ポリシーを設定] の順にクリックします。
gcloud
gcloud resource-manager org-policies --project=PROJECT_ID \ allow gcp.restrictCmekCryptoKeyProjects under:projects/KMS_PROJECT_ID
次のように置き換えます。
- KMS_PROJECT_ID は、使用する Cloud KMS 鍵が配置されているプロジェクト ID に置き換えます。例:
under:projects/my-kms-project
ポリシーが正常に適用されていることを確認するには、別のプロジェクトの Cloud KMS 鍵を使用してインスタンスまたはバックアップを作成してみることができます。このプロセスは失敗します。
制限事項
組織のポリシーを設定する場合は、次の制限事項が適用されます。
CMEK の可用性
なお、CMEK サポートは、ベーシック HDD とベーシック SSD のサービス階層では使用できません。これらの制約の定義方法では、CMEK の使用が必要な組織のポリシーを適用してから、関連付けられたプロジェクトで基本階層のインスタンスまたはバックアップを作成しようとすると、作成オペレーションは失敗します。
既存のリソース
既存のリソースは、新しく作成された組織のポリシーの対象になりません。たとえば、create
オペレーションごとに CMEK を指定する必要がある組織のポリシーを作成した場合、そのポリシーは既存のインスタンスとバックアップ チェーンに遡って適用されることはありません。これらのリソースは、CMEK なしでもアクセスできます。インスタンス、バックアップ チェーンのいずれでも、既存のリソースにポリシーを適用する場合は、それらのリソースを置き換える必要があります。
組織のポリシーを設定するために必要な権限
組織のポリシーを、テスト目的で設定または更新する権限の取得は難しい場合があります。組織ポリシー管理者ロールが付与されている必要があります。このロールは、組織レベルでのみ付与できます。
そのロールは組織レベルで付与する必要がありますが、特定のプロジェクトやフォルダにのみ適用されるポリシーを指定することもできます。
Cloud KMS 鍵のローテーションによる影響
Filestore では、そのリソースに関連付けられている Cloud KMS 鍵のローテーションが行われても、そのリソースの暗号鍵のローテーションは自動的に行われません。
既存のインスタンスとバックアップ内のすべてのデータは、作成時に使用された鍵バージョンで引き続き保護されます。
新しく作成されたインスタンスまたはバックアップは、作成時に指定されたメインの鍵バージョンを使用します。
鍵をローテーションする場合、以前の鍵バージョンで暗号化されたデータは自動的に再暗号化されません。最新の鍵バージョンでデータを暗号化するには、リソースから古い鍵バージョンを復号し、新しい鍵バージョンで同じリソースを再暗号化する必要があります。また、鍵をローテーションしても、既存の鍵バージョンが自動的に無効化または破棄されることはありません。
これらの各作業を行う方法について詳しくは、次のガイドをご覧ください。
Cloud KMS 鍵への Filestore のアクセス
Cloud KMS 鍵は、次の場合に Filestore で使用でき、アクセス可能とみなされます。
- その鍵が有効になっている
- Filestore サービス アカウントに、その鍵に対する暗号化および復号の権限がある。
次のステップ
- Filestore インスタンスまたはバックアップを暗号化する方法を確認する。
- CMEK について学習する。
- Google Cloud での転送データの暗号化の詳細を見る。
- 組織のポリシーについて学習する。
- CMEK の組織ポリシーについて学習する。