역할 및 권한

이 페이지에서는 IAM 권한 모음인 Identity and Access Management(IAM) 역할에 대해 설명합니다.

역할에는 Google Cloud 리소스에서 특정 작업을 수행할 수 있는 일련의 권한이 포함되어 있습니다. 사용자, 그룹, 서비스 계정을 포함하여 주 구성원에게 권한을 제공하려면 주 구성원에게 역할을 부여합니다.

시작하기 전에

역할 유형

IAM에는 다음과 같은 세 가지 유형의 역할이 있습니다.

  • 기본 역할: IAM 도입 전에 있었던 기존의 소유자, 편집자, 뷰어 역할이 포함됩니다.
  • 사전 정의된 역할: 특정 서비스에 대한 세분화된 액세스 권한을 제공하며, Google Cloud에서 관리합니다.
  • 커스텀 역할: 사용자 지정 권한 목록에 따라 세분화된 액세스 권한을 제공합니다.

기본, 사전 정의, 커스텀 역할에 권한이 포함되어 있는지 확인하려면 다음 방법 중 하나를 사용하면 됩니다.

역할 구성요소

각 역할에는 다음과 같은 구성요소가 있습니다.

  • 제목: 사람이 읽을 수 있는 역할 이름입니다. 역할 이름은 Google Cloud 콘솔에서 역할을 식별하는 데 사용됩니다.
  • 이름: 다음 형식 중 하나를 따르는 역할 식별자입니다.

    • 사전 정의된 역할: roles/SERVICE.IDENTIFIER
    • 프로젝트 수준 커스텀 역할: projects/PROJECT_ID/roles/IDENTIFIER
    • 조직 수준 커스텀 역할: organizations/ORG_ID/roles/IDENTIFIER

    역할 이름은 허용 정책에서 역할을 식별하는 데 사용됩니다.

  • ID: 역할의 고유한 식별자입니다. 기본 역할 및 사전 정의된 역할에서는 ID가 역할 이름과 동일합니다. 커스텀 역할의 경우 ID는 역할 이름에서 roles/ 다음에 오는 모든 문자입니다.

  • 설명: 사람이 읽을 수 있는 역할 설명입니다.

  • 단계: 출시 수명 주기에서 역할의 단계입니다(예: ALPHA, BETA 또는 GA). 출시 단계에 대해 자세히 알아보려면 테스트 및 배포를 참조하세요.

  • 권한: 역할에 포함된 권한입니다. 권한이 있는 주 구성원은 Google Cloud 리소스에서 특정 작업을 수행할 수 있습니다. 주 구성원에게 역할을 부여하면 주 구성원이 역할의 모든 권한을 얻게 됩니다.

    권한 형식은 다음과 같습니다.

    SERVICE.RESOURCE.VERB
    

    예를 들어 compute.instances.list 권한이 있는 사용자는 자신이 소유한 Compute Engine 인스턴스를 나열할 수 있고, compute.instances.stop 권한이 있는 사용자는 VM을 중지할 수 있습니다.

    권한은 일반적으로 REST 메서드와 1:1로 상응하지만 항상 그렇지는 않습니다. 다시 말해, 각 Google Cloud 서비스에는 보유하고 있는 REST 메서드마다 연결된 권한이 있습니다. 메서드를 호출하려면 호출자에게 연결된 권한이 필요합니다. 예를 들어 Pub/Sub API의 projects.topics.publish 메서드를 호출하려면 pubsub.topics.publish 권한이 필요합니다.

  • ETag: 동시 업데이트가 서로를 덮어쓰지 않도록 방지하는 역할 버전에 대한 식별자입니다. 기본 역할 및 사전 정의된 역할에는 항상 ETag AA==가 있습니다. 커스텀 역할의 ETag는 역할을 수정할 때마다 변경됩니다.

기본 역할

