制約について

制約は、Google Cloud サービスまたは Google Cloud サービスのリストに対する制限の一種です。制約は、どのような行動が制御されているかを定義する青写真と考えることができます。この青写真は組織のポリシーとしてリソース階層ノードに適用され、これにより制約で定義されたルールが実施されます。その制約にマッピングされ、そのリソース階層ノードに関連付けられた Google Cloud サービスにより、組織のポリシー内で構成された制限が適用されます。

制約にはタイプがあります。このタイプは、入力して適用チェックに使用できる組織のポリシー値を示します。適用を行う Google Cloud サービスは制約のタイプと値を評価して、制限の内容を決定します。

階層評価時に、現在のリソース階層ノードに設定されている組織ポリシーが有効になります。inheritFromParentTRUE に設定されていると、継承の結合が有効になります。

制約の属性

すべての制約は、次の属性によって定義されます。

  • 名前: 制約の一意の名前。
    • 例: constraints/compute.disableSerialPortAccess
  • 表示名: 制約のわかりやすい名前。
  • 説明: どのような適用がどの Google Cloud サービスによって実行されているかを示す詳細情報。
  • デフォルトの動作: ポリシー内でユーザー定義の構成が存在しない場合の動作。


制約の種類

リスト型制約

リスト型制約は、組織ポリシーで定義されているリストの値を許可または禁止します。この値のリストは、階層サブツリー文字列として表されます。サブツリー文字列は、適用先のリソースのタイプを指定します。たとえば、constraints/compute.trustedImageProjects 用の projects/PROJECT_ID の形式のプロジェクト ID のリストなどです。

次の表は、ポリシー適用の一般的な制約構成の一部を示しています。

ポリシー 制約構成
特定の値を許可する 許可する値のフィールド(ListPolicy.allowed_values)を文字列のリストに設定する
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED に設定する
特定の値を拒否する 拒否する値のフィールド(ListPolicy.denied_values)を文字列のリストに設定する
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED に設定する
値とそのすべての子の値を拒否する 拒否する値のフィールド(ListPolicy.denied_values)をサブツリー文字列(organizations/1234 など)に設定する
ListPolicy.all_valuesALL_VALUES_UNSPECIFIED に設定する
有効な値をすべて許可する ListPolicy.all_valuesALLOW に設定する
ListPolicy.allowed_values または ListPolicy.denied_values は設定しないでください。
すべての値を拒否する ListPolicy.all_valuesDENY に設定する
ListPolicy.allowed_values または ListPolicy.denied_values は設定しないでください。

値に「prefix:value」の形式で次のような接頭辞を付け、条件を追加することもできます。

  • is:: - 正確な値との比較を適用します。これは接頭辞がない場合と同じ動作で、値にコロンが含まれる場合には必須です。
  • under:: - 値とそのすべての子の値に対して比較を適用します。この接頭辞が付いているリソースが許可または拒否される場合、その子リソースも拒否されます。指定する値は、次の例のように、階層サブツリー文字列でなければなりません。
    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • projects/PROJECT_ID

一部の制約は、階層サブツリー文字列を値として使用することと互換性がありません。階層サブツリーの値の接頭辞の使用がサポートされている制約については、組織ポリシーの制約をご覧ください。

階層サブツリーの値の接頭辞はベータ版の機能で、下位互換性のない方法で変更される可能性があり、SLA または非推奨ポリシーの対象ではありません。制約での接頭辞付きの値の使用の詳細については、階層サブツリーに対して適用を設定するを参照してください。

値のリストが指定されていない場合、有効になるデフォルトは、各制約によって次のいずれかになります。

  • ALLOW - 有効な値がすべて許可されます。
  • DENY - どの値も許可されません。

ブール型制約

ブール型制約は、強制適用であるかどうかを示します。Policy.enforcedTrue に設定すると、ポリシーが適用されます。

たとえば、constraints/compute.disableSerialPortAccess には次の 2 つの状態があります。

  • TRUE - disableSerialPortAccess 制約が強制適用され、シリアルポート アクセスは許可されません。
  • FALSE - disableSerialPortAccess 制約は強制適用も選択もされないため、シリアルポートへのアクセスが許可されます。

ポリシーが設定されていない場合、またはポリシーが RestoreDefault に設定されている場合、シリアルポートへのアクセスが許可されます。これは、デフォルトの制約では許可されるためです。