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

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

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

始める前に

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

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    コンソールを使用してサービスと API にアクセスする場合、認証を設定する必要はありません。 Google Cloud Google Cloud

    gcloud

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

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります

  • デフォルトのリージョンとゾーンを設定します

必要なロール

プロジェクトで共有予約を作成することを許可または制限するために必要な権限を取得するには、組織の組織ポリシー管理者 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. [ Manage policy] をクリックします。[ポリシーの詳細] ページが表示されます。

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

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

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

  7. [ Add a rule] をクリックします。

  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
    

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

    • PROJECT_NUMBER: プロジェクトの 番号

    • ORGANIZATION_ID:組織の 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 分かかることがあります。

次のステップ