기본 역할은 IAM 도입 전에도 있었던 높은 권한이 있는 역할입니다. 원래 이름은 기본(primitive) 역할이었습니다. 기본 역할을 사용하여 Google Cloud 리소스에 대한 광범위한 액세스 권한을 주 구성원에게 부여할 수 있습니다.

기본 역할을 주 구성원에게 부여하면 주 구성원이 기본 역할의 모든 권한을 얻습니다. 또한 서비스가 기본 역할을 가진 주 구성원에게 제공하는 모든 권한(예: Cloud Storage 단축값BigQuery 특수 그룹 멤버십을 통해 얻은 권한)을 얻습니다.

다음 표에는 기본 역할이 모든 Google Cloud 서비스에서 사용자에게 부여하는 권한이 요약되어 있습니다.

기본 역할 권한
뷰어(roles/viewer)

상태에 영향을 주지 않는 읽기 전용 작업에 대한 권한이 있습니다. 예를 들면 기존 리소스 또는 데이터의 조회(수정 제외)가 여기에 해당합니다.

뷰어 역할의 권한 목록은 Google Cloud 콘솔의 역할 세부정보를 참조하세요.

뷰어 역할로 이동

편집자(roles/editor)

모든 뷰어 권한에 더해 기존 리소스 변경과 같이 상태를 변경하는 작업에 대한 권한까지 포함됩니다.

편집자 역할의 권한을 통해 대부분의 Google Cloud 서비스에 대한 리소스를 만들고 삭제할 수 있습니다. 그러나 편집자 역할에는 모든 서비스에 대한 모든 작업을 수행할 수 있는 권한이 없습니다. 역할에 필요한 권한이 부여되었는지 확인하는 방법은 이 페이지의 역할 유형을 참조하세요.

편집자 역할의 권한 목록은 Google Cloud 콘솔에서 역할 세부정보를 참조하세요.

편집자 역할로 이동

소유자(roles/owner)

모든 편집자 권한 다음과 같은 작업 권한

  • App Engine 애플리케이션 만들기와 같은 민감한 작업 완료
  • 프로젝트 및 프로젝트 내의 모든 리소스에 대한 역할 및 관리
  • 프로젝트에 결제 설정

소유자 역할의 권한 목록은 Google Cloud 콘솔에서 역할 세부정보를 참조하세요.

소유자 역할로 이동

Google Cloud 콘솔, API, gcloud CLI를 사용하여 기본 역할을 부여할 수 있습니다. 그러나 조직 외부의 사용자에게 프로젝트의 소유자 역할을 부여하려면 gcloud CLI가 아닌 Google Cloud 콘솔을 사용해야 합니다. 조직에 속하지 않은 프로젝트의 경우 Google Cloud 콘솔을 사용하여 소유자 역할을 부여해야 합니다.

자세한 내용은 액세스 권한 부여, 변경, 취소를 참조하세요.

사전 정의된 역할

IAM은 기본 역할 외에도 특정 Google Cloud 리소스에 세분화된 액세스 권한을 부여하는 사전 정의된 역할을 추가로 제공합니다. 이러한 역할은 Google에서 만들고 유지관리합니다. Google은 Google Cloud가 새 기능이나 서비스를 추가하는 경우와 같이 필요에 따라 권한을 자동으로 업데이트합니다.

리소스 계층 구조의 모든 수준에서 동일한 사용자에게 여러 역할을 부여할 수 있습니다. 예를 들어 한 사용자가 한 프로젝트의 Compute 네트워크 관리자 역할과 로그 뷰어 역할을 가지고 해당 프로젝트 내의 Pub/Sub 주제에 대한 Pub/Sub 게시자 역할도 부여받을 수 있습니다. 역할에 포함된 권한 목록은 역할 메타데이터 보기를 참조하세요.

가장 적절한 사전 정의된 역할을 선택하는 데 도움이 필요하면 사전 정의된 역할 선택을 참조하세요.

사전 정의된 역할 목록은 역할 참조를 확인하세요.

커스텀 역할

