폴더 만들기 및 관리

폴더는 Cloud Platform 리소스 계층 구조의 노드입니다. 폴더에는 프로젝트, 다른 폴더 또는 이 두 가지의 조합이 포함될 수 있습니다. 조직은 폴더를 사용하여 계층 구조의 조직 노드 아래 프로젝트를 그룹화할 수 있습니다. 예를 들어 조직에는 여러 부서가 있을 수 있고 부서마다 자체 GCP 리소스가 있을 수 있습니다. 폴더를 사용하면 부서별로 이러한 리소스를 그룹화할 수 있습니다. 폴더는 공통 IAM 정책을 공유하는 리소스를 그룹화하는 데 사용됩니다. 한 폴더는 폴더 또는 리소스를 여러 개 포함할 수 있지만 지정된 폴더 또는 리소스는 단 하나의 상위 항목만 가질 수 있습니다.

아래 다이어그램에서 'Company' 조직에는 두 개의 부서를 나타내는 폴더 'Dept X' 및 'Dept Y'와 두 부서에 공통되는 항목을 나타내는 폴더 'Shared Infrastructure'가 있습니다. 'Dept Y'는 두 팀으로 구성되어 있고, 팀 폴더는 다시 제품으로 구성됩니다. 'Product 1' 폴더에는 세 개의 프로젝트가 있는데, 각 프로젝트는 프로젝트에 필요한 리소스로 구성됩니다. 이를 통해 적합한 수준으로 IAM 정책 및 조직 정책에 할당할 때 유연성을 높일 수 있습니다.

폴더 계층 구조 예

폴더 수준 IAM 정책을 사용하여 폴더에 있는 리소스에 대한 액세스를 제어할 수 있습니다. 예를 들어 사용자에게 폴더에 대한 Compute 인스턴스 관리자 역할이 부여되는 경우 사용자는 폴더의 모든 프로젝트에 대한 Compute 인스턴스 관리자 역할을 갖게 됩니다.

시작하기 전에

폴더 기능은 조직 리소스가 있는 G Suite 및 Cloud ID 고객만 사용할 수 있습니다. 조직 리소스 확보에 관한 자세한 내용은 조직 만들기 및 관리를 참조하세요.

폴더를 가장 잘 사용하는 방법을 모색하고 있다면 다음을 수행하는 것이 좋습니다.

  1. IAM을 사용하여 폴더에 대한 액세스 제어를 검토합니다. 이 항목에서는 폴더와 폴더에 있는 리소스에 대해 누가 어떤 액세스 권한을 갖는지를 제어하는 방법에 대해 설명합니다.
  2. 폴더 권한을 설정하는 방법을 파악합니다. 폴더는 다양한 IAM 역할을 지원합니다. 사용자가 프로젝트 구조를 볼 수 있도록 권한을 광범위하게 설정하려면 조직 수준에서 전체 도메인에 조직 뷰어폴더 뷰어 역할을 부여합니다. 폴더 계층 구조의 분기에 대한 가시성을 제한하려면 사용자에게 표시할 폴더에 대해서만 폴더 뷰어 역할을 부여합니다.
  3. 폴더를 만듭니다. 클라우드 리소스를 구성하는 방법을 계획할 때 조직에 가장 적합한 계층 구조를 실험할 수 있는 샌드박스로 단일 폴더를 시작하는 것이 좋습니다. 폴더는 액세스 및 구성 정책에 대한 리소스와 연결 지점 간의 격리 경계라는 관점으로 보면 됩니다. 다른 부서에 속하는 리소스를 포함하는 폴더를 만들고 폴더에 대한 관리자 할당하여 관리자 권한을 위임할 수 있습니다. 또한 폴더를 사용하여 애플리케이션 또는 개발, 프로덕션, 테스트와 같이 다른 환경에 속하는 리소스를 그룹화할 수 있습니다. 중첩된 폴더를 사용하여 이러한 여러 시나리오를 모델링하세요.

