
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create an instance with name as lab-1 in Project 1
/ 10
Update the default zone
/ 10
Create a configuration for Username 2 and name it as user2
/ 10
Restricting Username 2 to roles/viewer in Project 2
/ 10
Create a new role with permissions for the devops team
/ 10
Check binding to roles/iam.serviceAccountUser
/ 5
Bound Username 2 to devops role
/ 5
Create an instance with name as lab-2 in Project 1
/ 5
Check the created service account
/ 5
Check the binding for the service account to roles/iam.serviceAccountUser
/ 10
Check the binding for the service account to roles/compute.instanceAdmin
/ 10
Check lab-3 has the service account attached
/ 10
이 실습에서는 IAM 및 gcloud와 관련하여 이해해야 할 세 가지 일반적인 영역을 살펴봅니다.
이 실습에서는 gcloud
CLI 도구를 사용하여 Cloud Identity and Access Management(IAM)의 명령어 특성을 설정하고 구성합니다.
이 실습에서 학습할 내용은 다음과 같습니다.
gcloud
클라이언트 사용두 개의 사용자 계정과 두 개의 프로젝트로 시작합니다.
user1
은 두 프로젝트의 '소유자'입니다.user2
는 첫 번째 프로젝트 한정 '뷰어'입니다.첫 번째 프로젝트에는 실행 중인 Linux 가상 머신(VM)이 있습니다.
Google Cloud는 누가(ID) 어떤 리소스에 어떤 액세스 권한(역할)이 있는지 정의하여 액세스 제어를 관리할 수 있는 Cloud Identity and Access Management(IAM)를 제공합니다.
IAM에서 리소스 액세스 권한은 최종 사용자에게 직접 부여되지 않습니다. 대신 권한이 역할로 그룹화되고 역할은 인증된 주 구성원에게 부여됩니다. 전에는 IAM에서 주 구성원을 구성원이라고 주로 지칭했습니다. 일부 API에서는 여전히 이 용어를 사용합니다.
Cloud IAM을 통해 주 구성원에게 액세스 권한을 제공하며, 주 구성원은 다음 유형 중 하나일 수 있습니다.
ID 유형에 대한 자세한 내용은 ID와 관련된 개념 가이드에서 자세히 알아보세요.
이 실습에서는 Google 계정, 서비스 계정, Cloud ID 도메인 그룹을 사용합니다.
역할은 권한 모음입니다. 사용자에게 직접 권한을 할당할 수는 없으며, 대신 역할을 부여해야 합니다. 사용자에게 역할을 부여하면 역할에 포함된 모든 권한이 부여됩니다.
역할에 대한 자세한 내용은 역할 가이드를 참조하세요.
gcloud CLI는 Cloud SDK에 포함되어 있습니다. gcloud 명령줄 도구를 사용하려면 먼저 시스템에 SDK를 다운로드하여 설치하고 초기화해야 합니다. 이 도구를 사용하여 명령줄이나 스크립트 및 기타 자동화에서 여러 가지 일반적인 플랫폼 작업을 수행할 수 있습니다.
gcloud에 대한 자세한 내용은 gcloud CLI 개요 가이드를 참조하세요.
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.
실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
이 실습을 완료하려면 다음을 준비해야 합니다.
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
다음을 클릭합니다.
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
다음을 클릭합니다.
이후에 표시되는 페이지를 클릭하여 넘깁니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
이미 이 실습에는 gcloud
가 설치되지 않은 환경을 시뮬레이션하는 centos-clean이라는 Compute Engine 인스턴스가 있습니다. Google Cloud 콘솔을 사용하여 이 인스턴스에 연결합니다.
탐색 메뉴 > Compute Engine > VM 인스턴스로 이동하여 컴퓨팅 인스턴스 목록을 엽니다.
centos-clean이라는 이름의 컴퓨팅 인스턴스가 포함된 줄에서 SSH를 클릭합니다.
gcloud
가 성공적으로 설치되었는지 확인합니다. SSH 세션 내에서 다음을 실행합니다.gcloud
명령줄 도구가 설치되었는지 확인한 후 컴퓨팅 인스턴스를 생성하여 몇 가지를 변경합니다.
계속하시겠어요(Y/n)? 메시지가 표시되면 Enter 키를 누릅니다.
새 탭에 표시된 링크로 이동합니다.
활성 사용자 이름(
로그인하려는 머신의 gcloud CLI에 다음 인증 코드를 입력합니다 메시지가 표시되면 복사 버튼을 클릭한 다음 SSH 세션으로 돌아가서 승인 코드 입력: 메시지에 코드를 붙여넣습니다.
SSH 세션에서 다음과 같이 리전과 영역을 설정합니다.
모두 올바르게 설정되어 있다면 명령어는 인스턴스를 생성합니다.
하지만 어떤 크기로 어디에 어떤 이미지가 사용될까요?
서비스에서 사용하는 기본값은 여러 가지가 있습니다. 일부는 gcloud
구성에서 제어할 수 있습니다. 예를 들어 인스턴스 위치는 영역 설정으로 제어할 수 있습니다.
이제 compute
섹션, core
섹션, active configuration
이 표시됩니다. 각각을 변경할 수 있지만 이 실습에서는 영역만 변경하겠습니다. VM이 만들어진 영역을 확인합니다.
같은 리전에 있는 다른 영역 중 하나를 선택합니다. 예를 들어 현재 영역이 us-west2-a
라면 us-west2-b
를 선택할 수 있습니다.
현재 영역을 같은 리전의 다른 영역으로 변경합니다. SSH 세션 내에서 다음을 실행하여 ZONE
을 선택한 영역으로 바꿉니다.
명시한 영역에 변경사항이 반영된 것을 확인할 수 있습니다.
gcloud config set
명령어를 사용하여 다른 설정을 변경할 수 있습니다. 이러한 변경사항은 영구적이며 홈 디렉터리에 기록됩니다.
기본 구성은 ~/.config/gcloud/configurations/config_default에 저장됩니다.
인스턴스를 만들 때 기본 영역이 아닌 다른 영역을 사용하려면 --zone switch를 사용하면 됩니다. 예를 들어 gcloud compute instances create lab-1 --zone us-central1-f
를 사용할 수 있습니다.
구성은 텍스트로만 저장되며 백업이나 복사가 가능함을 확인할 수 있습니다.
이제 1개 계정을 설정했습니다. 다른 팀에서 작업하거나 다른 계정에 액세스해야 하는 상황에서도 gcloud config
로 관리할 수 있습니다.
다음 작업에서는 두 번째 구성을 만들고 두 구성 간에 전환하는 방법을 알아봅니다.
이 실습에서는 두 번째 Google 계정으로 로그온할 수 있습니다. 이 계정에는 첫 번째 프로젝트에 대해 읽기 전용(뷰어) 액세스 권한이 있습니다. 이 사용자에 대한 새 구성을 만듭니다.
gcloud
구성을 새로 시작합니다. SSH 세션 내에서 다음을 실행합니다.옵션 2인 Create a new configuration(새 구성 만들기)을 선택합니다.
구성 이름: user2를 입력합니다.
새 계정으로 로그인: 옵션 3을 선택하면 제공된 다른 사용자 이름으로 로그인합니다.
계속하시겠어요(Y/n)? 메시지가 표시되면 Enter 키를 누릅니다.
새 탭에 표시된 링크로 이동합니다.
다른 계정 사용을 클릭합니다.
두 번째 사용자 계정(
실습을 시작할 때 사용한 것과 동일한 비밀번호를 복사하고 비밀번호 입력 프롬프트에 붙여넣습니다.
이해함을 클릭합니다.
허용을 클릭합니다.
Cloud SDK가 Google 계정과 동일한 액세스 권한을 갖는 것에 동의하는 것입니다.
로그인하려는 머신의 gcloud CLI에 다음 인증 코드를 입력합니다 프롬프트가 표시되면 복사 버튼을 클릭한 다음 SSH 세션으로 돌아가서 Enter authorization code:(승인 코드 입력:) 프롬프트에 코드를 붙여넣습니다.
Pick cloud project to use(사용할 클라우드 프로젝트 선택):의 경우 현재 프로젝트(
초기화가 완료되고 영역과 리전이 설정된 것을 확인할 수 있습니다.
이 새 계정에는 프로젝트에 대한 뷰어 전용 액세스 권한이 있으므로 일부 리소스를 보고 생성하여 실제로 이 계정을 사용하고 있는지 테스트해 볼 수 있습니다.
두 번째 사용자 계정에는 뷰어 액세스 권한이 있으므로 centos-clean
과 lab-1
인스턴스가 나열되어 있어야 합니다.
두 번째 사용자 계정에는 뷰어 액세스 권한만 있어 인스턴스를 만들 수 없으므로 이 명령어는 작동하지 않습니다. 작동하지 않는 데까지는 시간이 조금 걸립니다.
이제 원래 사용자 계정의 사용자 인증 정보를 다시 사용합니다. 이후 역할과 권한에 대해 알아보면서 두 계정 간에 전환할 수 있습니다.
이 프로젝트에는 두 개의 사용자 계정이 제공되어 있습니다. 첫 번째 사용자는 두 프로젝트에 대한 모든 권한이 있으므로 관리자 계정으로 생각할 수 있습니다. 두 번째 사용자에게는 두 프로젝트에 대한 뷰어 전용 액세스 권한만 있습니다. 두 번째 사용자를 DevOps 사용자라고 부르며 해당 사용자 ID는 일반적인 DevOps 수준의 사용자를 나타냅니다.
다음으로 gcloud
를 사용하여 버킷 및 인스턴스 생성을 허용하는 프로젝트의 맞춤 역할을 만들어 DevOps 사용자를 위한 하나의 프로젝트에 대한 액세스를 구성합니다.
역할 목록이 반환됩니다. 명령어에 grep "name:"
을 추가하면 반환되는 데이터의 양이 역할 이름만 포함하도록 줄어듭니다.
이러한 역할 중 하나를 조사하여 역할에 할당된 권한을 확인합니다. 권한을 보려면 gcloud iam roles describe
를 사용합니다. 간략히 역할만 보려면 roles/compute.instanceAdmin을 사용합니다.
compute.instanceAdmin
의 사전 정의된 역할을 조사합니다. SSH 세션 내에서 다음을 실행합니다.roles/compute.instanceAdmin에는 다음과 같은 많은 권한이 있지만, 나중에 필요한 최소 권한은 다음과 같습니다.
전체 역할 목록과 할당된 권한을 검토하려면 IAM 권한 참조 가이드를 참조하세요.
역할에 권한이 포함되어 있다는 것을 알았으니 이제 사용자 계정에 역할과 그에 따른 모든 관련 권한을 할당하려면 어떻게 해야 할까요?
역할을 연결하는 방법에는 두 가지가 있습니다.
다음으로 두 번째 사용자에게 두 번째 프로젝트에 대해 '뷰어'라는 기본 역할을 연결합니다.
gcloud
구성을 두 번째 사용자(user2)로 다시 전환합니다. SSH 세션 내에서 다음을 실행합니다.이제 다시 user2
가 되었습니다.
PROJECTID2
를 두 번째 프로젝트로 설정합니다. SSH 세션 내에서 다음을 실행합니다.bashrc
파일을 추가하므로 주의해야 합니다.WARNING: You do not appear to have access to project [your 2nd project id] or it does not exist
라는 경고가 표시됩니다.
이는 user2에 PROJECTID2 프로젝트에 대한 액세스 권한이 없다는 의미입니다. 이 부분은 다음 섹션에서 수정합니다.
jq
를 설치합니다.그런 다음 USERID2
값을 두 번째 사용자 이름으로 설정하고 두 번째 사용자에게 두 번째 프로젝트에 대한 뷰어 역할을 결합합니다.
명령어를 실행하면 텍스트가 다음과 같이 표시됩니다. 위로 스크롤해야 할 수도 있습니다.
이번에는 오류 메시지가 표시되지 않아야 합니다.
이제 이 프로젝트에서는 인스턴스가 0개 표시됩니다.
user2는 프로젝트에 대한 뷰어 권한만 있기 때문에 이 명령어는 작동하지 않습니다.
이제 원래 사용자 계정의 사용자 인증 정보를 다시 사용합니다.
다음으로 DevOps팀에 필요한 권한 집합이 있는 새 역할을 만듭니다.
devops
라는 맞춤 역할을 만듭니다. SSH 세션 내에서 다음을 실행합니다.이 명령어는 프로젝트에 인스턴스를 만들고 관리하는 권한이 있는 devops
라는 맞춤 역할을 만듭니다.
역할의 전체 이름이 나열되며, 역할이 프로젝트 내에 있으므로 경로는 projects/PROJECT/roles/ROLENAME
패턴입니다.
역할을 만들었으니 사용자와 역할을 프로젝트에 결합해야 합니다. gcloud projects add-iam-policy-binding
을 사용하여 결합합니다. 이 명령어를 더 쉽게 실행하기 위해 먼저 프로젝트 ID와 사용자 계정 등 몇 가지 환경 변수를 설정합니다.
iam.serviceAccountUser
역할을 결합합니다. SSH 세션 내에서 다음을 실행합니다.서비스 계정이 연결된 인스턴스를 만들려면 권한이 필요합니다. iam.serviceAccountUser
역할에는 이러한 권한이 있으므로 이 사전 정의된 역할을 사용합니다.
devops
라는 맞춤 역할을 결합합니다. 이 페이지 왼쪽에서 두 번째 사용자 계정을 찾을 수 있습니다. 두 번째 사용자 계정에 USERID를 설정했는지 확인합니다.SSH 세션 내에서 다음을 실행합니다.
명령어를 실행하면 텍스트가 다음과 같이 표시됩니다. 위로 스크롤해야 할 수도 있습니다.
이제 다시 user2가 되었습니다.
이제 user2에 대해 인스턴스 생성이 작동합니다.
마지막으로 변경 후 환경은 다음과 같습니다.
gcloud
를 사용하여 인증하고 역할을 통해 Google Cloud 서비스에 액세스하는 방법을 살펴보았습니다. 이제 일반적인 접근방식을 살펴보겠습니다.
애플리케이션 프로그래밍 인터페이스(API)를 사용하여 Cloud Storage 버킷을 읽고 쓰는 애플리케이션이 있습니다. 새 서버를 시작할 때마다 인증을 받아야 한다면 번거로울 뿐만 아니라 클라우드의 사용 취지와도 맞지 않으므로 서비스 계정을 사용합니다.
서비스 계정은 개별 최종 사용자가 아닌, 애플리케이션 또는 가상 머신(VM)에 속한 특별한 Google 계정입니다. 애플리케이션은 서비스 계정을 사용하여 Google API 서비스를 호출하므로 사용자가 직접 관여하지 않습니다.
서비스 계정에 대한 자세한 내용은 서비스 계정 가이드를 참조하세요.
이제 서비스 계정을 만들고 해당 서비스 계정을 컴퓨팅 인스턴스와 함께 사용한 다음 서비스 계정에서 필요한 액세스 권한이 허용되는지 테스트합니다.
user2
에는 서비스 계정을 설정하고 구성할 수 있는 권한이 없습니다. SSH 세션 내에서 다음을 실행합니다.PROJECTID2
로 설정합니다. SSH 세션 내에서 다음을 실행합니다.알맞은 프로젝트를 대상으로 하는지 확인합니다.
SA
라는 로컬 변수에 넣습니다. SSH 세션 내에서 다음을 실행합니다.이 명령어는 SA 로컬 변수를 서비스 계정의 이메일 주소로 설정합니다. 정말 유용한 명령어입니다.
iam.serviceAccountUser
역할을 부여합니다. SSH 세션 내에서 다음을 실행합니다.이 역할을 통해 서비스 계정으로 컴퓨팅 인스턴스에 서비스 계정을 할당할 수 있습니다.
compute.instanceAdmin
역할을 부여합니다. SSH 세션 내에서 다음을 실행합니다.이 역할을 통해 서비스 계정으로 컴퓨팅 인스턴스를 관리할 수 있습니다.
액세스 범위는 인스턴스에 권한을 지정하는 기존 방법입니다. 액세스 범위는 보안 메커니즘이 아닙니다. 대신 gcloud
도구 또는 클라이언트 라이브러리의 요청에 사용되는 기본 OAuth 범위를 정의합니다. gRPC 또는 SignBlob API와 같은 OAuth를 통해 인증되지 않는 요청을 수행할 때는 아무런 영향을 주지 않습니다.
서비스 계정으로 실행되도록 인스턴스를 구성할 때는 액세스 범위를 설정해야 합니다.
인스턴스에 전체 cloud-platform 액세스 범위를 설정한 후 IAM 역할을 통해 서비스 계정의 API 액세스 권한을 안전하게 제한하는 것이 가장 좋습니다.
액세스 범위는 인스턴스별로 적용됩니다. 인스턴스를 만들 때 액세스 범위를 설정합니다. 액세스 범위는 인스턴스 수명 동안에만 유지됩니다.
서비스 계정이 속한 프로젝트에서 관련 API를 사용 설정하지 않았으면 액세스 범위가 적용되지 않습니다. 예를 들어 가상 머신 인스턴스에서 Cloud Storage에 액세스 범위를 부여하면 프로젝트에서 Cloud Storage API를 사용 설정한 경우에만 인스턴스가 Cloud Storage API를 호출할 수 있습니다.
gcloud compute ssh
를 사용하여 새로 만든 인스턴스에 연결합니다. SSH 세션 내에서 다음을 실행합니다.계속 진행할지 묻는 메시지가 표시되면 Enter 키를 누릅니다.
비밀번호 생성 단계를 건너뛰려면 Enter 키를 두 번 누릅니다.
gcloud
구성이 포함되어 있습니다. SSH 세션 내에서 다음을 실행합니다.이제 구성에 서비스 계정이 포함되었습니다.
Enter 키를 눌러 이 VM의 기본 영역으로 지정할 수 있습니다.
서비스 계정에 권한이 있으므로 인스턴스가 나열되었음을 확인할 수 있습니다.
Cloud SDK 도구인 gcloud
를 사용하여 다음 작업을 완료했습니다.
Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.
설명서 최종 업데이트: 2024년 4월 10일
실습 최종 테스트: 2024년 4월 10일
Copyright 2025 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
One lab at a time
Confirm to end all existing labs and start this one