이 문서에서는 Resource Manager를 사용하여 관리 경계 및 기능 구성을 설정하고 관리하는 방법을 설명합니다. 관리 경계를 사용하면 에이전트 레지스트리에 대해 프로젝트 간 리소스 탐색 및 거버넌스를 수행할 수 있습니다.
시작하기 전에
경계 및 기능 구성을 구성하기 전에 필요한 역할을 가져오고 필요한 API를 사용 설정합니다.
필요한 역할
경계 및 기능을 구성하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
경계 및 기능 구성 생성, 업데이트, 삭제: 대상 폴더 또는 조직의 Resource Manager 편집자 (
roles/resourcemanager.editor)(사용자 관리형 관리 프로젝트를 제공하는 경우 관리 프로젝트) -
경계 및 기능 구성 보기: 대상 폴더 또는 조직에 대한 Resource Manager 뷰어 (
roles/resourcemanager.viewer) - 멤버 프로젝트에 태그 연결:
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
API 사용 설정
Resource Manager API를 사용 설정하려면
gcloud services enable명령어를 사용합니다.gcloud services enable cloudresourcemanager.googleapis.com \ --project=PROJECT_IDPROJECT_ID를 프로젝트의 ID로 바꿉니다.
관리 경계 설정
다음 두 가지 방법 중 하나로 폴더 또는 조직에 관리 경계를 설정할 수 있습니다.
- 폴더 전체 또는 조직 전체 경계 (태그 필터 없음): 폴더 또는 조직의 모든 하위 프로젝트를 포함합니다. 1단계와 4단계를 건너뛰고 2단계: 경계 만들기(
--tag-key및--tag-value제외)와 3단계: 기능 구성 만들기만 완료합니다. - 태그 기반 경계: 폴더 또는 조직의 프로젝트를 태그 값으로 파티션을 나눕니다. 아래의 네 단계를 모두 완료하세요.
1단계: 파티셔닝 태그 키 구성
태그 필터 없이 폴더 전체 또는 조직 전체 경계를 만드는 경우 이 단계를 건너뜁니다. 기본적으로 BoundaryConfig 리소스에는 태그 키가 구성되어 있지 않습니다.
태그 기반 경계의 경우 BoundaryConfig 리소스는 폴더 또는 조직 내에서 프로젝트를 파티셔닝하는 데 사용되는 태그 키를 설정합니다. 태그 기반 경계를 만들기 전에 이 리소스를 구성하세요.
파티셔닝 태그 키를 설정하려면 gcloud resource-manager boundary-configs update 명령어를 사용합니다.
gcloud resource-manager boundary-configs update \
--folder=FOLDER_ID \
--tag-key=TAG_KEY_NAME
조직에서 태그 키를 구성하려면 --folder 대신 --organization=ORGANIZATION_ID를 지정합니다.
이전에 태그 키를 구성했고 태그가 지정되지 않은 경계로 전환하려는 경우 (상위 요소 아래에 경계가 없는 경우) --tag-key 대신 --clear-tag-key를 사용하여 이 명령어를 실행합니다.
다음을 바꿉니다.
FOLDER_ID: 상위 폴더의 IDTAG_KEY_NAME: 태그 키의 이름으로,ORGANIZATION_ID/TAG_KEY_SHORT_NAME형식입니다(예:123456789012/env).
2단계: 경계 만들기
폴더 또는 조직에 Boundary 리소스를 만듭니다.
태그 필터 없이 폴더 전체 경계를 만들려면 (폴더의 모든 하위 프로젝트가 자동으로 포함됨) --tag-key 및 --tag-value 없이 gcloud resource-manager boundaries create 명령어를 사용합니다.
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary"
1단계에서 파티셔닝 태그 키를 구성한 후 태그 기반 경계를 만들려면 --tag-key 및 --tag-value 플래그를 포함합니다.
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary" \
--tag-key=TAG_KEY_NAME \
--tag-value=TAG_VALUE_SHORT_NAME
조직에서 경계를 만들려면 --folder 대신 --organization=ORGANIZATION_ID를 지정합니다.
다음을 바꿉니다.
BOUNDARY_ID: 경계의 고유 ID입니다(예:prod-boundary).FOLDER_ID: 상위 폴더의 IDTAG_KEY_NAME: 구성한 태그 키(예:123456789012/env)TAG_VALUE_SHORT_NAME: 프로젝트가 경계에 조인하기 위해 가져야 하는 태그 값(예:prod)
3단계: 기능 구성 만들기
CapabilityConfig 리소스를 만들어 경계를 관리 프로젝트에 연결하고 경계 전반에서 관리되는 서비스를 선언합니다.
기능 구성을 만들려면 gcloud resource-manager capability-configs create 명령어를 사용하고 에이전트 레지스트리에 --types=agent-management를 지정합니다.
gcloud resource-manager capability-configs create \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--types=agent-management \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID \
--display-name="DISPLAY_NAME"
조직에서 기능 구성을 만들려면 --folder 대신 --organization=ORGANIZATION_ID를 지정합니다.
다음을 바꿉니다.
CAPABILITY_CONFIG_ID: 기능 구성의 고유 ID(예:prod-capabilities)FOLDER_ID: 상위 폴더의 IDBOUNDARY_ID: 만든 경계의 IDDISPLAY_NAME: 인간이 읽을 수 있는 표시 이름
경계가 없는 단일 독립형 프로젝트에서 기능을 사용 설정하려면 1, 2, 4단계를 건너뛰고 --folder 및 --boundaries 대신 --project=PROJECT_NUMBER 및 --management-project=projects/PROJECT_NUMBER를 사용하여 이 명령어를 실행합니다.
기존 프로젝트를 관리 프로젝트로 사용하려면 --management-project=projects/PROJECT_NUMBER 플래그를 전달합니다.
지정하는 프로젝트는 다음 요구사항을 충족해야 합니다. 그렇지 않으면 명령어가 오류와 함께 실패합니다.
CapabilityConfig리소스와 동일한 상위 요소(folders/FOLDER_ID또는organizations/ORGANIZATION_ID) 바로 아래에 있습니다.ACTIVE수명 주기 상태여야 합니다.- 관리 프로젝트로 지정되지 않음
--management-project를 생략하면 Resource Manager가 상위 폴더 또는 조직 바로 아래에 전용 관리 프로젝트를 자동으로 프로비저닝합니다.
CapabilityConfig 리소스를 만들면 관리 프로젝트에서 해당 서비스 API가 자동으로 사용 설정됩니다 (예: agent-management를 지정할 때 agentregistry.googleapis.com). 관리 프로젝트에서 이러한 API를 수동으로 사용 설정할 필요가 없습니다.
4단계: 구성원 프로젝트에 태그 연결
태그 필터 없이 폴더 전체 또는 조직 전체 경계를 만든 경우 모든 하위 프로젝트가 자동으로 포함되므로 이 단계를 건너뜁니다.
태그 기반 경계의 경우 일치하는 태그 값을 프로젝트에 바인딩하면 프로젝트가 관리 경계에 동적으로 조인됩니다.
경계에 속하는 각 프로젝트에 태그를 연결하려면 gcloud resource-manager tags bindings create 명령어를 사용합니다.
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
다음을 바꿉니다.
TAG_VALUE_NAME: 태그 값 이름(예:123456789012/env/prod)PROJECT_NUMBER: 경계에 포함할 프로젝트의 프로젝트 번호 (또는 프로젝트 ID)
기능 구성 관리
기능 구성을 나열, 설명, 업데이트, 삭제할 수 있습니다. 이 섹션의 예시에서는 --folder=FOLDER_ID를 사용합니다. 조직 또는 프로젝트에서 기능 구성을 관리하려면 --folder 대신 --organization=ORGANIZATION_ID 또는 --project=PROJECT_NUMBER를 지정합니다(경계는 폴더 수준 또는 조직 수준 기능 구성에만 연결할 수 있음).
기능 구성 나열
폴더의 모든 기능 구성을 나열하려면 gcloud resource-manager capability-configs list 명령어를 사용합니다.
gcloud resource-manager capability-configs list \
--folder=FOLDER_ID
기능 구성 설명
구성 세부정보와 할당된 관리 프로젝트를 보려면 gcloud resource-manager capability-configs describe 명령어를 사용합니다.
gcloud resource-manager capability-configs describe \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID
연결된 경계 업데이트
기능 구성에 연결된 경계를 업데이트하려면 gcloud resource-manager capability-configs update 명령어를 사용합니다.
gcloud resource-manager capability-configs update \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID_1,folders/FOLDER_ID/boundaries/BOUNDARY_ID_2
update 명령어는 또한 --types 및 --display-name 플래그를 허용하여 사용 설정된 기능 유형 또는 표시 이름을 업데이트합니다.
기능 구성 삭제
경계가 연결되어 있는 동안에는 CapabilityConfig 리소스를 삭제할 수 없으며 CapabilityConfig 리소스에 연결되어 있는 동안에는 Boundary 리소스를 삭제할 수 없습니다.
프로젝트 간 관리가 더 이상 필요하지 않을 때 기능 구성을 삭제하려면 다음 안내를 따르세요.
연결된 경계를 분리하려면
gcloud resource-manager capability-configs update명령어를--clear-boundaries플래그와 함께 사용합니다.gcloud resource-manager capability-configs update \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID \ --clear-boundaries기능 구성을 삭제하려면
gcloud resource-manager capability-configs delete명령어를 사용합니다.gcloud resource-manager capability-configs delete \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID