制約の使用

このガイドでは、特定の制約を使用して組織ポリシーを作成する方法について説明します。 このページの例で使用されている制約は、実際の制約ではなく、教育目的のために一般化されたサンプルです。

制約の詳細と、制約によって解決される問題については、すべての組織ポリシー サービスの制約のリストをご覧ください。

始める前に

必要なロール

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

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

組織のポリシーでリスト制約を使用する

リスト型制約を使用する組織ポリシーを組織リソースに対して設定することにより、特定のサービスへのアクセスを拒否することができます。次のプロセスでは、Google Cloud CLI を使用して組織のポリシーを設定する方法について説明します。Google Cloud コンソールを使用して組織のポリシーを表示および設定する方法については、ポリシーの作成と管理をご覧ください。

リスト型制約を使用する組織ポリシーでは、許可または拒否する値を 500 個以下、32 KB 以下にする必要があります。組織ポリシーの作成や更新で 500 個を超える値や 32 KB を超えるサイズがある場合は、組織のポリシーが正常に保存されず、リクエストからエラーが返されます。

組織リソースに対する適用を設定する

gcloud CLI を使用して組織に対する適用を設定する手順は次のとおりです。

  1. describe コマンドを使用して、組織リソースに関する現在のポリシーを取得します。このコマンドを実行すると、このリソースに直接適用されたポリシーが返されます。

    gcloud org-policies describe \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    以下のように置き換えます。

    • ORGANIZATION_ID: 組織リソースの固有識別子。組織 ID は 10 進数で表示され、先頭にゼロを付けることはできません。

    • LIST_CONSTRAINT: 適用するサービスのリスト型制約。たとえば、constraints/gcp.restrictNonCmekServices 制約は、顧客管理の暗号鍵(CMEK)なしでリソースを作成できるサービスを制限します。

    さらに、--folder フラグまたは --project フラグ、フォルダ IDプロジェクト ID をそれぞれ使用して、フォルダやプロジェクトに対して組織のポリシーを適用することもできます。

    現在の組織ポリシーがある場合は、レスポンスで返されます。次に例を示します。

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. set-policy コマンドを使用して、組織にポリシーを設定します。これにより、リソースに適用されているポリシーが上書きされます。

    1. ポリシーを保存する一時ファイル /tmp/policy.yaml を作成します。

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - VALUE_A
      
    2. set-policy コマンドを実行します。

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. describe --effective を使用して現在有効なポリシーを表示します。これにより、リソース階層において現段階で継承が可能と評価された組織のポリシーが返されます。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    コマンドの出力は次のようになります。

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      etag: BwVJi0OOESU=
      rules:
      - values:
          deniedValues:
          - VALUE_A
    

    この組織ポリシーは組織レベルで設定されているため、継承が許可されているすべての子リソースで継承されます。

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

階層サブツリーに対して適用を設定する

リスト制約では、明示的に定義された値を使用して、どのリソースを許可または拒否するかを決定します。一部の制約も、接頭辞 under: を使用する値を受け入れることができます。この接頭辞は、そのリソースをルートとするサブツリーを指定します。許可または拒否される値に under: 接頭辞を使用すると、そのリソースとそのすべての子に組織のポリシーが適用されます。接頭辞 under: の使用を許可する制約については、組織のポリシーの制約ページをご覧ください。

under: 接頭辞を使用する値は、階層サブツリー文字列と呼ばれます。階層サブツリー文字列は、適用先のリソースのタイプを指定します。たとえば、constraints/compute.storageResourceUseRestrictions 制約を設定するときに projects/PROJECT_ID のサブツリー文字列を使用すると、PROJECT_ID とそのすべての子に対する Compute Engine ストレージの使用が許可または拒否されます。

  1. describe コマンドを使用して、組織リソースに関する現在のポリシーを取得します。

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    以下のように置き換えます。

    • ORGANIZATION_ID は、組織リソースの一意の識別子です。

    • LIST_CONSTRAINT は、サービスに対して適用するリスト型制約です。

    さらに、--folder フラグまたは --project フラグ、フォルダ IDプロジェクト ID をそれぞれ使用して、フォルダやプロジェクトに対して組織のポリシーを適用することもできます。

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. set-policy コマンドを使用して、プロジェクトにポリシーを設定します。under: 接頭辞は、指定されたリソースとそのすべての子リソースを拒否する制約を設定します。

    1. ポリシーを保存する一時ファイル /tmp/policy.yaml を作成します。

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
      
    2. set-policy コマンドを実行します。

      gcloud org-policies set-policy /tmp/policy.yaml
      

    ここで

    • under: は、後続するものがサブツリー文字列であることを表す接頭辞です。

    • folders/VALUE_A は、拒否するルートリソースのフォルダ ID です。リソース階層内のこのリソースおよびそのすべての子リソースが拒否されます。

    また、次の例のように、組織とプロジェクトに under: 接頭辞を適用することもできます。

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. describe --effective を使用して現在有効なポリシーを表示します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    コマンドの出力は次のようになります。

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - under:folders/VALUE_A
    

    これでポリシーは、フォルダ VALUE_A とそのすべての子リソースを拒否するように評価します。

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