IAM을 사용하면 커스텀 IAM 역할도 만들 수 있습니다. 커스텀 역할은 조직의 주 구성원이 필요한 권한만 갖도록 하는 데 도움이 되므로 이 역할을 사용하면 최소 권한의 원칙을 적용할 수 있습니다.

커스텀 역할은 사용자가 정의하며 지원되는 권한을 사용자의 필요에 맞도록 하나 이상 결합할 수 있습니다. 커스텀 역할을 만들 때 조직 또는 프로젝트를 선택해야 합니다. 그런 다음 조직 또는 프로젝트에 대한 커스텀 역할과 해당 조직 또는 프로젝트 내의 모든 리소스에 대한 커스텀 역할을 부여할 수 있습니다.

생성한 프로젝트 또는 조직 내에서만 커스텀 역할을 부여할 수 있습니다. 다른 프로젝트나 조직 또는 다른 프로젝트나 조직 내의 리소스에는 커스텀 역할을 부여할 수 없습니다.

지원되는 IAM 권한을 하나 이상 결합하여 커스텀 역할을 만들 수 있습니다.

지원되는 권한

커스텀 역할에 많은 IAM 권한을 포함할 수 있지만 전부는 아닙니다. 역할마다 커스텀 역할에 사용할 수 있는 다음 지원 수준 중 하나가 있습니다.

지원 수준 설명
SUPPORTED 커스텀 역할에서 완전히 지원되는 권한입니다.
TESTING Google에서는 커스텀 역할과의 호환성을 확인할 수 있는 권한을 테스트하고 있습니다. 커스텀 역할에 권한을 포함할 수 있지만 예기치 않은 동작이 발생할 수 있습니다. 프로덕션용으로 권장되지 않습니다.
NOT_SUPPORTED 커스텀 역할에서 지원되지 않는 권한입니다.

조직 수준 커스텀 역할에는 커스텀 역할에서 지원되는 IAM 권한이 포함될 수 있습니다. 프로젝트 수준 커스텀 역할에는 조직이나 폴더 수준에서만 사용할 수 있는 권한을 제외한 지원되는 모든 권한이 포함될 수 있습니다.

프로젝트 수준 역할에 폴더별 및 조직별 권한을 포함할 수 없는 이유는 프로젝트 수준에서 부여했을 때 아무 작업도 수행하지 않기 때문입니다. Google Cloud의 리소스가 계층적으로 정리되기 때문입니다. 권한은 리소스 계층 구조를 통해 상속됩니다. 즉, 리소스 및 리소스의 모든 하위 항목에 적용됩니다. 그러나 조직과 폴더는 항상 Google Cloud 리소스 계층 구조의 프로젝트 위에 있습니다. 따라서 프로젝트 수준에서 부여된 권한은 폴더 또는 조직에 액세스할 수 없습니다. 따라서 폴더별 및 조직별 권한(예: resourcemanager.folders.list)은 프로젝트 수준 커스텀 역할에 유효하지 않습니다.

커스텀 역할을 사용해야 하는 경우

대부분의 경우 커스텀 역할 대신 사전 정의된 역할을 사용할 수 있습니다. 사전 정의된 역할은 Google에서 유지관리하며, Google Cloud에 새 권한, 기능, 서비스가 추가되면 자동으로 업데이트됩니다. 반면, 커스텀 역할은 Google에서 유지관리하지 않습니다. Google Cloud가 새 권한, 기능, 서비스를 추가할 때 커스텀 역할은 자동으로 업데이트되지 않습니다.

그러나 다음과 같은 경우에는 커스텀 역할을 만드는 것이 좋습니다.

  • 주 구성원에게 권한이 필요하지만, 해당 권한이 포함된 각 사전 정의된 역할에는 주 구성원이 필요하지 않거나 주 구성원을 가질 수 없는 권한도 포함됩니다.
  • 역할 권장사항을 사용하여 과도한 권한이 부여된 역할 부여를 더 적절한 역할 부여로 바꿉니다. 경우에 따라 커스텀 역할 만들기 권장사항이 표시될 수 있습니다.

