이 페이지에서는 IAM 권한 모음인 Identity and Access Management(IAM) 역할에 대해 설명합니다.
역할에는 Google Cloud 리소스에서 특정 작업을 수행할 수 있는 일련의 권한이 포함되어 있습니다. 사용자, 그룹, 서비스 계정을 포함하여 주 구성원에게 권한을 제공하려면 주 구성원에게 역할을 부여합니다.
시작하기 전에
- IAM의 기본 개념 이해
역할 유형
IAM에는 다음과 같은 세 가지 유형의 역할이 있습니다.
- 기본 역할: IAM 도입 전에 있었던 기존의 소유자, 편집자, 뷰어 역할이 포함됩니다.
- 사전 정의된 역할: 특정 서비스에 대한 세분화된 액세스 권한을 제공하며, Google Cloud에서 관리합니다.
- 커스텀 역할: 사용자 지정 권한 목록에 따라 세분화된 액세스 권한을 제공합니다.
기본, 사전 정의, 커스텀 역할에 권한이 포함되어 있는지 확인하려면 다음 방법 중 하나를 사용하면 됩니다.
Google Cloud 콘솔에서 역할을 확인합니다.
gcloud iam roles describe
명령어를 실행합니다.적절한 REST API 메서드를 사용하여 역할을 가져옵니다.
- 사전 정의된 역할에는
roles.get()
을 사용합니다. - 프로젝트 수준 커스텀 역할에는
projects.roles.get()
을 사용합니다. - 조직 수준 커스텀 역할에는
organizations.roles.get()
을 사용합니다.
- 사전 정의된 역할에는
기본 및 사전 정의된 역할만 해당: 권한 참조를 검색하여 권한이 역할에서 부여되었는지 확인합니다.
사전 정의된 역할만 해당: 사전 정의된 역할 설명을 검색하여 역할에 포함된 권한을 확인합니다.
역할 구성요소
각 역할에는 다음과 같은 구성요소가 있습니다.
- 제목: 사람이 읽을 수 있는 역할 이름입니다. 역할 이름은 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 ) |
모든 편집자 권한 및 다음과 같은 작업 권한
소유자 역할에는 모든 Google Cloud 리소스에 대한 모든 권한이 포함되어 있지 않습니다. 예를 들어 Cloud Billing 결제 정보를 수정하거나 IAM 거부 정책을 만들 수 있는 권한은 포함되지 않습니다. 소유자 역할의 권한 목록은 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 정책에 표시되고 주 구성원에게 부여될 수 있지만 아무런 효력을 갖지 않습니다.
커스텀 역할을 사용 중지하는 방법은 커스텀 역할 사용 중지를 참조하세요.
다음 단계
- 주 구성원에게 IAM 역할을 부여하는 방법 알아보기
- 가장 적합한 사전 정의된 역할 선택 방법 찾아보기
- 커스텀 역할을 만드는 방법 알아보기
- 정책 문제해결 도구를 사용하여 사용자에게 리소스에 대한 액세스 권한 또는 API 호출 권한이 포함되거나 포함되지 않는 이유 알아보기