Trusted Image ポリシーの設定

デフォルトでは、プロジェクトのユーザーは、公開イメージのいずれか、またはプリンシパルが IAM のロールによってアクセスできる任意のイメージを使用して、永続ディスクの作成やイメージのコピーを行うことができます。ただし、状況によっては、ポリシーやセキュリティ要件を満たす承認済みのソフトウェアが含まれるイメージからのみブートディスクを作成するように、プリンシパルの制限が必要になる場合もあります。

プリンシパルが特定のプロジェクトのイメージからのみ永続ディスクを作成できるようにする組織のポリシーを定義するには、信頼できるイメージの機能を使用します。

イメージを使用できるロケーションを制限するには、共有イメージ、ディスク、スナップショットの使用の制限をご覧ください。

始める前に

制限事項

  • Trusted Image ポリシーは、次のイメージへのアクセスを制限しません。

  • 信頼できるイメージのポリシーは、ユーザーによるローカル プロジェクト内でのイメージ リソースの作成を妨げるものではありません。

イメージ アクセスの制約を設定する

プロジェクト、フォルダ、組織に compute.trustedImageProjects 制約を設定して、イメージ アクセス ポリシーを設定します。これらの制約を設定するには、組織のポリシーを変更する権限が必要です。たとえば、roles/orgpolicy.policyAdmin には、これらの制約を設定する権限があります。プロジェクト、フォルダ、または組織レベルでポリシーを管理する方法の詳細については、制約の使用をご覧ください。

Compute Engine で利用可能なすべての公開イメージに制約を設定できます。 イメージ プロジェクト名の一覧については、オペレーティング システムの詳細をご覧ください。 また、ml-images プロジェクトを使用すると、Compute Engine で利用可能な機械学習(ML)イメージも制限できます。サーバーレス VPC アクセスを使用している場合は、serverless-vpc-access-images プロジェクトの Compute Engine VM イメージの使用権限をプロジェクトに付与します。

Google Cloud Console または Google Cloud CLI を使用して、イメージ アクセスに制約を設定します。

Console

たとえば、プロジェクト レベルで制約を設定するには、次のようにします。

  1. [組織のポリシー] ページに移動

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

  2. ポリシーリストで、[信頼できるイメージ プロジェクトを定義する] をクリックします。
  3. 既存の信頼できるイメージの制約をカスタマイズするには、[編集] をクリックします。
  4. [編集] ページで、[カスタマイズ] を選択します。
  5. [ポリシーの値] プルダウン リストから [カスタム] を選択し、特定のイメージ プロジェクトに制約を設定します。
  6. [ポリシータイプ] プルダウン リストで、次のように値を指定します。
    • 指定されたイメージ プロジェクトを制限するには、[拒否] を選択します。
    • 指定したイメージ プロジェクトの制限を解除するには、[許可] を選択します。
  7. [カスタム値] フィールドに、projects/IMAGE_PROJECT の形式でイメージ プロジェクトの名前を入力します。IMAGE_PROJECT は、制約を設定するイメージ プロジェクトに置き換えます。

    プロジェクト レベルの制約を設定すると、組織またはフォルダに設定されている既存の制約と競合する可能性があります。

  8. 複数のイメージ プロジェクトを追加するには、[新しいポリシーの値] をクリックします。

  9. [保存] をクリックして、制約を適用します。

組織のポリシーの作成の詳細については、組織のポリシーの作成と管理をご覧ください。

gcloud

たとえば、プロジェクト レベルで制約を設定するには、次のようにします。

  1. resource-manager org-policies describe コマンドを使用して、プロジェクトの既存のポリシー設定を取得します。

    gcloud resource-manager org-policies describe \
       compute.trustedImageProjects --project=PROJECT_ID \
       --effective > policy.yaml
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  2. テキスト エディタで policy.yaml ファイルを開き、compute.trustedImageProjects 制約を変更します。必要な制限を追加し、かつ、不要になった制限を削除します。ファイルの編集が終了したら、変更を保存します。たとえば、ポリシー ファイルに次の制約エントリを設定できます。

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allowedValues:
        - projects/debian-cloud
        - projects/cos-cloud
     deniedValues:
        - projects/IMAGE_PROJECT
    

    IMAGE_PROJECT は、プロジェクトで制限するイメージ プロジェクトの名前に置き換えます。

    必要に応じて、プロジェクト内のカスタム イメージ以外のすべてのイメージへのアクセスを拒否することもできます。その場合は、次の例を使用します。

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allValues: DENY
    

  3. policy.yaml ファイルをプロジェクトに適用します。組織またはフォルダに既存の制約がある場合、それらの制約は、設定するプロジェクト レベルの制約と競合する可能性があります。制約を適用するには、resource-manager org-policies set-policy コマンドを使用します。

    gcloud resource-manager org-policies set-policy \
       policy.yaml --project=PROJECT_ID
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

制約の構成が完了したら、それらの制約をテストして必要な制限が作成されることを確認します。

次のステップ