다음 제한사항에 유의하세요.

  • 커스텀 역할에는 최대 3,000개의 권한이 포함될 수 있습니다. 또한 커스텀 역할의 제목, 설명, 권한 이름의 최대 총 크기는 64KB입니다.
  • 만들 수 있는 커스텀 역할 수에는 제한이 있습니다.

    • 조직에 최대 300개의 조직 수준 커스텀 역할을 만들 수 있습니다.
    • 조직의 각 프로젝트에서 프로젝트 수준 커스텀 역할을 최대 300개까지 만들 수 있습니다.

권한 종속 항목

일부 권한은 함께 부여된 경우에만 적용됩니다. 예를 들어 허용 정책을 업데이트하려면 정책을 읽고 쓰기 전에 정책을 읽어야 합니다. 따라서 허용 정책을 업데이트하려면 대부분의 경우 setIamPolicy 권한 외에 해당 서비스와 리소스 유형에 대해 getIamPolicy 권한이 필요합니다.

커스텀 역할의 효과적으로 사용하기 위해 유사한 권한이 부여된 사전 정의된 역할을 기반으로 커스텀 역할을 만들 수 있습니다. 사전 정의된 역할은 특정 작업을 염두에 두고 설계되었으며 이러한 작업을 수행하는 데 필요한 모든 권한을 포함합니다. 이러한 역할을 검토하면 일반적으로 함께 부여되는 권한을 확인할 수 있습니다. 그런 다음 이 정보를 사용하여 효과적인 커스텀 역할을 설계할 수 있습니다.

사전 정의된 역할을 기반으로 커스텀 역할을 만드는 방법을 알아보려면 커스텀 역할 만들기 및 관리를 참조하세요.

커스텀 역할 수명주기

다음 섹션에서는 커스텀 역할 수명 주기의 각 단계에 대한 주요 고려사항을 설명합니다. 이 정보를 사용하여 커스텀 역할 생성 및 관리 방법을 알릴 수 있습니다.

생성

커스텀 역할을 만들 때는 역할을 식별하는 데 도움이 되는 ID, 제목, 설명을 선택하세요.

  • 역할 ID: 역할 ID는 역할의 고유 식별자입니다. 최대 64바이트 길이에 대문자 및 소문자 영숫자 문자, 밑줄, 마침표를 포함할 수 있습니다. 조직 또는 프로젝트 내에서 역할 ID를 재사용할 수 없습니다.

    역할 ID는 변경할 수 없으므로 신중하게 선택해야 합니다. 커스텀 역할을 삭제할 수 있지만, 44일간의 삭제 프로세스가 완료될 때까지 동일한 조직 또는 프로젝트에서 동일한 ID로 새 커스텀 역할을 만들 수 없습니다. 삭제 프로세스에 대한 자세한 내용은 커스텀 역할 삭제를 참조하세요.

  • 역할 제목: 역할 이름은 Google Cloud 콘솔의 역할 목록에 표시됩니다. 이름은 고유하지 않아도 되지만, 가급적 고유하고 구체적인 제목을 사용하여 역할을 효과적으로 구분하는 것이 좋습니다. 또한 역할이 조직 수준에서 생성되었는지 프로젝트 수준에서 생성되었는지 여부를 역할 제목에 표시하는 것이 좋습니다.

    역할 이름은 최대 100바이트까지 가능하며 대문자 및 소문자 영숫자 문자와 기호를 포함할 수 있습니다. 역할 이름은 언제든지 변경할 수 있습니다.

  • 역할 설명: 역할 설명은 역할에 대한 추가 정보를 제공할 수 있는 필드(선택사항)입니다. 예를 들어 역할의 의도된 역할, 역할이 생성되거나 수정된 날짜, 커스텀 역할의 기반이 되는 사전 정의된 역할을 포함할 수 있습니다. 설명은 영문 기준으로 최대 300바이트까지 가능하며 대문자 및 소문자 영숫자 문자와 기호를 포함할 수 있습니다.

