このガイドでは、リソース設定の管理方法について説明します。リソースの設定を使用して、Google Cloud プロジェクト、フォルダ、組織の設定を一元的に構成できます。各リソース設定を使用して、サポートされているサービスの特定の側面を制御できます。
始める前に
リソース設定とその仕組みの詳細については、リソース設定の概要をご覧ください。
API を有効にする
Resource Settings API は、個別のプロジェクトで有効にできます。
Google Cloud コンソール
Resource Settings API を有効にするには、次のようにします。
- API へのアクセスで使用するプロジェクトを選択します。
- [API とサービスを有効にする] ボタンをクリックします。
- 「Resource Settings」を検索します。
- 検索結果にある「Resource Settings API」をクリックします。
- [API が有効です]が表示されている場合、その API はすでに有効になっています。そうでない場合は、[有効にする] ボタンをクリックします。
gcloud
Resource Settings API を有効にするには、gcloud services enable
コマンドを使用します。
gcloud services enable resourcesettings.googleapis.com
必要な権限
必要な権限は、実行する必要があるアクションによって異なります。
これらの権限を取得するには、リソース階層に見合うレベルで示されたロールを付与するように管理者へ依頼してください。
リソース設定の表示
リソースで使用できるリソース設定と、リソースでの有効なローカル設定値を表示するには、リソース設定閲覧者ロール(roles/resourcesettings.viewer
)か、次の権限を含む別のロールが必要です。
resourcesettings.settings.get
resourcesettings.settings.list
リソース設定の管理
リソースに関するリソース設定値を作成、更新、削除するには、リソース設定管理者ロール(roles/resourcesettings.admin
)か、次の権限を含む別のロールが必要です。
resourcesettings.settings.get
resourcesettings.settings.list
resourcesettings.settings.update
使用可能な設定のリスト
リソース設定は、特定のリソースに対して使用可能な設定すべてのリストを取得できます。このリストには、リソースに適用可能なすべてのリソース設定が表示されます。プレビュー ステータスのリソース設定は、その使用を明示的に許可されている方のみ利用できます。
gcloud
リソースで使用可能な設定すべてのリストを取得するには、次の gcloud resource-settings list
コマンドを使用します。
gcloud resource-settings list --RESOURCE_ID
ここで、RESOURCE_ID
は、使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID です。例: --project=7890123456
API
リソースで使用できる設定すべてのリストを取得するには、次のいずれかの settings.list
メソッドを使用します。メソッドは、設定をリスト出力するリソースのタイプに対応するものを使用します。
curl -X GET -H "Content-Type: application/json" -H \ "Authorization: Bearer $ACCESS_TOKEN" \ https://resourcesettings.googleapis.com/v1/RESOURCE_ID/settings
次のように置き換えます。
ACCESS_TOKEN
: OAuth 2.0 アクセス トークン。RESOURCE_ID
: 使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID。例:projects/7890123456
レスポンスの例
folders/4567890123
のリスト リクエストに対するレスポンスは次のようになります。
{ "settings" : [ { "name": "folders/4567890123/settings/net-preferredDnsServers", "metadata": { "displayName": "Preferred DNS Servers", "description": "The DNS servers to be used by VMs associated with this resource.", "read_only": false, "data_type" : "STRING_SET", "default_value" : { "string_set_value" : { "values" : [ "8.8.8.8" ], } } } }, { "name": "folders/4567890123/settings/text-defaultTextColor", "metadata": { "displayName": "Default Text Color", "description": "The default text color for this resource.", "read_only": false, "data_type" : "STRING", "default_value" : { "string_value" : "black" } } }, ... ] }
name
フィールドは、リソース設定の短縮名です。この設定に関連する API リクエストと gcloud CLI リクエストで使用します。
ローカル設定値の変更
特定リソース設定のローカル設定値は変更できます。ローカルの設定値を設定すると、継承された有効な値の設定はオーバーライドされます。ローカル設定値の設定を解除すると、祖先リソースに適用されているローカル設定値は継承され、これが有効な値になります。
gcloud
リソースのリソース設定に対するローカル設定値を変更するには、次の gcloud resource-settings set-value
コマンドを使用します。
gcloud resource-settings set-value --value-file=FILE_PATH
FILE_PATH
は、リソース設定を含む YAML ファイルのパスか、JSON ファイルのパスに置き換えます。
JSON ファイルの例
{ "localValue" : { "stringSetValue": { "values": [ "8.8.8.8", "8.8.4.4", ] } }, "name": "RESOURCE_ID/settings/SETTING_NAME" }
次のように置き換えます。
RESOURCE_ID
: ローカル リソース設定を更新するフォルダ、プロジェクト、または組織の ID。例:projects/7890123456
SETTING_NAME
: 更新するリソースの設定の短縮名。
リソースのローカル設定値の設定を解除するには、gcloud resource-settings unset-value
コマンドを使用します。
gcloud resource-settings unset-value SETTING_NAME \ --RESOURCE_ID
次のように置き換えます。
SETTING_NAME
: ローカル値の設定を解除するリソース設定の短縮名。RESOURCE_ID
: 使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID。例:projects/7890123456
API
リソースのリソース設定に対するローカル設定値を変更するには、settings.patch
メソッドを使用します。メソッドは、設定を更新するリソースのタイプに対応するものを使用します。
curl -X PATCH -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" -d \ '{ "localValue": { "stringSetValue": { "values": [ "8.8.8.8", "8.8.4.4" ] } } } ' https://resourcesettings.googleapis.com/v1/RESOURCE_ID/settings/net-preferredDnsServers
次のように置き換えます。
ACCESS_TOKEN
: OAuth 2.0 アクセス トークン。RESOURCE_ID
: 使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID。例:projects/7890123456
JSON ファイルにローカル値を含めずにこのリクエストを行った場合は、ローカル設定値が未設定となり、リソースには親の値の設定が継承されるか、Google が管理するデフォルト値が使用されます。
リクエストが成功すると、この設定に対して作成されたローカル値と、後続の更新リクエストに含める必要がある etag
フィールドを含むレスポンスが返されます。
{ "name": "folders/4567890123/settings/net-preferredDnsServers", "localValue": { "stringSetValue": { "values": [ "8.8.8.8", "8.8.4.4" ] } } "etag": "O2VWGxZU01VnAfRU4Mu97w==", }
ローカルまたは有効な値の設定を表示する
特定のリソースにあるリソース設定のローカル値や有効な値を表示できます。
gcloud
特定のリソースにあるリソース設定のローカル値を表示するには、次のように gcloud resource-settings describe
コマンドを使用します。
gcloud resource-settings describe SETTING_NAME \ --RESOURCE_ID
次のように置き換えます。
SETTING_NAME
: ローカル値または有効な値を検索するリソース設定の短縮名。RESOURCE_ID
: 使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID。例:--project=7890123456
--effective
フラグを追加すると、このリソースに対して代わりにそれが評価され、有効な値が返されます。
API
特定のリソースにあるリソース設定のローカル値または有効な値を表示するには、settings.get
メソッドを使用します。メソッドは、設定をリスト出力するリソースのタイプに対応するものを使用します。
curl -X GET -H "Content-Type: application/json" -H \ "Authorization: Bearer $ACCESS_TOKEN" \ https://resourcesettings.googleapis.com/v1/RESOURCE_ID \ /settings/SETTING_NAME?view=VIEW_PARAMETER
次のように置き換えます。
ACCESS_TOKEN
: OAuth 2.0 アクセス トークン。RESOURCE_ID
: 使用可能なリソース設定を検索するフォルダ、プロジェクト、または組織の ID。例:projects/7890123456
SETTING_NAME
: 値を取得するリソース設定の短縮名。VIEW_PARAMETER
:SETTING_VIEW_LOCAL_VALUE
にするとローカル設定値が返され、SETTING_VIEW_EFFECTIVE_VALUE
にするとこのリソースの有効な値が返されます。
レスポンスの例
folders/4567890123
の取得リクエストに対するレスポンスは次のようになります。
{ "name": "folders/4567890123/settings/net-preferredDnsServers", "value": { "stringSetValue": { "values": [ "8.8.8.8", "8.8.4.4" ] } } "etag": "O2VWGxZU01VnAfRU4Mu97w==" }
継承
特定のリソースで有効なリソース設定は、継承に基づいて評価されます。ローカルに値を設定することで、リソースから継承された値をオーバーライドできます。これは、そのリソースの子が継承する設定値にも影響します。リソース設定の継承の詳細については、効果的な設定値をご覧ください。
有効な値を取得する
特定のリソースにある設定の有効な値は、API や gcloud CLI を使用して取得できます。詳細については、ローカルまたは有効な値の設定の表示をご覧ください。次の例では、組織の優先 DNS サーバー リソースの設定に、その組織内のフォルダ、そのフォルダ内のサブフォルダが設定されているものとします。
これらのリソースの有効な値は、それぞれ次のように評価されます。
organizations/111
にはローカル値がなく、継承する親リソースがないため、Google 管理のデフォルトである8.8.8.8
が使用されます。- リソースで有効な値を取得するために
describe
メソッドを使用して Google が管理するデフォルトを使用する場合、その情報がレスポンスに含まれます。次に例を示します。
{ "name": "organizations/111/settings/net-preferredDnsServers", "effectiveValue": { "stringSetValue": { "values": [ "8.8.8.8" ] # Google-managed default } } }
- リソースで有効な値を取得するために
folders/222
ではローカル値が8.8.4.4
に設定されているため、親リソースからは継承されません。describe
メソッドを使用してリソースの有効な値を取得し、それがローカルに設定された値の場合、その情報はレスポンスに含まれます。次に例を示します。
{ "name": "folders/222/settings/net-preferredDnsServers", "effectiveValue": { "stringSetValue": { "values": [ "8.8.4.4" ] # set on folders/222 } } }
folders/333
にはローカル値がありませんが、親リソースには存在します。ローカル設定の値がfolders/222
から継承され、8.8.4.4
と評価されます。describe
メソッドを使用してリソースの有効値を取得し、その値が親リソースから継承されたものである場合、その情報はレスポンスに含まれます。次に例を示します。
{ "name": "folders/333/settings/net-preferredDnsServers", "effectiveValue": { "stringSetValue": { "values": [ "8.8.4.4" ] # inherited from folders/222 } } }
継承された値をオーバーライドする
優先 DNS サーバー設定の folders/333
のローカル設定値を変更すると、有効な値が変更されます。たとえば、patch
メソッドを使用して、folders/333
のローカル設定値を 192.168.1.1
に更新します。詳しい手順については、ローカル設定値を変更するをご覧ください。
更新された folders/333
リソースで describe
メソッドを使用すると、現時点での有効な値は、192.168.1.1
になることが確認できます。
{ "name": "folders/333/settings/net-preferredDnsServers", "effectiveValue": { "stringSetValue": { "values": [ "192.168.1.1" ] # set on folders/333 } } }
継承値に戻す
リソースが親からローカル値を継承するような動作を元に戻すには、クエリにローカル値を設定していない API patch
メソッドを使用するか、gcloud CLI の unset-value
コマンドを使用します。詳しい手順については、ローカル設定値を変更するをご覧ください。
たとえば、folders/333
でローカル値の設定を解除すると、最も近い親リソース folders/222
から有効な値が再度継承されます。更新された folders/333
リソースで describe
メソッドを使用すると、現時点での有効な値は、8.8.4.4
になることが確認できます。
{ "name": "folders/333/settings/net-preferredDnsServers", "effectiveValue": { "stringSetValue": { "values": [ "8.8.4.4" ] # inherited from folders/222 } } }