Apigee で組織のポリシー制約を使用する

このページでは、Apigee で 組織のポリシー制約を使用する方法について説明します。

Apigee のすべての機能が、機密データの暗号化に CMEK を使用するわけではありません。CMEK による暗号化が必要なデータで、CMEK で保護されていない機能を無意識に使用しないようにするため、CMEK 制約付きのプロジェクトでは、コンプライアンスを確保するまで、これらの機能が無効になります。無効になるのは、機能の新しい使用方法(新しいリソースの作成やアドオンの有効化)のみです。すでに使用されている機能とリソースは引き続き使用および編集できますが、保護されません。

評価組織の作成は、 gcloud alpha apigee organizations API と 評価プロビジョニング ウィザードの両方によってブロックされます。評価用プロビジョニング ウィザードを表示しようとすると、「Apigee の評価はご利用いただけません」というメッセージが表示されます。

CMEK 制約付きのプロジェクトで無効になっている機能の詳細については、 組織のポリシーの制約をご覧ください。

利用規約

このトピックで使用される用語は次のとおりです。

用語 定義
CMEK 顧客管理の暗号鍵。詳細については、顧客管理の暗号鍵をご覧ください。
組織のポリシーの制約 制約は、Google Cloud サービスまたは Google Cloud サービスのリストに対する特殊な制限です。CMEK に関して、 次の 2 つの制約があります。
  • constraints/gcp.restrictNonCmekServices
  • constraints/gcp.restrictCmekCryptoKeyProjects
適用 Apigee のバックエンド システムがプロジェクトの制約(この場合は CMEK 制約)に準拠することを保証する
事前検証 CMEK 組織のポリシーに従って Apigee で有効な構成を選択する際にガイドする UI 動作。準拠していない機能を公開しない。
関連情報 組織 インスタンスなどの Apigee リソース

CMEK 以外のサービスを制限する方法

このセクションでは、CMEK 以外のサービスを制限する方法について説明します。

  1. 前提条件を満たしている。
  2. Google Cloud コンソールで プロジェクトを選択します。
  3. 新しい組織のポリシーの制約を作成します
  4. Apigee をプロビジョニングする

前提条件

次のことを行う必要があります。

プロジェクトを開く

  1. Google Cloud コンソールで、[ダッシュボード] ページに移動します。

    ダッシュボードに移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。

組織のポリシーの制約を作成する

組織のポリシーは、制約ごとに設定された値によって定義されます。これは、このリソースレベルで構成されるか、親リソースから継承されるか、Google 管理のデフォルトの動作に設定されるかのいずれかです。この場合、CEMK を必要とする制約を作成し、プロジェクトとプロジェクトから継承するすべてのリソースに適用します。

