イメージの使用の制限

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

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

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

始める前に

制限事項

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

    • ローカル プロジェクトのカスタム イメージ

    • その他の Google Cloud サービスでインスタンスを作成する際に使用できるイメージ。

    • Cloud Storage バケットのイメージ ファイル。

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

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

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

Console

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

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

  2. ポリシーリストで、[信頼できるイメージ プロジェクトを定義する] をクリックします。
  3. 既存の信頼できるイメージの制約を編集するには、[編集] をクリックします。
  4. プロジェクトで使用するイメージの取得元として、1 つ以上のプロジェクトを許可または拒否する制約を設定します。パブリッシャーとして許可するプロジェクト、拒否するプロジェクトのリストは、次の形式の文字列です。

    projects/[PROJECT_ID]
    

    ここで、[PROJECT_ID] は信頼できるイメージソースとしてマークするプロジェクトのプロジェクト ID です。

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

  5. [保存] をクリックして制約の設定を適用します。

gcloud

  1. プロジェクトの既存のポリシー設定を取得します。

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

    ここで、[PROJECT_ID] はプロジェクト ID です。

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

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

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

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
      allValues: DENY
    
  3. policy.yaml ファイルをプロジェクトに適用します。組織またはフォルダに既存の制約がある場合、それらの制約は、設定するプロジェクト レベルの制約と競合する可能性があります。

    gcloud beta resource-manager org-policies set-policy
    --project [PROJECT_ID] policy.yaml
    

    ここで、[PROJECT_ID] はプロジェクト ID です。

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

次のステップ