또한 커스텀 역할을 만들 때 권한 종속 항목에 유의하세요.

사전 정의된 역할을 기반으로 커스텀 역할을 만드는 방법을 알아보려면 커스텀 역할 만들기 및 관리를 참조하세요.

출시

커스텀 역할에는 역할 메타데이터의 일부로 출시 단계가 포함됩니다. 커스텀 역할의 가장 일반적인 출시 단계는 ALPHA, BETA, GA입니다. 이 출시 단계는 정보 제공용으로 각 역할을 광범위하게 사용할 준비가 되었는지 확인하는 데 도움이 됩니다. 또 다른 일반적인 출시 단계는 DISABLED입니다. 이 출시 단계에서는 커스텀 역할을 사용 중지할 수 있습니다.

출시 단계를 사용하여 역할에 대한 다음 정보를 전달하는 것이 좋습니다.

  • EAP 또는 ALPHA: 이 역할은 아직 개발 중 또는 테스트 중이거나 아직 공개되지 않은 Google Cloud 서비스 또는 기능에 대한 권한을 포함합니다. 아직 광범위하게 사용할 준비가 되지 않은 역할입니다.
  • BETA: 제한적으로 테스트되었거나 일반적으로 사용할 수 없는 Google Cloud 서비스 또는 기능에 대한 권한이 포함된 역할입니다.
  • GA: 광범위하게 테스트된 역할이며, 포함된 모든 권한은 일반 안정화 버전인 Google Cloud 서비스 또는 기능에 대한 권한입니다.
  • DEPRECATED: 더 이상 사용되지 않는 역할입니다.

역할의 출시 단계를 변경하는 방법은 기존 커스텀 역할 수정을 참조하세요.

유지 관리

사용자는 커스텀 역할을 유지관리할 책임이 있습니다. 여기에는 사용자의 책임이 변경됨에 따라 역할을 업데이트하고 사용자가 추가 권한이 필요한 새 기능에 액세스할 수 있도록 역할을 업데이트하는 작업이 포함됩니다.

사전 정의된 역할을 기반으로 커스텀 역할을 기반으로 하는 경우 이러한 사전 정의된 역할을 정기적으로 확인하여 권한 변경을 확인하는 것이 좋습니다. 이러한 변경사항을 추적하면 커스텀 역할을 업데이트하는 시기와 방법을 결정하는 데 도움이 될 수 있습니다. 예를 들어 사전 정의된 역할이 새로운 미리보기 기능을 사용할 수 있는 권한으로 업데이트되었을 수 있으며 이러한 권한을 커스텀 역할에도 추가할 수 있습니다.

모니터링할 사전 정의된 역할을 더 쉽게 확인하려면 커스텀 역할의 설명 필드에 커스텀 역할의 기반이 되는 사전 정의된 역할을 나열하는 것이 좋습니다. Google Cloud 콘솔을 사용하여 Google Cloud 콘솔을 사용하여 사전 정의된 역할을 기반으로 커스텀 역할을 만들면 자동으로 이 작업을 수행합니다.

커스텀 역할의 권한 및 설명을 업데이트하는 방법을 알아보려면 기존 커스텀 역할 수정을 참조하세요.

최근에 변경된 역할과 권한을 확인하려면 권한 변경 로그를 참조하세요.

사용 중지

조직 내의 어떤 주 구성원이 더 이상 커스텀 역할을 사용하지 못하게 하려면 역할을 사용 중지할 수 있습니다. 역할을 사용 중지하려면 출시 단계를 DISABLED로 변경하세요.

사용 중지된 역할은 계속 IAM 정책에 표시되고 주 구성원에게 부여될 수 있지만 아무런 효력을 갖지 않습니다.

커스텀 역할을 사용 중지하는 방법은 커스텀 역할 사용 중지를 참조하세요.

다음 단계