체크포인트
Create a custom role using a YAML file
/ 20
Create a custom role using flags
/ 20
Update a custom role using a YAML file
/ 15
Update a custom role using flags
/ 15
Disabling a custom role
/ 15
Undeleting a custom role
/ 15
IAM 커스텀 역할
GSP190
개요
Cloud IAM은 고도의 자동화를 통해 최대한 쉽게 리소스 권한을 관리할 수 있는 적절한 도구를 제공합니다. Cloud IAM을 사용하면 관리자가 사용자에게 권한을 직접 부여하지 않아도 됩니다. 대신 하나 이상의 권한이 결합된 역할을 부여합니다. 이를 통해 사내 직무를 그룹 및 역할로 매핑할 수 있어 사용자의 액세스 권한이 업무에 필요한 부분으로 한정되며, 관리자는 전체 사용자 그룹에 기본 권한을 쉽게 부여할 수 있습니다.
Cloud IAM에는 두 가지 역할이 있습니다.
- 사전 정의된 역할
- 커스텀 역할
사전 정의된 역할은 Google에서 만들고 유지관리합니다. Google Cloud에 새로운 기능이나 서비스가 추가되는 경우와 같이 필요에 따라 권한이 자동으로 업데이트됩니다.
커스텀 역할은 사용자가 정의하는 역할로, 지원되는 권한을 사용자의 구체적인 니즈에 맞게 하나 이상 결합할 수 있습니다. 커스텀 역할은 Google에서 유지관리하지 않습니다. 즉, Google Cloud에 새로운 권한, 기능, 서비스가 추가되어도 커스텀 역할은 자동으로 업데이트되지 않습니다. 사용 가능한 Cloud IAM 권한을 하나 이상 결합하여 커스텀 역할을 만들면 권한이 있는 사용자가 Google Cloud 리소스에서 특정 작업을 수행할 수 있습니다.
학습할 내용
이 실습에서는 커스텀 역할을 만들고, 업데이트하고, 삭제하며, 복원해 봅니다.
기본 요건
IAM 역할에 대해 잘 알고 있으면 학습 내용을 이해하는 데 큰 도움이 됩니다.
설정 및 요건
실습 시작 버튼을 클릭하기 전에
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
- 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
- 실습을 완료하기에 충분한 시간---실습을 시작하고 나면 일시중지할 수 없습니다.
실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
- Google Cloud 콘솔 열기 버튼
- 남은 시간
- 이 실습에 사용해야 하는 임시 사용자 인증 정보
- 필요한 경우 실습 진행을 위한 기타 정보
-
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다. -
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
{{{user_0.username | "Username"}}} 실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
-
다음을 클릭합니다.
-
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
{{{user_0.password | "Password"}}} 실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
-
다음을 클릭합니다.
중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다. -
이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 체험판을 신청하지 않습니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
Cloud Shell 활성화
Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
- Google Cloud 콘솔 상단에서 Cloud Shell 활성화 를 클릭합니다.
연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 PROJECT_ID로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.
gcloud
는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
- (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
-
승인을 클릭합니다.
-
다음과 비슷한 결과가 출력됩니다.
출력:
- (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
출력:
출력 예시:
gcloud
전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참조하세요.
프로젝트의 리전 설정
다음 명령어를 실행하여 프로젝트의 리전을 설정합니다.
IAM 커스텀 역할 소개
Cloud IAM을 사용하면 맞춤설정된 Cloud IAM 역할을 만들 수 있습니다. 하나 이상의 권한이 있는 커스텀 Cloud IAM 역할을 만들고 이를 사용자에게 부여할 수 있습니다. Cloud IAM은 커스텀 역할을 만들고 관리하는 데 필요한 UI 및 API를 제공합니다.
요점: 커스텀 역할을 사용하면 최소 권한의 원칙을 적용하여 조직의 사용자 및 서비스 계정에 의도된 목적을 달성하는 데 필요한 권한만 부여할 수 있습니다.
사용 가능한 Cloud IAM 권한을 하나 이상 결합하여 커스텀 역할을 만들면 권한이 있는 사용자가 Google Cloud 리소스에서 특정 작업을 수행할 수 있습니다.
Cloud IAM 환경에서 권한은 다음 형식으로 표시됩니다.
예를 들어 compute.instances.list
권한을 통해 사용자는 소유한 Compute Engine 인스턴스를 나열할 수 있으며, compute.instances.stop
권한을 통해 VM을 중지할 수 있습니다.
권한은 일반적으로 REST 메서드와 1:1로 상응하지만 항상 그렇지는 않습니다. 즉, 각 Google Cloud 서비스에는 보유하고 있는 REST 메서드 각각에 연결된 권한이 있습니다. 메서드를 호출하려면 호출자에게 해당 권한이 필요합니다. 예를 들어 topic.publish()
호출자는 pubsub.topics.publish
권한이 필요합니다.
커스텀 역할은 해당 역할이나 리소스를 소유한 동일 프로젝트 또는 조직의 정책에 맞는 권한을 부여하는 데만 사용할 수 있습니다. 다른 프로젝트 또는 조직이 소유한 리소스에 대해서는 커스텀 역할을 부여할 수 없습니다.
필수 권한 및 역할
커스텀 역할을 만들려면 호출자에게 iam.roles.create
권한이 필요합니다.
조직 관리자를 비롯하여 소유자가 아닌 사용자에게는 '조직 역할 관리자' 역할(roles/iam.organizationRoleAdmin) 또는 'IAM 역할 관리자' 역할(roles/iam.roleAdmin)을 할당해야 합니다. 'IAM 보안 검토자' 역할(roles/iam.securityReviewer)을 사용하면 커스텀 역할을 볼 수는 있지만 관리할 수는 없습니다.
커스텀 역할 사용자 인터페이스는 Cloud 콘솔의 IAM 역할에서 찾을 수 있습니다. 커스텀 역할을 만들거나 관리할 권한이 있는 사용자에게만 표시됩니다. 기본적으로 프로젝트 소유자만 새로운 역할을 만들 수 있습니다. 프로젝트 소유자는 같은 프로젝트의 다른 사용자에게 'IAM 역할 관리자' 역할을 부여하여 이 기능에 대한 액세스를 제어할 수 있습니다. 조직의 경우, 조직 관리자만 '조직 역할 관리자' 역할을 부여할 수 있습니다.
커스텀 역할을 만들기 전 참고 사항
커스텀 역할을 만들기에 앞서 다음과 같은 사항을 확인해야 합니다.
- 리소스에 적용할 수 있는 권한의 종류
- 리소스에 부여할 수 있는 역할의 종류
- 역할의 메타데이터
작업 1. 리소스에 사용 가능한 권한 보기
커스텀 역할을 만들기 전에 리소스에 적용할 수 있는 권한이 무엇인지 확인하는 것이 좋습니다. gcloud 명령줄 도구, Cloud 콘솔 또는 IAM API를 사용하면 리소스에 적용 가능한 모든 권한 및 계층 구조에서 해당 리소스에 속하는 하위 리소스를 확인할 수 있습니다. 예를 들어 조직 및 해당 조직의 프로젝트에 적용 가능한 모든 권한을 확인할 수 있습니다.
- 다음을 실행하여 프로젝트에 사용 가능한 권한 목록을 가져옵니다.
출력:
작업 2. 역할 메타데이터 확인하기
커스텀 역할을 만들기 전에 사전 정의된 역할과 커스텀 역할의 메타데이터를 확인해야 할 수 있습니다. 역할 메타데이터에는 역할 ID와 역할에 포함된 권한 등이 있습니다. Cloud 콘솔 또는 IAM API를 사용하여 메타데이터를 볼 수 있습니다.
- 역할 메타데이터를 보려면 아래 명령어에서
[ROLE_NAME]
값을 원하는 역할로 바꾸어 사용합니다. 예:roles/viewer
또는roles/editor
:
출력 예(roles/viewer):
작업 3. 리소스에 부여할 수 있는 역할 보기
gcloud iam list-grantable-roles
명령어를 사용하면 특정 리소스에 적용할 수 있는 모든 역할을 목록으로 확인할 수 있습니다.
- 다음
gcloud
명령어를 실행해 프로젝트에서 부여할 수 있는 역할 목록을 확인합니다.
다음과 같은 출력 메시지가 표시됩니다.
작업 4. 커스텀 역할 만들기
커스텀 역할을 만들려면 호출자에게 iam.roles.create
권한이 필요합니다. 프로젝트 소유자 또는 조직은 이 권한을 기본으로 보유하고 있기 때문에 커스텀 역할을 만들고 관리할 수 있습니다.
조직 관리자를 비롯하여 소유자가 아닌 사용자에게는 '조직 역할 관리자' 역할 또는 'IAM 역할 관리자' 역할을 할당해야 합니다.
gcloud iam roles create
명령어를 사용하여 다음 두 가지 방식으로 새로운 커스텀 역할을 만들 수 있습니다.
- 역할 정의를 포함하는 YAML 파일 제공
- 플래그를 사용해 역할 정의 지정
커스텀 역할을 만들 때 --organization [ORGANIZATION-ID]
또는 --project [PROJECT-ID]
플래그를 사용하여 역할이 조직 수준에 적용되는지 아니면 프로젝트 수준에 적용되는지를 지정해야 합니다. 아래의 각 예시에서는 프로젝트 수준으로 커스텀 역할을 만듭니다.
다음 섹션에서는 프로젝트 수준으로 커스텀 역할을 만들어 봅니다.
YAML 파일을 사용하여 커스텀 역할 만들기
커스텀 역할의 정의를 포함하는 YAML 파일을 만듭니다. 파일의 구조는 다음과 같아야 합니다.
다음은 각 자리표시자 값에 대한 설명입니다.
-
[ROLE_TITLE]
은 역할의 별칭입니다(예: Role Viewer). -
[ROLE_DESCRIPTION]
은 역할에 대한 간단한 설명입니다(예: My custom role description). -
[LAUNCH_STAGE]
는 출시 주기에서 역할의 단계를 나타냅니다(예: ALPHA, BETA, GA). -
includedPermissions
는 커스텀 역할에 포함할 하나 이상의 권한(예: iam.roles.get) 목록을 지정합니다.
- 이제 다음을 실행하여 역할 정의 YAML 파일을 본격적으로 만들어 보겠습니다.
- 이 커스텀 역할 정의를 YAML 파일에 추가합니다.
-
Ctrl+X, Y를 누른 다음 Enter 키를 눌러 파일을 저장하고 닫습니다.
-
다음
gcloud
명령어를 실행합니다.
역할이 정상적으로 생성되면 다음과 같은 응답이 반환됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
플래그를 사용하여 커스텀 역할 만들기
이제 플래그 메서드를 사용하여 새로운 커스텀 역할을 만들어 보겠습니다. 플래그는 YAML 파일과 형식이 비슷하므로, 명령어의 구조를 쉽게 알아볼 수 있습니다.
- 다음
gcloud
명령어를 실행하여 플래그를 사용하는 새로운 역할을 만듭니다.
출력 예:
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
작업 5. 커스텀 역할 나열하기
- 다음
gcloud
명령어를 실행하면서 프로젝트 수준 또는 조직 수준의 커스텀 역할을 지정하여 커스텀 역할을 나열합니다.
출력 예:
--show-deleted
플래그를 지정하여 삭제된 역할을 나열할 수도 있습니다.
- 다음
gcloud
명령어를 실행하여 사전 정의된 역할을 나열합니다.
작업 6. 기존 커스텀 역할 업데이트하기
리소스의 커스텀 역할과 같은 메타데이터를 업데이트하는 일반적인 패턴은 현재 상태를 읽고, 데이터를 로컬에서 업데이트한 다음, 수정된 데이터를 전송하여 기록하는 것입니다. 이 패턴에서는 서로 독립된 둘 이상의 프로세스가 동시에 시퀀스를 시도할 경우 충돌이 발생할 수 있습니다.
예를 들어 동일 프로젝트의 소유자 두 명이 서로 상충하는 역할 변경을 동시에 시도할 경우 변경이 일부 실패할 수 있습니다.
Cloud IAM은 커스텀 역할에서 etag
속성을 사용하여 이 문제를 해결합니다. 이 속성은 마지막 요청 이후 커스텀 역할의 변경 여부를 확인하는 데 사용됩니다. etag값을 사용하여 Cloud IAM에 요청하면 Cloud IAM은 요청의 etag 값을 커스텀 역할에 연결된 기존 etag 값과 비교합니다. 이때 etag 값이 일치하는 경우에만 변경사항이 기록됩니다.
gcloud iam roles update
명령어를 사용하면 다음 두 가지 방식으로 커스텀 역할을 업데이트할 수 있습니다.
- 업데이트된 역할 정의가 포함된 YAML 파일
- 업데이트된 역할 정의를 지정하는 플래그
커스텀 역할을 업데이트할 때 --organization [ORGANIZATION-ID]
또는 --project [PROJECT-ID]
플래그를 사용하여 역할이 조직 수준에 적용되는지 아니면 프로젝트 수준에 적용되는지를 지정해야 합니다. 아래의 각 예시에서는 프로젝트 수준으로 커스텀 역할을 만듭니다.
describe
명령어는 역할의 정의를 반환하며, 역할의 현재 버전을 고유하게 식별하는 etag 값을 포함합니다. 동시에 실행되는 역할 변경사항을 덮어쓰지 않도록 하려면 업데이트된 역할 정의에 etag 값을 제공해야 합니다.
YAML 파일을 사용하여 커스텀 역할 업데이트
- 역할의 현재 정의를 가져올 수 있도록 다음
gcloud
명령어에서[ROLE_ID]
값을 editor로 바꾸어 실행합니다.
describe
명령어는 다음과 같은 출력을 반환합니다.
-
다음 단계에서 새로운 YAML 파일을 만드는 데 사용할 수 있도록 출력을 복사합니다.
-
편집기에서
new-role-definition.yaml
파일을 만듭니다.
- 복사해 둔 출력을 붙여넣고
includedPermissions
에 다음의 두 권한을 추가합니다.
완료되면 YAML 파일이 다음과 같이 표시됩니다.
-
Ctrl+X, Y를 누른 다음 Enter 키를 눌러 파일을 저장하고 닫습니다.
-
이제
update
명령어를 사용하여 역할을 업데이트해 보겠습니다. 다음gcloud
명령어에서[ROLE_ID]
값을 editor로 바꾸어 실행합니다.
역할이 정상적으로 업데이트되면 다음과 같은 응답이 반환됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
플래그를 사용하여 커스텀 역할 업데이트
해당 플래그를 사용하여 역할 정의의 각 부분을 업데이트할 수 있습니다. 사용 가능한 전체 플래그 목록은 SDK 참고 문서의 gcloud IAM 역할 업데이트 주제를 참조하세요.
다음 플래그를 사용하여 권한을 추가하거나 삭제할 수 있습니다.
-
--add-permissions
: 역할에 쉼표로 구분된 하나 이상의 권한을 추가합니다. -
--remove-permissions
: 역할에서 쉼표로 구분된 하나 이상의 권한을 삭제합니다.
아니면 --permissions [PERMISSIONS]
플래그를 사용하고 기존 권한 목록을 대체할 쉼표로 구분된 권한 목록을 제공하여 새 권한을 지정하는 간단한 방법도 있습니다.
- 다음
gcloud
명령어를 실행하여 플래그를 사용해 viewer 역할에 권한을 추가합니다.
역할이 정상적으로 업데이트되면 다음과 같은 응답이 반환됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
작업 7. 커스텀 역할 사용 중지하기
역할을 사용 중지하면 역할과 관련된 정책 바인딩이 비활성화됩니다. 즉, 사용자에게 역할을 부여해도 역할의 권한이 부여되지 않습니다.
기존 커스텀 역할을 사용 중지하는 가장 쉬운 방법은 --stage
플래그를 사용하여 상태를 'DISABLED'로 설정하는 것입니다.
- 다음
gcloud
명령어를 실행하여 viewer 역할을 사용 중지합니다.
역할이 정상적으로 업데이트되면 다음과 같은 응답이 반환됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
작업 8. 커스텀 역할 삭제하기
-
gcloud iam roles delete
명령어를 사용하여 커스텀 역할을 삭제할 수 있습니다. 삭제된 역할은 비활성 상태가 되며 새로운 IAM 정책 바인딩을 만드는 데 사용할 수 없습니다.
출력 예:
역할이 삭제된 후에도 기존 바인딩은 유지되지만 비활성 상태입니다. 7일 이내에 역할을 삭제 취소할 수 있습니다. 7일이 지나면 이후로 30일 동안 역할이 영구 삭제 프로세스에 들어갑니다. 37일이 지나면 역할 ID를 다시 사용할 수 있게 됩니다.
작업 9. 커스텀 역할 복원하기
- 7일 안에 역할을 복원할 수 있습니다. 삭제된 역할은 DISABLED 상태입니다. 역할을 다시 사용할 수 있도록 하려면
--stage
플래그를 업데이트합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
수고하셨습니다
이 실습에서는 IAM에서 커스텀 역할을 만들고 관리하는 방법을 알아보았습니다.
다음 단계/더 학습하기
IAM 문서의 Cloud Identity and Access Management에서 IAM에 관해 자세히 알아보세요.
Google Cloud 교육 및 자격증
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2024년 4월 15일
실습 최종 테스트: 2023년 7월 13일
Copyright 2024 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.