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
ポリシーを保存する一時ファイル
/tmp/policy.yaml
を作成します。name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:file.googleapis.com
PROJECT_ID は、使用するプロジェクトのプロジェクト ID に置き換えます。
org-policies set-policy
コマンドを実行します。gcloud org-policies set-policy /tmp/policy.yaml
ポリシーが正常に適用されていることを確認するために、プロジェクトにインスタンスまたはバックアップを作成してみることができます。Cloud KMS 鍵を指定しない限り、プロセスは失敗します。
Filestore プロジェクトの Cloud KMS 鍵を制限する
Filestore プロジェクトでは、constraints/gcp.restrictCmekCryptoKeyProjects
制約を使用してリソースの保護に使用できる Cloud KMS 鍵を制限できます。
たとえば、「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
[完了]、[ポリシーを設定] の順にクリックします。
gcloud
ポリシーを保存する一時ファイル
/tmp/policy.yaml
を作成します。name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects spec: rules: - values: allowedValues: - under:projects/KMS_PROJECT_ID
ここで
- PROJECT_ID は、使用するプロジェクトのプロジェクト ID です。
- KMS_PROJECT_ID は、使用する Cloud KMS 鍵が配置されているプロジェクト ID です。
org-policies set-policy コマンドを実行します。
gcloud org-policies set-policy /tmp/policy.yaml
ポリシーが正常に適用されていることを確認するには、別のプロジェクトの 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 の組織ポリシーについて学習する。