Apigee でデータを暗号化するときに顧客管理の暗号鍵が常に使用されるようにするには、次の組織のポリシー制約を作成します。

  1. Google Cloud コンソールで、[組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。
  3. [フィルタ] ボックスに次のように入力します。
    constraints/gcp.restrictNonCmekServices
  4. [その他]、[ポリシーを編集] の順にクリックします。[編集] が無効になっている場合は、必要な権限が付与されていないため、組織に対する 組織ポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼する必要があります。詳細については、前提条件をご覧ください。
  5. [ポリシーのソース] で、[親のポリシーをオーバーライドする] を選択します。このリソースには一意のポリシーが設定されます。次のステップでは、親ポリシー ルールの処理方法を指定します。
  6. [ポリシーの適用] で、次のいずれかを選択します。
    • [置き換え] を選択します。このオプションでは、親のポリシーは無視され、これらのルールが使用されます。
    • [親と結合する] を選択します。このオプションは、親リソースで設定されたルールにルールを追加します。

    組織のポリシーの継承の説明については、 階層評価についてをご覧ください。

  7. [ルールの追加] をクリックします。
  8. [ポリシーの値] で [カスタム] を選択します。
  9. [ポリシーの種類] で [拒否] を選択します。
  10. [カスタム値] に次のように入力します。
    apigee.googleapis.com
  11. [完了] をクリックします。
  12. [ポリシーを設定] をクリックします。[ポリシーの詳細] ページが表示されます。

ポリシーを構成し、ポリシーを継承または使用するプロジェクトを選択したら、Apigee をプロビジョニングする準備が整います。CMEK 組織のポリシーを構成する前に作成された Apigee リソースは、準拠が保証されません。ポリシーが適用された後に作成された新しいリソースのみが、CMEK の制約に準拠します。

関連項目:

Apigee をプロビジョニングする

組織のポリシーの制約がある場合に Apigee をプロビジョニングする手順は、組織のポリシーの制約がない場合に Apigee をプロビジョニングする手順と同じです。ただし、UI ではサポートされていない選択を行うことはできません。

このセクションでは、UI で選択を行う手順について説明します。

  1. Google Cloud コンソールで、[Apigee] ページに移動します。

    [Apigee] に移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。
  3. [Welcome to Apigee API management] ページで、CMEK を明示的に選択する必要があるため、[Setup using defaults] は無効になっています。[設定をカスタマイズ] をクリックします。
  4. API を有効にする: ステップ 1: 必要な API を有効にするの説明に従って、必要な API を有効にします。
  5. ネットワーキングを設定する: ステップ 2: ネットワーキングを設定するの説明に従ってネットワーキングを設定します。
  6. ホスティングと暗号化を構成する:

    ユーザー ジャーニー D: データ所在地がある顧客管理の暗号化は、CMEK 以外のサービスを制限する組織のポリシー制約に関連する唯一のユーザー ジャーニーです。

    1. [編集] をクリックして、[ホスティングと暗号鍵] パネルを開きます。
    2. [Encryption type] セクションで、[Google-managed encryption key] は無効になっており、[Customer-managed encryption key] が有効になっています。この設定を無効にすることはできません。
    3. [次へ] をクリックします。
    4. [コントロール プレーン] セクションで、[データ所在地を有効にする] が有効になっています。この設定を無効にすることはできません。
    5. ユーザー ジャーニー D: データ所在地がある顧客管理の暗号化のステップ 3.b で説明されているように、ホスティングと暗号化の構成を続行します。
  7. アクセス ルーティングをカスタマイズする: ステップ 4: アクセス ルーティングをカスタマイズするで説明されているように、アクセス ルーティングをカスタマイズします。

CMEK 暗号鍵プロジェクトを制限する方法

このセクションでは、CMEK 暗号鍵プロジェクトを制限する方法について説明します。

暗号鍵を提供できるプロジェクトを制限するには、別の組織のポリシーの制約 constraints/gcp.restrictCmekCryptoKeyProjects を使用します。この制約を使用すると、暗号鍵を使用できるプロジェクトを許可リストに登録できます。

CMEK を選択できる場所(現在は Apigee のプロビジョニング中または Apigee インスタンスの作成中)では、この制約が適用されます。

Google Cloud コンソールで選択した現在のプロジェクトが restrictCmekCryptoKeyProjects 制約の許可リストにない場合、暗号鍵選択ボックスから鍵を選択することはできません。代わりに、許可リストに登録されているプロジェクトの鍵を使用する必要があります。

前提条件

次のことを行う必要があります。

  • 組織ポリシー管理者のロールがあること。組織のポリシーを管理するために必要な権限を取得するには、組織に対する 組織のポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
  • プロビジョニングの概要に記載されている前提条件を満たしている。
  • 有料組織(サブスクリプションまたは従量課金制)を使用する
  • データ所在地を使用する
  • Google Cloud コンソール(サブスクリプションまたは従量課金制)を使用してプロビジョニングします。
  • 使用する鍵が含まれているプロジェクトを確認します。

プロジェクトを開く

  1. Google Cloud コンソールで、[ダッシュボード] ページに移動します。

    ダッシュボードに移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。

組織のポリシーの制約を作成する

組織のポリシーは、制約ごとに設定された値によって定義されます。これは、このリソースレベルで構成されるか、親リソースから継承されるか、Google 管理のデフォルトの動作に設定されるかのいずれかです。この場合、許可リストに登録されたプロジェクトからの鍵のみを許可する制約を作成します。この制約は、プロジェクトと、プロジェクトから継承するすべてのリソースに適用されます。

顧客管理の暗号鍵が特定のプロジェクトからのみ使用されるようにするには、それらの鍵を許可リストに追加します。

  1. Google Cloud コンソールで、[組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。
  3. [フィルタ] ボックスに次のように入力します。
    restrictCmekCryptoKeyProjects
  4. [その他]、[ポリシーを編集] の順にクリックします。[編集] が無効になっている場合は、必要な権限が付与されていないため、組織に対する 組織ポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼する必要があります。詳細については、前提条件をご覧ください。
  5. [ポリシーのソース] で、[親のポリシーをオーバーライドする] を選択します。このリソースには一意のポリシーが設定されます。次のステップでは、親ポリシー ルールの処理方法を指定します。
  6. [ポリシーの適用] で、次のいずれかを選択します。
    • [置き換え] を選択します。このオプションでは、親のポリシーは無視され、これらのルールが使用されます。
    • [親と結合する] を選択します。このオプションは、親リソースで設定されたルールにルールを追加します。

    組織のポリシーの継承の説明については、 階層評価についてをご覧ください。

  7. [ルールの追加] をクリックします。
  8. [ポリシーの値] で [カスタム] を選択します。
  9. [ポリシーの種類] で [許可] を選択します。
  10. [カスタム値] に次のように入力します。
    projects/PROJECT_ID

    PROJECT_ID は、使用する Cloud KMS 鍵が配置されているプロジェクト ID に置き換えます。例: my-kms-project

  11. [完了] をクリックします。
  12. [ポリシーを設定] をクリックします。[ポリシーの詳細] ページが表示されます。

ポリシーを構成し、ポリシーを継承または使用するプロジェクトを選択したら、Apigee をプロビジョニングする準備が整います。CMEK 組織のポリシーを構成する前に作成された Apigee リソースは、準拠が保証されません。ポリシーが適用された後に作成された新しいリソースのみが、CMEK の制約に準拠します。

関連項目:

Apigee をプロビジョニングする

組織のポリシーの制約がある場合に Apigee をプロビジョニングする手順は、組織のポリシーの制約がない場合に Apigee をプロビジョニングする手順と同じです。ただし、UI ではサポートされていない選択を行うことはできません。

このセクションでは、UI で選択を行う手順について説明します。

  1. Google Cloud コンソールで、[Apigee] ページに移動します。

    [Apigee] に移動

  2. Google Cloud コンソールのプルダウン リストで、プロジェクトがまだ選択されていない場合はプロジェクトを選択します。
  3. [Welcome to Apigee API management] ページで、[Customize your setup] をクリックします。
  4. API を有効にする: ステップ 1: 必要な API を有効にするの説明に従って、必要な API を有効にします。
  5. ネットワーキングを設定する: ステップ 2: ネットワーキングを設定するの説明に従ってネットワーキングを設定します。
  6. ホスティングと暗号化を構成する:

    ユーザー ジャーニー D: データ所在地がある顧客管理の暗号化は、CMEK 以外のサービスを制限する組織のポリシー制約に関連する唯一のユーザー ジャーニーです。

    1. [編集] をクリックして、[ホスティングと暗号鍵] パネルを開きます。
    2. [Encryption type] セクションで、[Google-managed encryption key] は無効になっており、[Customer-managed encryption key] が有効になっています。この設定を無効にすることはできません。
    3. [次へ] をクリックします。
    4. [コントロール プレーン] セクションで、[データ所在地を有効にする] が有効になっています。この設定を無効にすることはできません。
    5. ユーザー ジャーニー D: データ所在地がある顧客管理の暗号化のステップ 3.b で説明されているように、ホスティングと暗号化の構成を続行します。
  7. アクセス ルーティングをカスタマイズする: ステップ 4: アクセス ルーティングをカスタマイズするで説明されているように、アクセス ルーティングをカスタマイズします。

許可リストに登録されているプロジェクトの鍵を使用する

Apigee で許可リストに登録されているプロジェクトのキーを使用するには、リソース ID でキーを手動で入力する必要があります。手動で入力したキーも検証され、制約の許可リストに登録されているプロジェクトに基づいて、そのプロジェクトが有効であることを確認します。

Google Cloud KMS リソース ID を取得する方法

参照: Cloud KMS リソース ID の取得

トラブルシューティング

次の表は、CMEK と組織のポリシーの制約で発生する可能性のある一般的なエラーの条件を示しています。

エラー メッセージ 原因 手順
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create or enable trial org. CMEK is not supported for trial orgs. To use trial orgs, adjust the gcp.restrictNonCmekServices constraint for this project. プロジェクトに組織のポリシー制約が存在するトライアル組織をプロビジョニングしようとしました。 CMEK は、トライアル/評価組織ではサポートされていません。トライアル組織をプロビジョニングするには、組織のポリシーの制約 constraints/gcp.restrictNonCmekServices を更新して、拒否されたサービスリストから Apigee を削除する必要があります。
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create or enable global org. CMEK is not supported in location 'global', select another location or adjust the code constraint for this project. プロジェクトに組織のポリシーの制約が存在するグローバル組織をプロビジョニングしようとしました。 CMEK はグローバル組織ではサポートされていません。組織のポリシーの制約 constraints/gcp.restrictNonCmekServices を更新して、拒否されたサービスのリストから Apigee を削除するか、別のロケーションを使用して組織を作成する必要があります。
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create a resource without specifying a KMS CryptoKey. Provide a KMS CryptoKey to use for this resource. KMS CryptoKey を指定せずに、プロジェクトに組織のポリシーの制約が存在する組織をプロビジョニングしようとしました。 組織のポリシーでコードを設定しており、データを暗号化するために CMEK を指定する必要があります。組織またはインスタンスを作成するには、CMEK 鍵を指定する必要があります。CMEK の適用を希望しない場合は、組織のポリシー制約 constraints/gcp.restrictNonCmekServices を更新して、拒否されたサービスのリストから Apigee を削除できます。
Constraint constraints/gcp.restrictCmekCryptoKeyProjects violated for projects/my-project attempting to use projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1 key. Use a key from a project that is allowed by the gcp.restrictCmekCryptoKeyProjects constraint. プロジェクトに組織のポリシー制約が存在する組織をプロビジョニングしようとし、許可リストに登録されていない KMS CryptoKey を指定しました。 組織のポリシーで constraints/gcp.restrictCmekCryptoKeyProjects を設定しているため、指定した許可されたプロジェクトの CMEK 鍵を提供する必要があります。組織またはインスタンスを作成するには、許可されたプロジェクトの CMEK 鍵を指定する必要があります。または、組織のポリシーの制約 constraints/gcp.restrictCmekCryptoKeyProjects を更新して、目的の特定の Google Cloud プロジェクトの鍵を許可することもできます。
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create a portal. Integrated portals do not support the use of CMEK. To use integrated portals, adjust the gcp.restrictNonCmekServices policy constraint. プロジェクトに組織のポリシー制約が存在するポータルを作成しようとしました。 CMEK は統合ポータルではサポートされていません。新しいポータルを作成するには、組織のポリシー制約 constraints/gcp.restrictNonCmekServices を更新して、拒否されたサービスリストから Apigee を削除する必要があります。