バッチの VM OS イメージへのアクセスを制御する

このページでは、信頼できるイメージのポリシー制約を構成する方法について説明します。これにより、Compute Engine 仮想マシン(VM)インスタンスのブートディスクの作成に使用できるオペレーティング システム(OS)イメージへのアクセスを制御できます。

デフォルトでは、ユーザーは、バッチジョブを実行する Compute Engine VM に、公開イメージまたはユーザーと共有されているカスタム イメージを使用できます。信頼できるイメージのポリシー制約が有効になっておらず、VM OS イメージを制限したくない場合は、この文書を読む必要はありません。

プロジェクト、フォルダ、組織内のすべてのユーザーが、ポリシーまたはセキュリティ要件を満たす承認済みソフトウェアを含む VM を作成するように求める場合は、信頼できるイメージのポリシー制約を有効にします。信頼できるイメージのポリシー制約が有効になっている場合、影響を受けるユーザーは、ジョブの VM OS イメージが許可されていない限り、バッチジョブは実行できません。信頼できるイメージのポリシー制約が有効になっている場合にジョブを作成して実行するには、少なくとも次のいずれかを行います。

  • すでに許可されている VM OS イメージを指定するようユーザーに依頼します。
  • このドキュメントに示す方法で、Batch からデフォルトの VM OS イメージを許可します。

VM OS イメージとブートディスクの詳細については、VM OS 環境の概要をご覧ください。プロジェクト、フォルダ、組織で有効になっているポリシー制約を確認するには、組織のポリシーを表示します。

準備

  1. Batch を以前に使用したことがない場合は、Batch を使ってみるを確認し、プロジェクトとユーザーの前提条件を完了して Batch を有効にします。
  2. 組織のポリシーを構成するために必要な権限を取得するには、 組織の組織ポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。 ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Batch のイメージを許可する

次の手順では、Google Cloud コンソールまたは Google Cloud CLI を使用して、信頼できるイメージのポリシー制約を変更し、Batch のすべての VM OS イメージを許可する方法について説明します。

信頼できるイメージ(compute.trustedImageProjects)のポリシー制約の使用方法については、Compute Engine ドキュメントの信頼できるイメージのポリシーの設定をご覧ください。

コンソール

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

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

  2. ポリシーリストで、[信頼できるイメージ プロジェクトを定義する] をクリックします。

    [ポリシーの詳細] ページが開きます。

  3. [ポリシーの詳細] ページで、[ ポリシーを管理する] をクリックします。[ポリシーの編集] ページが開きます。

  4. [ポリシーの編集] ページで、[カスタマイズ] を選択します。

  5. [ポリシーの適用] で、適用オプションを選択します。

  6. [ルールを追加] をクリックします。

  7. [ポリシー値] リストで、すべての指定されていないイメージ プロジェクトへのアクセスを許可するルールを追加するか、すべての指定されていないイメージ プロジェクトへのアクセスを拒否するか、またはアクセスを許可または拒否するプロジェクトの一連のカスタムセットを指定するかを選択できます。Batch からのすべてのイメージを許可するには、次の操作を行います。

    1. [ポリシーの値] リストで、[カスタム] を選択します。[ポリシーの種類] フィールドと [カスタム値] フィールドが表示されます。
    2. [ポリシーの種類] リストで [許可] を選択します。
    3. [カスタム値] フィールドに「projects/batch-custom-image」と入力します。
  8. ルールを保存するには、[完了] をクリックします。

  9. 組織のポリシーを保存して適用するには、[保存] をクリックします。

gcloud

次の例は、特定のプロジェクトで Batch からのイメージを許可する方法を示しています。

  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 ファイルを開きます。 次に、allowedValues フィールドに projects/batch-custom-image を追加して、compute.trustedImageProjects 制約を変更します。たとえば、Batch からの VM OS イメージのみを許可するには、compute.trustedImageProjects 制約を次のように設定します。

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allowedValues:
        - projects//batch-custom-image
    

    policy.yaml ファイルの編集が終了したら、変更を保存します。

  3. policy.yaml ファイルをプロジェクトに適用するには、resource-manager org-policies set-policy コマンドを使用します。

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

    PROJECT_ID は、更新するプロジェクトのプロジェクト ID に置き換えます。

制約の更新が完了したら、それらの制約をテストして、意図したとおりに機能することを確認することをおすすめします。

次のステップ