プロジェクトの組織ポリシーを結合する

リソースには組織のポリシーを設定できます。このポリシーは、親リソースから継承したポリシーと結合されます。この結合されたポリシーは、継承のルールに基づいて、新しい有効なポリシーを作成するものと評価されます。

  1. describe コマンドで、リソースに対する現在のポリシーを取得します。

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    以下のように置き換えます。

    • PROJECT_ID: プロジェクトの固有識別子

    • LIST_CONSTRAINT: サービスに対して適用するリスト型制約。

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. 現在の有効なポリシーを表示するには、describe --effective コマンドを使用します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力には、組織リソースから継承された、拒否する値が含まれます。

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
    
  3. set-policy コマンドを使用して、プロジェクトにポリシーを設定します。

    1. ポリシーを保存する一時ファイル /tmp/policy.yaml を作成します。

      name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
      spec:
        inheritFromParent: true
        rules:
        - values:
            deniedValues:
            - VALUE_B
            - VALUE_C
      
    2. set-policy コマンドを実行します。

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. describe --effective コマンドをもう一度使用して、更新されたポリシーを表示します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力には、リソースのポリシーと親のポリシーを結合した実際の結果が含まれます。

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
            - VALUE_A
            - VALUE_B
            - VALUE_C
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

デフォルトの制約動作を復元する

reset コマンドを使用して、制約のデフォルトの動作が使用されるようにポリシーをリセットできます。使用可能なすべての制約とデフォルト値のリストについては、組織のポリシーの制約をご覧ください。次の例では、デフォルトの制約の動作が、すべての値を許可することであることを前提としています。

  1. プロジェクトに実際に適用されているポリシーを取得して、現在結合されているポリシーを表示します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    PROJECT_ID は、プロジェクトの固有識別子に置き換えます。コマンドの出力は次のようになります。

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. reset コマンドを使用して組織のポリシーをリセットします。

    gcloud org-policies reset LIST_CONSTRAINT \
        --project=PROJECT_ID
    
  3. 有効なポリシーを取得して、デフォルトの動作を確認します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力では、すべての値が許可されています。

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

組織ポリシーを削除する

リソースから、組織ポリシーを削除することができます。組織ポリシーが設定されていないリソースは、親リソースのポリシーを継承します。組織リソース上の組織ポリシーを削除すると、制約のデフォルト動作が有効なポリシーとなります。

組織の組織のポリシーを削除する手順は以下のとおりです。

  1. delete コマンドを使用して、組織リソースに対するポリシーを削除します。

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID は、組織リソースの固有識別子に置き換えます。コマンドの出力は次のようになります。

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. 組織で有効なポリシーを取得し、ポリシーが適用されていないことを確認します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    コマンドの出力は次のようになります。

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

