Google Cloud には、組織全体で CMEK の使用を適用するための 2 つの組織のポリシーの制約があります。
constraints/gcp.restrictNonCmekServices
は、CMEK 保護を要求するために使用されます。constraints/gcp.restrictCmekCryptoKeyProjects
は、保護に使用される CMEK 鍵を制限するために使用されます。
CMEK の組織のポリシーは、サポートされている Google Cloud サービス内で新しく作成されたリソースにのみ適用されます。
仕組みの詳細については、Google Cloud リソース階層と CMEK の組織のポリシーをご覧ください。
組織のポリシーで CMEK の使用を制御する
NetApp Volumes が CMEK の組織ポリシー制約と統合することで、組織内の NetApp Volumes リソースの暗号化コンプライアンス要件を指定できるようになります。
このインテグレーションにより、次のことが可能になります。
すべての NetApp Volumes リソースで CMEK を必須にする
一般的なポリシーでは、組織内のすべてのリソースを保護するために CMEK を使用する必要があります。NetApp Volumes では、constraints/gcp.restrictNonCmekServices
制約を使用してこのポリシーを適用できます。
この組織のポリシーを設定すると、指定された Cloud KMS 鍵を持たないすべてのリソース作成リクエストは失敗します。
このポリシーを設定すると、それはプロジェクト内の新しいリソースにのみ適用されます。Cloud KMS 鍵が設定されていない既存のリソースは引き続き存在し、問題なくアクセスできます。
Google Cloud コンソールまたは Google Cloud CLI を使用して NetApp Volumes リソースに CMEK の使用を適用するには、次の操作を行います。
コンソール
[組織のポリシー] ページを開きます。
[フィルタ] フィールドに「
constraints/gcp.restrictNonCmekServices
」と入力し、[CMEK を使用せずにリソースを作成できるサービスを制限する] をクリックします。[
ポリシーを管理] をクリックします。[ポリシーの編集] ページで、[親のポリシーをオーバーライドする] を選択します。
[ルールを追加] を選択します。
[ポリシーの値] で [カスタム] を選択します。
[ポリシーの種類] で [拒否] を選択します。
[カスタム値] フィールドに「
is:netapp.googleapis.com
」と入力します。[完了]、[ポリシーを設定] の順にクリックします。
gcloud
ポリシーを保存する一時ファイル
/tmp/policy.yaml
を作成します。name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:netapp.googleapis.com
PROJECT_ID は、使用するプロジェクトのプロジェクト ID に置き換えます。
org-policies set-policy
コマンドを実行します。gcloud org-policies set-policy /tmp/policy.yaml
ポリシーが正常に適用されていることを確認するために、プロジェクトにストレージ プールを作成してみることができます。Cloud KMS 鍵を指定しない限り、プロセスは失敗します。
NetApp Volumes プロジェクトの Cloud KMS 鍵を制限する
NetApp Volumes プロジェクトでは、constraints/gcp.restrictCmekCryptoKeyProjects
制約を使用して、リソースの保護に使用できる Cloud KMS 鍵を制限できます。
たとえば、「projects/my-company-data-project のすべての NetApp Volumes リソースに対して、このプロジェクトで使用される Cloud KMS 鍵は projects/my-company-central-keys または projects/team-specific-keys からのものでなければならない」というルールを指定できます。
Google Cloud コンソールまたは Google Cloud CLI を使用して、NetApp Volumes プロジェクトに Cloud KMS 鍵を適用するには、次の操作を行います。
コンソール
[組織のポリシー] ページを開きます。
[フィルタ] フィールドに「
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 鍵を使用してストレージ プールを作成してみることができます。このプロセスは失敗します。
制限事項
組織のポリシーを設定する場合は、次の制限事項が適用されます。
既存のリソース
既存のリソースは、新しく作成された組織のポリシーの対象になりません。たとえば、create
オペレーションごとに CMEK を指定することを義務付ける組織のポリシーを作成した場合、ポリシーは既存のインスタンスとバックアップ チェーンに遡って適用されることはありません。これらのリソースには、CMEK なしで引き続きアクセスできます。ポリシーをストレージ プールなどの既存のリソースに適用する場合は、それらを置き換える必要があります。
組織のポリシーを設定するために必要な権限
テスト目的で組織のポリシーを設定または更新するには、組織レベルで付与された組織ポリシー管理者のロールが必要です。
特定のプロジェクトやフォルダにのみ適用されるポリシーを指定することもできます。
Cloud KMS 鍵のローテーションによる影響
リソースに関連付けられている Cloud KMS 鍵がローテーションされても、NetApp Volumes がリソースの暗号鍵を自動的にローテーションすることはありません。
既存のストレージ プール内のすべてのデータは、作成時に使用された鍵バージョンによって引き続き保護されます。
新しく作成されたストレージ プールは、作成時に指定されたメインの鍵バージョンを使用します。
鍵をローテーションする場合、以前の鍵バージョンで暗号化されたデータは自動的に再暗号化されることはありません。最新の鍵バージョンでデータを暗号化するには、リソースから古い鍵バージョンを復号してから、新しい鍵バージョンで同じリソースを再暗号化する必要があります。また、鍵をローテーションしても、既存の鍵バージョンが自動的に無効になったり破棄されたりすることはありません。
これらの各タスクの詳しい手順については、以下のガイドをご覧ください。
Cloud KMS 鍵に対する NetApp Volumes のアクセス権
Cloud KMS 鍵は、次の場合に NetApp Volumes で使用でき、アクセス可能とみなされます。
- その鍵が有効になっている
- NetApp Volumes サービス アカウントに、キーの暗号化と復号の権限がある
次のステップ
- CMEK について学習する。
- 組織のポリシーについて学習する。
- CMEK の組織ポリシーについて学習する。