위의 이미지와 같이 추가 폴더 또는 프로젝트를 포함하는 폴더를 만드는 것이 일반적입니다. 이 구조를 폴더 계층 구조라고 합니다. 폴더 계층 구조를 만들 때 다음 요소를 고려하세요.

  • 폴더는 최대 4개 수준까지 중첩할 수 있습니다.
  • 상위 폴더는 100개를 초과하는 폴더를 포함할 수 없습니다. 이는 직접 하위 폴더만 의미합니다. 이러한 하위 폴더는 추가 폴더 또는 프로젝트를 포함할 수 있습니다.
  • 폴더 표시 이름은 계층 구조의 동일한 수준 내에서 고유해야 합니다.

폴더 관리 권한 설정

폴더에 액세스하고 관리하려면 특정 사용자 그룹에 폴더별 IAM 역할을 할당해야 합니다. 이러한 역할에 대한 자세한 내용은 IAM을 사용하여 폴더에 대한 액세스 제어를 참조하세요. 또한 권장사항을 검토하는 것도 폴더 권한에 대한 최적의 구성을 파악하는 데 도움이 됩니다.

팁: 전체 조직에 대한 폴더를 관리하려면 폴더 관리자 역할이 필요합니다. 이 역할은 사용자에게 폴더에 대한 IAM 권한을 생성, 수정, 삭제, 이동, 변경할 수 있는 권한과 폴더 간에 프로젝트를 이동할 수 있는 권한을 부여합니다.

처음에는 조직 관리자가 조직에 대한 폴더 관리자 역할을 할당할 수 있습니다. 이후 이 역할에 할당되는 계정은 이 역할을 다른 계정에 부여할 수 있습니다.

폴더 권한을 설정하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud Platform Console에서 리소스 관리 페이지를 엽니다.

    리소스 관리 페이지 열기

  2. 왼쪽 상단의 조직 드롭다운 목록을 클릭하고 리소스 목록에서 조직을 선택합니다.

    조직 리소스 선택

  3. 오른쪽의 구성원 추가 입력란에 이메일 주소를 입력합니다.

  4. 역할 선택 드롭다운 목록 상자에서 리소스 관리자 카테고리로 이동하고 폴더 관리자 역할을 선택합니다.

    권한 설정

  5. 추가를 클릭하여 새 역할을 부여합니다.

gcloud

폴더는 gcloud 명령줄 도구를 사용하여 프로그래매틱 방식으로 만들 수 있습니다. 이렇게 하려면 다음 명령어를 실행하세요.

gcloud alpha resource-manager folders add-iam-policy-binding [ORGANIZATION_ID] \
--member=user:[USER_ID] \
--role=roles/resourcemanager.folderAdmin

API

요청 JSON:

request_json= '{ policy: { version: "1", bindings: [ { role: "roles/folderAdmin",
members: [ "user:admin@myorganization.com", ] }, { role: "roles/folderCreator",
members: [   "user:admin@myorganization.com", ] } , { role: "roles/folderMover",
members: [ "user:admin@myorganization.com", ] } , ] } }'

curl 요청:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v1/[ORGANIZATION_NAME]:setIamPolicy

각 항목의 의미는 다음과 같습니다.

  • [ORGANIZATION_NAME]은 IAM 정책이 설정되는 조직의 이름입니다(예: organizations/123).

폴더 만들기

폴더를 만들려면 상위 수준에서 폴더 관리자 또는 폴더 생성자 역할이 있어야 합니다. 예를 들어 조직 수준에서 폴더를 만들려면 조직 수준에 이러한 역할 중 하나가 있어야 합니다.

폴더를 만드는 과정에서 폴더에 이름을 지정해야 합니다. 폴더 이름은 다음 요구 사항을 충족해야 합니다.

  • 이름은 문자, 숫자, 공백, 하이픈, 밑줄을 포함할 수 있습니다.
  • 폴더의 표시 이름은 문자 또는 숫자로 시작하고 끝나야 합니다.
  • 이름은 30자 이하여야 합니다.
  • 이름은 상위 항목을 공유하는 다른 모든 폴더와 구분되어야 합니다.