プロジェクトの組織のポリシーを削除する手順は以下のとおりです。

  1. delete コマンドを使用して、プロジェクトからポリシーを削除します。

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    PROJECT_ID はプロジェクトの一意の識別子です。コマンドの出力は次のようになります。

    Deleted policy
    [projects/PROJECT_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. プロジェクトで有効なポリシーを取得し、ポリシーが適用されていないことを確認します。

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力は次のようになります。

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

組織ポリシーにブール型制約を使用する

組織リソースに対する適用を設定する

組織リソースに対してブール型の制約を適用する組織ポリシーを設定することができます。次のプロセスでは、Google Cloud CLI を使用して組織のポリシーを設定する方法について説明します。Google Cloud コンソールを使用して組織のポリシーを表示および設定する方法については、ポリシーの作成と管理をご覧ください。

  1. describe コマンドを使用して、組織リソースに関する現在のポリシーを取得します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID は、組織リソースの固有識別子に置き換えます。さらに、--folder フラグまたは --project フラグ、フォルダ IDプロジェクト ID をそれぞれ使用して、フォルダやプロジェクトに対して組織のポリシーを適用することもできます。

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. set-policy コマンドを使用して、プロジェクトにポリシーを設定します。

    1. ポリシーを保存する一時ファイル /tmp/policy.yaml を作成します。

      name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: true
      
    2. set-policy コマンドを実行します。

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. describe --effective を使用して現在の有効なポリシーを表示します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    コマンドの出力は次のようになります。

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

プロジェクトの組織ポリシーをオーバーライドする

プロジェクトの組織ポリシーをオーバーライドするには、プロジェクトの下の階層にあるすべてのリソースに対してブール型制約の適用を無効にするポリシーを設定します。

  1. リソースの現在のポリシーを取得し、このポリシーが空であることを確認します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    ここで、PROJECT_ID はプロジェクトの固有識別子です。

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. プロジェクトで有効なポリシーを取得します。制約がこのプロジェクトに適用されていることがわかります。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力は次のようになります。

    name: projects/PROJECT_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    
  3. set-policy コマンドを使用して、プロジェクトにポリシーを設定します。

    1. ポリシーを保存する一時ファイル /tmp/policy.yaml を作成します。

      name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: false
      
    2. set-policy コマンドを実行します。

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. 有効なポリシーを取得して、ポリシーがプロジェクトに適用されていないことを確認します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    コマンドの出力は次のようになります。

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: false
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

組織ポリシーを削除する

リソースから、組織ポリシーを削除することができます。組織ポリシーが設定されていないリソースは、親リソースのポリシーを継承します。組織リソース上の組織ポリシーを削除すると、制約のデフォルト動作が有効なポリシーとなります。

組織とプロジェクトの組織のポリシーを削除する手順は以下のとおりです。

  1. delete コマンドを使用して、組織リソースからポリシーを削除します。

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID は、組織リソースの固有識別子に置き換えます。コマンドの出力は次のようになります。

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  2. 組織で有効なポリシーを取得し、ポリシーが適用されていないことを確認します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. delete コマンドを使用して、プロジェクトから組織のポリシーを削除します。

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    コマンドの出力は次のようになります。

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  4. プロジェクトで有効なポリシーを取得し、ポリシーが適用されていないことを確認します。

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    PROJECT_ID は、組織の固有識別子に置き換えます。

    ポリシーが設定されていない場合は、次のような NOT_FOUND エラーが返されます。

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。

組織のポリシーでマネージド制約を使用する

マネージド制約は、カスタム組織のポリシー プラットフォーム上に構築された事前定義された制約です。事前定義された制約と同様に使用できますが、組織のポリシー サービス用の Policy Simulator と組織のポリシーのドライランを使用して、ポリシーの変更をより安全にデプロイできます。

マネージド制約を表示して特定する

組織で使用可能なマネージド制約を確認するには、次の操作を行います。

コンソール

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

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

  2. プロジェクト選択ツールから、組織のポリシーを表示するプロジェクト、フォルダ、または組織を選択します。表示された [組織のポリシー] ページに、このリソースで使用可能な組織のポリシーの制約のリストが表示されます。

  3. 制約の種類で組織のポリシーのリストをフィルタまたは並べ替えて、管理対象の制約を見つけることができます。詳細を表示するマネージド制約をリストから選択します。表示された [ポリシーの詳細] ページには、この組織のポリシーのソース、このリソースに対する有効なポリシー評価、制約の詳細が表示されます。

gcloud

組織の組織のポリシーで適用されるマネージド制約とカスタム制約を一覧表示するには、org-policies list-custom-constraints コマンドを使用します。

gcloud org-policies list-custom-constraints \
  --organization=ORGANIZATION_ID

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

リソースの特定の管理対象制約の詳細を取得するには、org-policies describe-custom-constraint コマンドを使用します。

gcloud org-policies describe-custom-constraint CONSTRAINT_NAME \
    --organization=ORGANIZATION_ID

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

  • CONSTRAINT_NAME: 詳細を取得するマネージド制約の名前。例: iam.managed.disableServiceAccountKeyUpload

  • ORGANIZATION_ID: 組織の ID。

REST

組織の組織のポリシーで設定されたマネージド制約とカスタム制約を一覧表示するには、organizations.customConstraints.list メソッドを使用します。

  GET https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/customConstraints

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

マネージド制約の作成と更新

組織のポリシーは、マネージド制約ごとに設定された値によって定義されます。リソースに構成することも、親リソースから継承することも、Google 管理のデフォルト動作に設定することもできます。

マネージド制約に基づいてポリシーを作成または更新する手順は次のとおりです。

コンソール

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

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

  1. プロジェクト選択ツールから、組織のポリシーを編集するプロジェクト、フォルダ、または組織を選択します。表示された [組織のポリシー] ページに、このリソースで使用可能な組織のポリシー制約のフィルタ可能なリストが表示されます。

  2. リストから、組織のポリシーを更新するマネージド制約を選択します。[ポリシーの詳細] ページには、この組織のポリシーのソース、このリソースに対する有効なポリシー評価、マネージド制約の詳細が表示されます。

  3. このリソースの組織のポリシーを更新するには、[ポリシーを管理] をクリックします。

  4. [ポリシーの編集] ページで、[親のポリシーをオーバーライドする] を選択します。

  5. [ルールを追加] を選択します。

  6. [適用] で、この組織のポリシーの適用を有効にするかどうかを選択します。

  7. タグで組織のポリシーに条件を設定するには、[条件を追加] をクリックします。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できません。詳細については、タグを使用した組織のポリシーの設定をご覧ください。

  8. 必要に応じて、組織のポリシーの変更が適用される前にその影響をプレビューするには、[変更内容をテスト] をクリックします。組織のポリシーの変更のテストの詳細については、Policy Simulator で組織のポリシーの変更をテストするをご覧ください。

  9. ドライラン モードで組織のポリシーを適用するには、[ドライラン ポリシーを設定] をクリックします。詳細については、ドライラン モードで組織のポリシーを作成するをご覧ください。

  10. ドライラン モードの組織のポリシーが想定どおりに動作していることを確認したら、[ポリシーを設定] をクリックしてライブポリシーを設定します。

gcloud

  1. YAML ファイルを作成して組織のポリシーを定義します。

    name: RESOURCE_TYPE/RESOURCE_ID/policies/iam.managed.disableServiceAccountKeyCreation
    spec:
      rules:
      - enforce: ENFORCEMENT_STATE
    
    dryRunSpec:
      rules:
      - enforce: ENFORCEMENT_STATE
    

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

    • RESOURCE_TYPEorganizationsfolders、または projects に置き換えます。

    • RESOURCE_ID は、RESOURCE_TYPE で指定されたリソースのタイプに応じた、組織 ID、フォルダ ID、プロジェクト ID またはプロジェクト番号に置き換えます。

    • ENFORCEMENT_STATEtrue に置き換えて、この組織のポリシーが設定されている場合に適用します。false に置き換えて、設定されている場合に無効にします。

    必要に応じて、タグで組織のポリシーに条件を設定するには、rulescondition ブロックを追加します。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できないのでご注意ください。詳細については、タグを使用した組織のポリシーの設定をご覧ください。

  2. dryRunSpec フラグを指定して org-policies set-policy コマンドを実行し、ドライラン モードで組織のポリシーを設定します。

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    POLICY_PATH は、組織のポリシーの YAML ファイルのパスに置き換えます。

    ドライランの組織のポリシーの詳細については、ドライラン モードで組織のポリシーを作成するをご覧ください。

  3. policy-intelligence simulate orgpolicy コマンドを使用して、組織のポリシーの変更が適用される前に、その影響をプレビューします。

    gcloud policy-intelligence simulate orgpolicy \
      --organization=ORGANIZATION_ID \
      --policies=POLICY_PATH
    

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

    • ORGANIZATION_ID は、組織 ID に置き換えます(1234567890123 など)。複数の組織にわたる変更のシミュレーションはサポートされていません。

    • POLICY_PATH は、組織のポリシーの YAML ファイルのパスに置き換えます。

    組織のポリシーの変更をテストする方法については、Policy Simulator で組織のポリシーの変更をテストするをご覧ください。

  4. ドライラン モードの組織のポリシーが意図したとおりに動作していることを確認したら、org-policies set-policy コマンドと spec フラグを使用してライブポリシーを設定します。

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    POLICY_PATH は、組織のポリシーの YAML ファイルのパスに置き換えます。

REST

組織のポリシーを設定するには、organizations.policies.create メソッドを使用します。

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

JSON 本文のリクエスト:

{
  "name": "RESOURCE_TYPE/RESOURCE_ID/policies/iam.managed.disableServiceAccountKeyCreation",
  "spec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"]
      }
    ]
  }
  "dryRunSpec": {
    "rules": [
      {
        "enforce": ["ENFORCEMENT_STATE"]
      }
    ]
  }
}

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

  • RESOURCE_TYPEorganizationsfolders、または projects に置き換えます。

  • RESOURCE_ID は、RESOURCE_TYPE で指定されたリソースのタイプに応じた、組織 ID、フォルダ ID、プロジェクト ID またはプロジェクト番号に置き換えます。

  • ENFORCEMENT_STATEtrue に置き換えて、この組織のポリシーが設定されている場合に適用します。false に置き換えて、設定されている場合に無効にします。

必要に応じて、タグで組織のポリシーに条件を設定するには、rulescondition ブロックを追加します。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できないのでご注意ください。詳細については、タグを使用した組織のポリシーの設定をご覧ください。

ドライランの組織のポリシーの詳細については、ドライラン モードで組織のポリシーを作成するをご覧ください。

組織のポリシーの変更を完全に適用するには、最大 15 分ほどかかる場合があります。