리소스 설정 관리

이 가이드에서는 리소스 설정을 관리하는 방법을 설명합니다. Resource Settings을 사용하여 Google Cloud 프로젝트, 폴더, 조직의 설정을 중앙에서 구성할 수 있습니다. 각 리소스 설정을 사용하면 지원되는 서비스의 요소를 제어할 수 있습니다.

시작하기 전에

리소스 설정과 작동 방식에 대한 자세한 내용은 Resource Settings 개요를 참조하세요.

API 사용 설정

개별 프로젝트에 Resource Settings API를 사용 설정할 수 있습니다.

Google Cloud 콘솔

Resource Settings API를 사용 설정하려면 다음 단계별 안내를 따르세요.

API 및 서비스로 이동

  1. API에 액세스하는 데 사용할 프로젝트를 선택합니다.
  2. API 및 서비스 사용 버튼을 클릭합니다.
  3. 'Resource Settings'을 검색합니다.
  4. 검색결과에서 'Resource Settings API'를 클릭합니다.
  5. 'API 사용 설정됨'이 표시되면 API가 이미 사용 설정된 것입니다. 그렇지 않으면 사용 설정 버튼을 클릭합니다.

gcloud

Resource Settings API를 사용 설정하려면 gcloud services enable 명령어를 사용합니다.

gcloud services enable resourcesettings.googleapis.com

필수 권한

필요한 권한은 수행할 작업에 따라 달라집니다.

원하는 권한을 얻으려면 관리자에게 리소스 계층 구조의 적절한 수준에서 제안된 역할을 부여해 달라고 요청하세요.

리소스 설정 보기

리소스에 사용할 수 있는 리소스 설정과 리소스에 대한 로컬 및 유효한 설정 값을 보려면 Resource Settings 뷰어 역할(roles/resourcesettings.viewer) 또는 다음 권한이 포함된 다른 역할이 필요합니다.

  • resourcesettings.settings.get
  • resourcesettings.settings.list

리소스 설정 관리자

리소스에서 리소스 설정 값을 생성, 업데이트, 삭제하려면 Resource Settings 관리자 역할(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
    }
  }
}