리소스에 대해 부여할 수 있는 역할 보기

리소스와 관련하여 IAM 역할을 사용자에게 부여하기 전에 특정 리소스에 대해 부여할 수 있는 역할에 대해 알아두는 것이 좋습니다.

부여할 수 있는 역할 알아보기

역할에 특정 리소스 유형에 대한 권한이 포함되어 있으면 해당 리소스에 대해 또는 해당 리소스를 초월하여 역할을 부여할 수 있습니다. 예를 들어 storage.admin 역할은 storage.buckets.getstorage.objects.get API에 대한 권한을 부여하므로 저장소 버킷저장소 객체 리소스 유형에 대해서도 역할을 부여할 수 있습니다.

또한 권한이 정의된 리소스 유형을 '초월하여' 역할이 부여될 수도 있습니다. 다시 말해, GCP 리소스 계층 구조에서 하위 수준의 리소스에 대해 부여된 역할이 이보다 높은 수준의 리소스에 대해서도 부여될 수 있습니다. 예를 들어 storage.admin 역할을 저장소 버킷뿐만 아니라 프로젝트 수준 또는 조직 수준에서도 부여할 수 있습니다.

역할을 통해 부여된 권한은 특정 수준 또는 그 이하의 리소스에만 적용됩니다. 즉, 상위 수준 또는 같은 수준의 리소스에는 영향을 주지 않습니다. 또한 리소스에 대해 역할이 부여되면 역할의 이름, 설명, 역할에 포함된 다른 권한과 관계없이 해당 리소스에 적용될 수 있는 권한만 부여됩니다. 예를 들어 프로젝트 수준에서 사용자에게 resourcemanager.organizationAdmin 역할을 부여(resourcemanager.projects.list 권한을 부여)하면 사용자는 특정 프로젝트에 대한 권한만 부여받습니다. 조직의 모든 프로젝트를 나열하거나 관리하는 권한은 부여되지 않습니다. 마찬가지로 특정 Compute Engine 인스턴스에 compute.admin 역할을 할당하면 권한은 해당 인스턴스에 대해서만 부여되며 프로젝트의 다른 인스턴스에 대해서는 부여되지 않습니다.

부여 가능한 역할 나열

gcloud

특정 리소스에 적용되는 모든 역할의 목록을 반환하려면 gcloud iam list-grantable-roles 명령어를 사용합니다.

gcloud iam list-grantable-roles RESOURCE

여기에서 RESOURCE는 원하는 리소스의 완전히 정규화된 이름입니다. 예를 들어 프로젝트에 대해 부여할 수 있는 모든 역할을 반환하려면 다음을 사용합니다.

//cloudresourcemanager.googleapis.com/projects/PROJECT-ID

하위 수준의 리소스는 보다 세부적인 완전히 정규화된 이름을 갖습니다. 예를 들어 Compute Engine 인스턴스에 대해 부여할 수 있는 모든 역할을 반환하려면 다음을 사용합니다.

//compute.googleapis.com/projects/PROJECT-ID/zones/ZONE-NAME/instances/INSTANCE-ID

원하는 리소스에 따라 매우 많은 역할이 반환될 수 있습니다. 결과를 제한하려면 필터 표현식을 지정합니다.

결과값은 다음과 같습니다.

description: Full control of all Compute Engine resources.
name: roles/compute.admin
title: Compute Admin


description: Full control of Compute Engine instance resources. name: roles/compute.instanceAdmin title: Compute Instance Admin

// Additional results here...

콘솔

  1. GCP 콘솔에서 IAM 페이지를 엽니다.

    IAM 페이지 열기

  2. 페이지 상단에서 '프로젝트 선택' 드롭다운을 클릭합니다.
  3. 역할을 보려는 프로젝트 또는 조직을 선택합니다.
  4. 추가를 클릭합니다.
  5. 구성원에 구성원 이메일을 입력합니다.

역할 드롭다운은 이 리소스에서 구성원에게 부여할 수 있는 모든 역할(커스텀 역할 포함)을 표시합니다.

API

QueryGrantableRoles는 리소스에 대해 부여할 수 있는 모든 역할의 목록을 반환합니다.

요청 URL

POST https://iam.googleapis.com/v1/roles:queryGrantableRoles

요청 본문

{
    "fullResourceName": RESOURCE
}

여기에서 RESOURCE는 원하는 리소스의 완전히 정규화된 이름입니다. 예를 들어 프로젝트에 대해 부여할 수 있는 모든 역할을 반환하려면 다음을 사용합니다.

//cloudresourcemanager.googleapis.com/projects/PROJECT-ID

하위 수준의 리소스는 보다 세부적인 완전히 정규화된 이름을 갖습니다. 예를 들어 Compute Engine 인스턴스에 대해 부여할 수 있는 모든 역할을 반환하려면 다음을 사용합니다.

//compute.googleapis.com/projects/PROJECT-ID/zones/ZONE-NAME/instances/INSTANCE-ID

출력 예

{
    "roles": [
        {
            "name": "roles/compute.admin",
            "title": "Compute Admin",
            "description": "Full control of all Compute Engine resources."
        },
        {
            "name": "roles/compute.instanceAdmin",
            "title": "Compute Instance Admin (beta)",
            "description": "Full control of Compute Engine instance resources."
        }
        // Additional results here...
    ]
}

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

Cloud ID 및 액세스 관리 문서