폴더를 만드는 방법은 다음과 같습니다.

콘솔

'프로젝트 및 폴더 관리' 섹션을 사용하여 UI에서 폴더를 만들 수 있습니다.

  1. GCP Console에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지 열기

  2. 폴더 만들기를 클릭합니다.

  3. 폴더 이름 상자에 새 폴더의 이름을 입력합니다.

  4. 대상 아래에서 찾아보기를 클릭한 다음 새 폴더를 만들 조직 노드 또는 폴더를 선택합니다.

    1. 만들기를 클릭합니다.

gcloud

폴더는 gcloud 명령줄 도구를 사용하여 프로그래매틱 방식으로 만들 수 있습니다.

gcloud 명령줄 도구를 사용하여 조직 리소스 아래에 폴더를 만들려면 다음 명령어를 실행합니다.

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

상위 항목이 다른 폴더인 폴더를 만들려면 다음 명령어를 실행합니다

gcloud alpha resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

각 항목의 의미는 다음과 같습니다.

  • [DISPLAY_NAME]은 폴더의 표시 이름입니다. 상위 항목이 동일한 두 개의 폴더는 표시 이름을 공유할 수 없습니다. 표시 이름은 문자 또는 숫자로 시작하고 끝나야 하며 문자, 숫자, 공백, 하이픈, 밑줄을 포함할 수 있고 30자를 초과할 수 없습니다.
  • [ORGANIZATION_ID]는 상위 항목이 조직인 경우 상위 조직의 ID입니다.
  • [FOLDER_ID]는 상위 항목이 폴더인 경우 상위 폴더의 ID입니다.

API

폴더는 API 요청으로 만들 수 있습니다.

요청 JSON:

request_json= '{
  display_name: "[DISPLAY_NAME]"
}'

폴더 생성 curl 요청:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders?parent=[ORGANIZATION_NAME]

각 항목의 의미는 다음과 같습니다.

  • [DISPLAY_NAME]은 새 폴더의 표시 이름입니다(예: 'My Awesome Folder').
  • [ORGANIZATION_NAME]은 폴더를 만드는 조직의 이름입니다(예: organizations/123).

폴더 생성 응답:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

작업 가져오기 curl 요청:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fc.123456789

작업 가져오기 응답:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

폴더에 대한 액세스 구성

폴더에 대한 액세스를 구성하려면 상위 수준에 폴더 IAM 관리자 또는 폴더 관리자 역할이 있어야 합니다.

콘솔

  1. Google Cloud Platform Console에서 리소스 관리 페이지를 엽니다.

    리소스 관리 페이지 열기

  2. 왼쪽 상단의 조직 드롭다운 목록을 클릭한 다음 조직을 선택합니다.

  3. 권한을 변경할 프로젝트 옆에 있는 체크박스를 선택합니다.

  4. 오른쪽 정보 패널권한 아래에 추가할 구성원의 이메일 주소를 입력합니다.

  5. 역할 선택 드롭다운 목록에서 해당 구성원에게 부여할 역할을 선택합니다.

    UI 스크린샷

  6. 추가를 클릭합니다. 구성원의 새로운 역할 추가 또는 업데이트를 확인하는 알림이 나타납니다.

gcloud

gcloud 명령줄 도구 또는 API를 사용하여 프로그래매틱 방식으로 폴더에 대한 액세스를 구성할 수 있습니다.

gcloud alpha resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor

gcloud alpha resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

다른 방법은 다음과 같습니다.

gcloud alpha resource-manager \
  folders set-iam-policy [FOLDER_ID] [POLICY_FILE]

각 항목의 의미는 다음과 같습니다.

  • [FOLDER_ID]는 새 폴더의 ID입니다.
  • [POLICY_FILE]은 폴더에 대한 정책 파일의 경로입니다.

API

SetsIamPolicy는 폴더에 대한 액세스 제어 정책을 설정하여 모든 기존 정책을 대체합니다. resource 필드는 폴더의 리소스 이름이어야 합니다(예: folders/1234).

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

curl 요청:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v2/[FOLDER_NAME]:setIamPolicy

각 항목의 의미는 다음과 같습니다.

  • [FOLDER_NAME]은 IAM 정책을 설정하는 폴더의 이름입니다(예: folders/123).

폴더에서 프로젝트 만들기

폴더에서 프로젝트를 만들려면 폴더에 대한 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 있어야 합니다. 이 역할은 상위 폴더에서 상속될 수 있습니다.

콘솔

  1. Google Cloud Platform 콘솔에서 프로젝트 및 폴더 관리 페이지를 엽니다.

    Google Cloud Platform Console 열기

  2. 프로젝트 및 폴더 관리 페이지로 이동합니다.
  3. 페이지 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다.
  4. 프로젝트 만들기를 클릭합니다.
  5. 프로젝트 이름을 입력합니다.
  6. 대상 상자에서 찾아보기를 클릭하여 프로젝트를 만들려는 폴더를 선택합니다.

    폴더 선택

  7. 만들기를 클릭합니다.

gcloud

   gcloud alpha projects create [PROJECT_ID]
      --folder [FOLDER_ID]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 만들 프로젝트의 ID입니다.
  • [FOLDER_ID]는 프로젝트를 만들어야 하는 폴더의 ID입니다.

API

요청 JSON:

   request_json= ‘{
      name: “[DISPLAY_NAME]”, projectId: “[PROJECT_ID]”, parent: {id: [PARENT_ID], type: [PARENT_TYPE] }
   }’

curl 요청:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v1/projects

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 생성 중인 프로젝트의 ID입니다(예: my-awesome-proj-123).
  • [DISPLAY_NAME]은 생성 중인 프로젝트의 표시 이름입니다.
  • [PARENT_ID]는 생성 중인 상위 항목의 ID입니다(예: 123).
  • [PARENT_TYPE]은 상위 항목의 유형입니다(예: '폴더' 또는 '조직').

폴더로 프로젝트 이동

프로젝트를 폴더로 이동하려면 프로젝트, 소스, 대상 폴더에 대한 특정 IAM 역할이 필요합니다. 특히 다음 기준을 충족해야 합니다.

  1. 프로젝트에 대해 resourcemanager.projects.update 권한이 있어야 합니다. 이 권한은 일반적으로 프로젝트에 대한 프로젝트 편집자 또는 프로젝트 소유자 역할이 있는 경우 부여됩니다.

  2. 소스 폴더와 대상 폴더 모두에 대해 resourcemanager.projects.move 권한이 있어야 합니다. 일반적으로 이 권한은 프로젝트 소유자, 프로젝트 편집자, 폴더 관리자, 폴더 이동자 역할에 포함됩니다. 리소스가 폴더에 없는 경우 조직 노드에 대해 이 권한이 필요합니다.

프로젝트를 폴더로 이동하는 방법은 다음과 같습니다.

콘솔

  1. Google Cloud Platform 콘솔에서 프로젝트 및 폴더 관리 페이지를 엽니다.

    Google Cloud Platform Console 열기

  2. 페이지 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다.
  3. 프로젝트 및 폴더 목록에서 프로젝트 행을 클릭하여 프로젝트를 선택합니다. 프로젝트의 IAM 페이지로 연결되는 프로젝트 이름을 클릭하지 않아야 합니다.
  4. 행에서 옵션 메뉴(세로 생략 기호)를 클릭하고 이동을 클릭합니다.

    프로젝트 이동

  5. 찾아보기를 클릭하고 프로젝트를 이동할 폴더를 선택합니다.

  6. 이동을 클릭합니다.

gcloud

gcloud alpha projects move PROJECT_ID [OPTIONAL_FLAGS]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 이동할 프로젝트의 ID입니다.
  • [OPTIONAL_FLAGS]는 --folder | --help | --organization | -h일 수 있습니다.

