共有予約の作成を管理する

デフォルトでは、プロジェクトで共有予約の作成と変更を行うことはできません。このドキュメントでは、 Google Cloud 組織内のプロジェクトで共有予約の作成と変更を許可または制限する方法について説明します。共有予約を使用すると、プロジェクト間で予約済み容量の使用率を最大化し、多くの予約ではなく 1 つの予約を管理できます。

共有予約の作成と使用に関するベスト プラクティスの詳細については、共有予約のベスト プラクティスをご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    2. Set a default region and zone.

必要なロール

プロジェクトで共有予約の作成を許可または制限するために必要な権限を取得するには、組織に対する 組織ポリシー管理者 roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、プロジェクトが共有予約を作成することを許可または制限するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

プロジェクトでの共有予約の作成を許可または制限するには、次の権限が必要です。

  • 組織のポリシーを編集するには: 組織に対する orgpolicy.policy.set
  • 組織のポリシーを表示するには: 組織に対する orgpolicy.policy.get

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

プロジェクトでの共有予約の作成を許可または制限する

プロジェクトで共有予約の作成を許可または制限するには、共有予約オーナー プロジェクトcompute.sharedReservationsOwnerProjects)組織のポリシー制約の許可リストを変更します。

以降のセクションでは、プロジェクトまたは組織で共有予約ポリシーの制約を表示または編集する方法について説明します。

共有予約の組織のポリシーの制約を表示する

プロジェクトまたは組織で共有予約オーナー プロジェクト(compute.sharedReservationsOwnerProjects)制約が有効になっているかどうかを確認するには、次のいずれかを選択します。

コンソール

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

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

  2. プロジェクト選択ツールから、組織のポリシーを表示するプロジェクトまたは組織を選択します。

  3. [フィルタ] フィールドに「constraints/compute.sharedReservationsOwnerProjects」と入力します。

  4. [名前] 列で、[共有予約のオーナー プロジェクト] をクリックします。[ポリシーの詳細] ページが表示されます。

  5. [有効なポリシー] セクションで、プロジェクトまたは組織で共有予約の作成と変更が許可されているかどうかを確認します。

gcloud

compute.sharedReservationsOwnerProjects 制約で共有予約の作成と変更が許可されているプロジェクトを確認するには:

  1. 組織のポリシーを policy.yaml という名前のファイルとしてダウンロードするには、gcloud resource-manager org-policies describe コマンドを使用します。

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
        --organization=ORGANIZATION_ID > policy.yaml
    

    ORGANIZATION_ID組織の ID に置き換えます。

  2. 任意のテキスト エディタで policy.yaml ファイルを開きます。

  3. compute.sharedReservationsOwnerProjects 制約を表示します。共有予約の作成と変更が可能なプロジェクトは、次の例に示すように、allowedValues フィールドに一覧表示されます。

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/EXAMPLE_PROJECT_NUMBER1
      - projects/EXAMPLE_PROJECT_NUMBER2
      - projects/EXAMPLE_PROJECT_NUMBER3
      ...
    ...
    
  4. 省略可: policy.yaml ファイルを削除するには、次のいずれかの操作を行います。

    • Linux ターミナルまたは macOS ターミナルを使用している場合は、次のコマンドを実行します。

      rm policy.yaml
      
    • Windows ターミナルを使用している場合は、次のコマンドを実行します。

      del policy.yaml
      

共有予約の組織のポリシーの制約を編集する

組織内のどのプロジェクトで共有予約の作成と変更を許可するかを編集するには、次のいずれかのオプションを選択します。

コンソール

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

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

  2. プロジェクト選択ツールから、組織のポリシーを編集する組織を選択します。

  3. [フィルタ] フィールドに「constraints/compute.sharedReservationsOwnerProjects」と入力します。

  4. [名前] 列で、[共有予約のオーナー プロジェクト] をクリックします。[ポリシーの詳細] ページが表示されます。

  5. [ ポリシーを管理] をクリックします。[ポリシーの詳細] ページが表示されます。

  6. [親のポリシーをオーバーライドする] を選択します。[ポリシーの適用] セクションで、ポリシーの適用方法を選択します。

    • 親と結合する: このオプションは、プロジェクト レベルのポリシーと組織レベルのポリシーを結合します。どちらかのレベルで許可されているプロジェクトは、共有予約を作成できます。

    • 置き換え: このオプションは、上位レベルから継承されたポリシーをオーバーライドします。このレベルで明示的に許可されているプロジェクトのみが、共有予約を作成できます。

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

  8. [ポリシーの値] リストで、[カスタム] を選択します。

  9. [ポリシーの種類] リストで、次のいずれかのオプションを選択します。

    • 1 つ以上のプロジェクトに共有予約の作成または変更を承認するには、[許可] を選択します。

    • 1 つ以上のプロジェクトで共有予約の作成や変更ができないようにするには、[拒否] を選択します。

  10. [カスタム値] フィールドに、このルールを適用するプロジェクトの番号を入力します。ルールを適用するプロジェクトを追加するには、[値を追加] をクリックして、この手順を繰り返します。

  11. 変更を適用するには、[ポリシーを設定] をクリックします。[組織のポリシー] ページが表示されます。

gcloud

compute.sharedReservationsOwnerProjects 制約で共有予約の作成と変更を許可するプロジェクトを編集するには、次のいずれかの方法を使用します。

  • 共有予約を作成および変更する権限を単一プロジェクトに付与するには、gcloud resource-manager org-policies allow コマンドを使用します。この権限を付与するプロジェクトごとに、このコマンドを繰り返します。

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    次のように置き換えます。

  • 共有予約を作成または変更するために、複数のプロジェクトの権限を付与または取り消すには、組織のポリシーの制約を変更します。手順は次のとおりです。

    1. 組織のポリシーを policy.yaml という名前のファイルとしてダウンロードするには、gcloud resource-manager org-policies describe コマンドを使用します。

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
          --organization=ORGANIZATION_ID > policy.yaml
      
    2. 任意のテキスト エディタで policy.yaml ファイルを開きます。

    3. allowedValues フィールドを変更して、共有予約の作成と変更が可能なすべてのプロジェクトを一覧表示します。

      • 権限を付与するプロジェクトごとに、allowedValues フィールド内の新しい行にプロジェクト番号を追加します。

      • 共有予約の作成と変更の許可を取り消すプロジェクトごとに、allowedValues フィールドからプロジェクト番号を削除します。

      policy.yaml ファイルは次のようになります。

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/EXAMPLE_PROJECT_NUMBER1
        - projects/EXAMPLE_PROJECT_NUMBER2
        - projects/EXAMPLE_PROJECT_NUMBER3
        ...
      ...
      
    4. policy.yaml ファイルを保存して、テキスト エディタを終了します。

    5. 組織のポリシーを更新するには、gcloud resource-manager org-policies set-policy コマンドを使用します。

      gcloud resource-manager org-policies set-policy \
          --organization=ORGANIZATION_ID policy.yaml
      
    6. 省略可: policy.yaml ファイルを削除するには、次のいずれかの操作を行います。

      • Linux ターミナルまたは macOS ターミナルを使用している場合は、次のコマンドを実行します。

        rm policy.yaml
        
      • Windows ターミナルを使用している場合は、次のコマンドを実行します。

        del policy.yaml
        

変更が有効になるまでには、最長で 15 分ほどかかる場合があります。

次のステップ