프로젝트를 폴더로 이동하기 위한 정책 고려사항

프로젝트 수준에서 정의하는 IAM 정책은 자동으로 프로젝트와 함께 이동하지만 소스 또는 대상 상위 수준에서 정의하는 정책은 그렇지 않으므로 프로젝트를 폴더 안팎으로 이동하기 전에 정책의 모든 영향을 신중하게 고려해야 합니다.

프로젝트에 대한 액세스 권한을 상속한 모든 사용자는 대상 폴더에 동일한 정책이 없는 경우 해당 액세스 권한을 잃을 수 있습니다. 또한 IAM 역할이 변경되면 적절한 권한이 복원될 때까지 일부 기능이 작동하지 않을 수 있습니다.

예를 들어 폴더 A에 연결된 저장소 객체 생성자가 있는 서비스 계정을 가정해 보겠습니다. 이 폴더에는 폴더 A의 모든 프로젝트에서 Google Cloud Storage에 데이터를 업로드할 적절한 권한이 있습니다. 이제 이러한 프로젝트 중 하나가 동일한 권한이 없는 폴더 B로 이동할 때 어떤 일이 일어나는지 생각해 보세요. 해당 프로젝트에 대한 서비스 계정은 데이터를 업로드할 수 없게 되므로 서비스가 중단됩니다.

조직 정책이 소스 및 대상 폴더에서 정의되는 경우 동일한 고려사항이 적용됩니다. IAM 정책과 마찬가지로 조직 정책도 상속됩니다. 결과적으로 조직 정책이 소스 폴더와 대상 폴더 간에 일관되는지 확인해야 합니다.

조직 정책에 대해 자세히 알아보려면 조직 정책 서비스 소개를 참조하세요.

다른 폴더로 폴더 이동

폴더를 다른 폴더로 이동하려면 소스 폴더와 대상 폴더 모두에 대해 폴더 이동자 역할이 있어야 합니다.

콘솔

콘솔에서 폴더를 다른 폴더로 이동하는 과정은 프로젝트를 이동하는 과정과 유사합니다.

  1. Google Cloud Platform 콘솔에서 프로젝트 및 폴더 관리 페이지를 엽니다.

    Google Cloud Platform Console 열기

  2. 페이지 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다.
  3. 프로젝트 및 폴더 목록에서 폴더의 행을 클릭하여 폴더를 선택합니다.
  4. 행에서 옵션 메뉴(세로 생략 기호)를 클릭하고 이동을 클릭합니다.
  5. 찾아보기를 클릭하고 폴더를 이동할 대상 폴더를 선택합니다.
  6. 이동을 클릭합니다.

gcloud

폴더를 조직으로 이동하려면 gcloud 명령줄 도구에서 다음 명령어를 사용합니다.

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --organization=[PARENT_ID]

폴더를 다른 폴더로 이동하는 명령어는 다음과 같습니다.

gcloud alpha resource-manager folders move [FOLDER_ID] \
  --folder=[PARENT_ID]

각 항목의 의미는 다음과 같습니다.

  • [FOLDER_ID]는 이동할 폴더의 ID입니다.
  • [PARENT_ID]는 상위 조직 또는 폴더의 조직 ID 또는 폴더 ID입니다.

API

요청 JSON:

request_json= '{
   destinationParent: "folders/[DESTINATION_FOLDER_ID]"
}'

폴더 이동 curl 요청:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token} \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders/[DISPLAY_NAME]:move

각 항목의 의미는 다음과 같습니다.

  • [DESTINATION_FOLDER_ID]는 다른 폴더를 이동하려는 폴더의 ID입니다(예: 98765).
  • [DISPLAY_NAME]은 이동 중인 폴더의 표시 이름입니다(예: My Awesome Folder').

폴더 이동 응답:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  }
}

작업 가져오기 curl 요청:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v1/operations/fm.1234567890

작업 가져오기 응답:

{
  "name": "operations/fm.1234567890",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "MOVE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.Folder",
    "name": "folders/12345",
    "parent": "folders/98765",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-20T00:54:44.295Z"
  }
}

폴더 및 프로젝트 보기 또는 나열

폴더를 보거나 나열하려면 조직 뷰어폴더 뷰어 역할이 있어야 합니다.

폴더 및 프로젝트를 보거나 나열하는 방법은 다음과 같습니다.

콘솔

  1. Google Cloud Platform 콘솔에서 프로젝트 및 폴더 관리 페이지를 엽니다.

    프로젝트 및 폴더 관리 페이지로 이동

  2. 페이지 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다. 조직 아래 모든 프로젝트 및 폴더가 페이지에 표시됩니다. 폴더는 이 목록에 표시되기 전에 만들어야 합니다.
  3. 트리에서 행을 선택하여 폴더 또는 프로젝트별 작업을 수행합니다.

  4. 프로젝트 또는 폴더 이름/ID를 검색창에 입력하여 목록을 필터링합니다.

gcloud

폴더를 보려면 describe 명령어를 사용합니다.

   gcloud alpha resource-manager folders describe [FOLDER_ID]

   name: folders/245321 \
   parent: organizations/2518 \
   display_name: Super Fantastic Folder \
   lifecycle_state: ACTIVE \
   create_time: <timestamp info …> \
   update_time: <timestamp info …> \

각 항목의 의미는 다음과 같습니다.

  • [FOLDER_ID]는 보려는 폴더의 ID입니다.

    조직에 속한 폴더를 나열하려면 list 명령어를 사용합니다.

    gcloud alpha resource-manager folders list
    --organization [ORGANIZATION_ID]

    각 항목의 의미는 다음과 같습니다.

  • [ORGANIZATION_ID]는 하위 폴더 목록을 보려는 조직의 ID입니다.

    명령어는 지정한 조직 ID의 하위 폴더를 표시하는 표를 출력합니다.

    --folder 플래그를 사용하면 list 명령어로 다른 폴더에 속한 폴더를 나열할 수도 있습니다.

    gcloud alpha resource-manager folders list
    --folder [FOLDER_ID]

    각 항목의 의미는 다음과 같습니다.

  • [FOLDER_ID]는 하위 폴더 목록을 보려는 폴더의 ID입니다.

    조직 또는 폴더에 속한 프로젝트를 나열하려면 projects list 명령어와 filter 인수를 사용합니다.

    gcloud alpha projects list
    --filter=" parent.id: '[FOLDER_OR_ORGANIZATION_ID]' "

    각 항목의 의미는 다음과 같습니다.

  • [FOLDER_OR_ORGANIZATION_ID]는 하위 프로젝트 목록을 보려는 폴더 또는 조직의 ID입니다.

API

폴더를 가져오기 위한 curl 요청:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/[FOLDER_NAME]

각 항목의 의미는 다음과 같습니다.

  • [FOLDER_NAME]은 폴더의 이름입니다(예: folders/123).

폴더를 나열하기 위한 curl 요청:

curl -X GET -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${bearer_token}" \
  https://cloudresourcemanager.googleapis.com/v2/folders?parent=[PARENT_NAME]

각 항목의 의미는 다음과 같습니다.

  • [PARENT_NAME]은 폴더를 만드는 상위 리소스의 이름입니다(예: organizations/123 또는 folders/123).

gcloud 명령줄 인터페이스 사용

gcloud 명령줄 도구를 사용하여 폴더 API와 상호작용하기 위한 명령어는 gcloud alpha resource-manager folders 명령어 그룹에서 제공합니다.

만들기

새 폴더를 만들려면 만들려는 폴더 이름과 조직 또는 폴더 ID를 설정하는 플래그와 함께 gcloud alpha resource-manager folders create를 사용합니다.

gcloud alpha resource-manager folders create \
  --display-name="Super Fantastic Folder" \
  --organization=2518

Created Folder 245321.

보기

폴더를 보려면 보려는 폴더 ID와 함께 gcloud alpha resource-manager folders describe를 사용합니다.

gcloud alpha resource-manager folders describe 245321
name: folders/245321
parent: organizations/2518
display_name: Super Fantastic Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <timestamp info …>

목록

폴더를 폴더 아래 나열하려면 gcloud alpha resource-manager folders list를 사용하여 폴더 ID를 --folder 플래그로 전달합니다. --organization 플래그를 사용하여 최상위 폴더를 조직 아래 나열할 수도 있습니다.

gcloud alpha resource-manager folders list --folder 245321
<table output showing the folders underneath the folder with the specified ID>

gcloud alpha resource-manager folders list --organization 2518
<table output showing folders in this Organization but not in any folder>

프로젝트는 gcloud alpha projects list 명령어를 사용해 상위 폴더 또는 조직 ID를 --filter 플래그로 전달하여 나열할 수 있습니다.

gcloud alpha projects list --filter=" parent.id: '245321' "
<table output showing the projects underneath the resource with the specified ID>

업데이트

폴더는 gcloud alpha resource-manager folders update 명령어를 사용하여 업데이트할 수 있습니다. 현재 폴더의 display_name 필드만 업데이트할 수 있습니다.

gcloud alpha resource-manager folders update \
  --display-name="Mega Incredible Folder" 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

삭제

폴더는 명령줄에서 삭제 및 삭제 취소할 수 있습니다. 사용자는 폴더를 삭제할 권한을 가지려면 폴더 관리자 또는 폴더 편집자 역할을 소유해야 합니다. 비어 있는 폴더만 삭제할 수 있습니다.

gcloud alpha resource-manager folders delete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: DELETE_REQUESTED
create_time: <timestamp info …>
update_time: <recent timestamp info …>

gcloud alpha resource-manager folders undelete 245321
name: folders/245321
parent: organizations/2518
display_name: Mega Incredible Folder
lifecycle_state: ACTIVE
create_time: <timestamp info …>
update_time: <recent timestamp info …>

프로젝트 이동

프로젝트는 gcloud projects creategcloud projects move 명령어를 사용하여 폴더에서 만들고 폴더로 이동할 수 있습니다. gcloud alpha resource-manager folders move.를 사용해서 폴더를 이동할 수도 있습니다.

gcloud alpha projects create --folder=245321 fancy-folder-project
project_id: fancy-folder-project
project_number: 905283
parent:
  type: "folder"
  id: 245321
other fields …

gcloud alpha projects move --folder=245321 soon-to-be-fancy-project
project_id: soon-to-be-fancy-project
project_number: 428714
parent:
  type: "folder"
  id: 245321
other fields …

장기 실행 작업

폴더 만들기와 같은 일부 폴더 작업은 시간이 오래 걸릴 수 있습니다. 멀티태스킹을 쉽게 하기 위해 일부 폴더 명령어를 사용하면 비동기식으로 수행할 수 있습니다. 이러한 명령어는 비동기 동작을 활성화하기 위해 --async 플래그를 허용하여 작업이 완료될 때까지 기다리는 대신 장기 실행 작업을 즉시 반환하도록 합니다. gcloud alpha resource-manager operations describe 명령어를 사용하여 이 작업을 폴링할 수 있습니다. 현재 folders create 명령어와 folders move 명령어만 비동기 사용이 허용됩니다.

gcloud alpha resource-manager folders create \
  --display-name="Awe-Inspiring Async Folder" \
  --organization=2518 \
  --async

name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: false

[wait for some time …]

gcloud alpha resource-manager operations describe fc.8572
name: operations/fc.8572
metadata:
  operation_type: CREATE
  display_name: Awe-Inspiring Async Folder
  destination_parent: organizations/2518
done: true
response:
  name: folders/6428
  parent: organizations/2518
  display_name: Awe-Inspiring Async Folder
  lifecycle_state: ACTIVE
  create_time: <recent timestamp info …>
  update_time: <recent timestamp info …>
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Resource Manager 문서