Google Cloud 계정, 권한 및 조직
관리
정명훈, Cloud Sales Engineer
2
목차
● 클라우드의 계정 및 권한 관리
● GCP Identity and Access Management 소개
● Cross Project Networking
● GCP 계정 및 권한 관리 Best Practice
● 요약
3
클라우드의 계정 및 권한 관리
4
IAM = Identity and Access Management
● 정의
○ 조직이 필요로 하는 보안 정책을 수립하고 정책에 따라 자동으로 사용자의 계정과 권한을
관리하는 솔루션
○ 누가(who = identity) 어떤 자원에 대해서(which resource) 무엇을(what) 할 수 있는지 검사
(permission)
Who can do what on which resource
5
Authentication and Authorization (A&A)
● Authentication
○ 로그인 및 접근 하는 사람이 누구인지 확인(인증)하는 과정
○ 계정(identity) 및 암호(credential)
● Authorization
○ 인증(authentication)이 완료된 계정(identity)이
특정 자원에 권한이 있는지 확인하는 과정
6
클라우드 IAM 요구사항
● 세부적인 권한 제어
○ 예: 운영팀은 시스템 로그를 볼 수 있지만, DB 데이터 접근 불가
○ 예: 장애복구를 위한 VM 재시작 가능하지만, 디스크 액세스 불가
7
클라우드 IAM 요구사항
● 중앙 집중식 관리
○ 회사 전체의 프로젝트와 정책(policy)에 대한 관리
○ 여러 프로젝트에 적용할 표준 정책(예: 이미지, 권한, 보안) 정의
8
클라우드 IAM 요구사항
● 빌링 관리
○ 회사 내에서 부서 또는 프로젝트 단위의 독립된 과금
○ 클라우드 리소스 사용자(예: IT 팀)와 비용처리 조직(예: 재무팀)의 분리
○ 리셀러를 통한 비용 지불
Finance
9
클라우드 IAM 요구사항
● 애플리케이션에서 API를 통한 서비스 접근 권한 체크
● 보안 관점에서 사고 발생 시 피해가 훨씬 큼
Application
10
클라우드 운영 조직 관리
● 부서나 서비스 단위로 독립적인 프로젝트
및 빌링 관리
● 실제 회사의 조직을 클라우드 운영 조직에
맵핑
11
GCP Identity and Access Management 소개
12
GCP Identity and Access Management (IAM)
● IAM = 구글 클라우드의 기본 계정 및 권한 관리
● 누구에게 어떤 자원에 대해 어떤 활동을 할 수 있는지 검사
○ 예: 사용자에게 VM(Compute Engine) 생성 권한이 있는지 검사
13
GCP Identity and Access Management (IAM)
● 하나의 동작에 대해 여러 번 권한 검사가 발생하는 경우
14
GCP IAM에서 사용하는 계정 (Authentication)
15
GCP IAM에서 사용하는 계정 (Authentication)
● 사용자 계정
○ 구글 메일 계정 (Google Account)
○ 회사(G-Suite Domain) 계정
○ 구글 그룹(Google Group)
● 서비스 계정 (Service Account)
○ 애플리케이션 또는 VM(Compute Engine)이 사용하는 계정
○ 애플리케이션 또는 VM에서 GCP 리소스에 접근하고자 할 때 사용 (예: VM 내에서 BigQuery
접근)
○ 서비스 별로 기본 생성된 계정들 존재 (새로 생성 및 변경 가능)
○ 서비스 계정의 권한을 사용자에게 부여 가능 (Identity이자 Resource)
16
GCP IAM의 권한 관리 (Authorization)
● GCP 서비스에 대한 접근 권한(Permission) 관리
● 프로젝트 또는 리소스(예: Compute) 수준의 권한 제어
● 권한들을 묶어 Role로 관리 (예: Compute 인스턴스 관리자 - 인스턴스 관련
권한)
○ Role을 할당 계정 또는 그룹에 할당
Role Permissions Project
User
17
GCP IAM Role의 종류
Primitive Roles
● 범위가 큼
● 여러 서비스 권한
● 3가지 역할
○ Owner
○ Editor
○ Viewer
Predefined Roles
● 세밀한 범위
● 단일 서비스에 대한 권한
● 70개 이상의 역할
○ BigQuery Admin
○ Compute Instance Admin
○ Compute Network Admin
등
Custom Roles
● 정확한 범위
● 새로 생성하거나 기존의
Role에서 복사해서 생성
● 예
○ Compute Instance
Admin without
“외부 IP 할당" 권한
More granularity
18
GCP IAM의 리소스 관리
● 계층형 리소스(조직 모델) or
플랫 구조(프로젝트 단위)
● 계층형에서 최상위는 회사
(Organization)
○ 상위 객체로부터 권한 상속
○ Cloud ID 또는 G-Suite 계정
○ 외부 독립 프로젝트
마이그레이션 가능 (승인 필요)
○ 외부 G-Mail 계정 권한 부여 가능
(승인 필요)
19
Cloud ID or G-Suite 계정
● 계층형 모델을 사용하기 위해 필요
● G-Suite: 구글 기업용 애플리케이션 (구 Google Apps)
● Cloud ID: G-Suite 없이 클라우드의 계층형 리소스 관리를 위한 계정
20
GCP IAM의 리소스 관리 - 조직 모델
● 폴더
○ 여러 프로젝트들을 묶어 하나로
관리(권한 부여)
○ 실제 조직의 부서에 해당
● 프로젝트
○ 리소스들을 묶어 독립적으로
관리
○ 실제 프로젝트 또는 서비스에
해당
○ 과금 단위
● 리소스
○ GCP가 제공하는 서비스
21
● 사용자가 아닌 애플리케이션이나 VM에 속한 계정
○ VM(Compute Instance)이나 애플리케이션에서 API 호출 시 사용되는 ID
○ 사용자 계정 대신 사용 ⇒ 권한도 서비스 계정에 부여
● 자동으로 디폴트 생성되고 추가 생성 및 권한 변경 가능
서비스 계정(Service Account)
프로그램
VM
22
● 애플리케이션에서는 서비스 계정의 API
Key를 사용하여 인증(authentication)
● VM 내부 애플리케이션은 Google
Managed Key (별도 Key 관리 불필요)
● 독립 애플리케이션 User Managed Key
서비스 계정(Service Account) 사용 방법
23
● Google Cloud API를 사용하는 애플리케이션의 권한 제어
● 서비스 계정을 업무 별로 생성하고 최소한의 권한 부여
● Service Account Actor Role을 User
또는 Group에 부여
○ 해당 User/Group이 생성한 VM 내부의
애플리케이션이 서비스 계정의 권한 부여
○ 예: VM 내에서 API로 새로운 VM 생성
○ 관리자가 실행하는 App이 막강한
관리자의 모든 권한을 가질 필요 없음
서비스 계정(Service Account) 활용 Tips
24
Cross Project Networking
25
Cross Project Networking (XPN)
● 동일 조직 내에 있는 여러 프로젝트가 같은 네트워크 공유
○ 하나의 XPN Host 프로젝트가 다른 프로젝트에 네트워크를 제공
○ 동시에 중앙 집중식 네트워크 관리
26
XPN Role 맵핑
27
나에게 공유된 XPN
프로젝트에 공유된 VPC 네트워크(XPN) 목록
VM 생성 중 선택 가능한 VPC 네트워크(XPN)
목록
28
GCP 계정 및 권한 관리 Best Practice
29
중앙집중식 관리
● 조직과 Cloud 자원 구조 맵핑
● 폴더를 팀으로 (또는 공유 자원)
● 프로젝트를 서비스 단위로
30
기업 계정 동기화
● Google Cloud Directory Sync (GCDS)
● LDAP 또는 Active Directory의 계정 단방향 동기화
31
애플리케이션 코드에 API Key 포함하지 않도록
● Compute VM 내에서 실행되는 경우 자동으로 Service Account Actor Role
권한
○ Google Managed Key
● 독립 애플리케이션에서는 GOOGLE_APPLICATION_CREDENTIALS 환경
변수
○ User Managed Key
32
인증 보안 강화
● Multi-Factor Authentication
● Root 계정 및 텍스트 암호를 통한 인증 비활성화
33
최소한의 필요한 권한만 부여
● 리소스(서비스) 별 권한 부여
● 슈퍼 관리자 지양 ⇒ 업무 별 관리자
● 최소한의 권한 부여 후, 요청이 있을 때 추가 권한 부여
34
User 대신 Group에 권한 부여
● 유연한 권한 관리 가능
● 일관된(consistent) 권한 가능 (예) Admin들에게는 동일한 권한
35
Audit Log
● 권한 침해 문제 발생을 빠르게 발견 및 정확한 분석 가능
● GCP Logging 서비스 이용
○ Stackdriver Agent를 이용하여 중앙에 수집
● 로깅 대상
○ 리소스 접근 시도 및 결과
○ IAM Policy 변경
○ 애플리케이션에 의한 액세스 포함
36
서비스 계정 또는 SSH Key Rotate
● Key 유출로 인한 피해 최소화
● Google Managed Key의 경우 GCP에 의해 자동 Rotation
● User Managed Key는 API를 사용하여 자동 Rotation 구현
● API를 사용하여 SSH Key
자동 Rotation 구현
37
빌링
ProjectProjectProject
Billing Account
Project level bill Project level bill Project level bill
Bills itemised by resource type
● 빌링 계정
○ 빌링 정보(예: 신용카드)
○ 조직(또는 계정) 내에 여러 개 생성
가능
● 프로젝트 단위 빌링
○ 프로젝트 당 한 개의 빌링 계정
선택
○ 리소스 타입에 따라 빌링 아이템
구분
38
빌링 관련 권한
● Billing Admin (조직 레벨)
○ Manage payment information
○ Setup cost controls and alerts
○ Setup billing exports
○ Create new billed projects
○ View costs
■ Invoices
■ Credits
■ History
■ Data exports
● Project Billing Manager (프로젝트 레벨)
○ 프로젝트의 빌링 계정 변경
39
표준 VM Image 공유
● 표준 VM Image를 여러 프로젝트에서 사용
● Image 공유 프로젝트를 통해 공유
○ Image User IAM Role
40
프로젝트 관리자 역할 분리
● 하나의 프로젝트에 대한 “네트워크/보안 관리자” 역할과 “인스턴스 관리자”
역할 분리
● 다른 지식과 목표를 가지는 관리자
41
요약
42
요약
● 클라우드 IAM 요구사항
○ 세부적인 권한 제어
○ 중앙 집중식 관리
○ 빌링 관리
○ 애플리케이션의 API 접근 권한 체크
○ 클라우드 운영 조직 관리
43
요약
● GCP IAM
○ 계정 관리: Google Account, Service Account, G Suite Domain, Google Groups
○ 권한 관리: Primitive/Predefined/Custom Role
○ 리소스 관리: 계층형(조직 모델) 구조 vs 플랫 구조
○ 서비스 계정: Google Cloud API를 사용하는 애플리케이션과 VM의 권한 제어
44
요약
● Cross Project Networking (XPN)
● GCP IAM 기반 계정 및 권한 관리 Best Practice
○ 중앙집중식 관리
○ 기업 계정 동기화
○ API Key 관리
○ 인증 보안 강화
○ 최소한의 권한 부여
○ User 대신 Group 권한 부여
○ Audit Log
○ Key Rotation
○ 빌링
45
감사합니다.
Free credit!!
페이스북 구글 클라우드 사용자 그룹
https://www.facebook.com/groups/googlecloudkorea/

Google Cloud IAM 계정, 권한 및 조직 관리

  • 1.
    Google Cloud 계정,권한 및 조직 관리 정명훈, Cloud Sales Engineer
  • 2.
    2 목차 ● 클라우드의 계정및 권한 관리 ● GCP Identity and Access Management 소개 ● Cross Project Networking ● GCP 계정 및 권한 관리 Best Practice ● 요약
  • 3.
  • 4.
    4 IAM = Identityand Access Management ● 정의 ○ 조직이 필요로 하는 보안 정책을 수립하고 정책에 따라 자동으로 사용자의 계정과 권한을 관리하는 솔루션 ○ 누가(who = identity) 어떤 자원에 대해서(which resource) 무엇을(what) 할 수 있는지 검사 (permission) Who can do what on which resource
  • 5.
    5 Authentication and Authorization(A&A) ● Authentication ○ 로그인 및 접근 하는 사람이 누구인지 확인(인증)하는 과정 ○ 계정(identity) 및 암호(credential) ● Authorization ○ 인증(authentication)이 완료된 계정(identity)이 특정 자원에 권한이 있는지 확인하는 과정
  • 6.
    6 클라우드 IAM 요구사항 ●세부적인 권한 제어 ○ 예: 운영팀은 시스템 로그를 볼 수 있지만, DB 데이터 접근 불가 ○ 예: 장애복구를 위한 VM 재시작 가능하지만, 디스크 액세스 불가
  • 7.
    7 클라우드 IAM 요구사항 ●중앙 집중식 관리 ○ 회사 전체의 프로젝트와 정책(policy)에 대한 관리 ○ 여러 프로젝트에 적용할 표준 정책(예: 이미지, 권한, 보안) 정의
  • 8.
    8 클라우드 IAM 요구사항 ●빌링 관리 ○ 회사 내에서 부서 또는 프로젝트 단위의 독립된 과금 ○ 클라우드 리소스 사용자(예: IT 팀)와 비용처리 조직(예: 재무팀)의 분리 ○ 리셀러를 통한 비용 지불 Finance
  • 9.
    9 클라우드 IAM 요구사항 ●애플리케이션에서 API를 통한 서비스 접근 권한 체크 ● 보안 관점에서 사고 발생 시 피해가 훨씬 큼 Application
  • 10.
    10 클라우드 운영 조직관리 ● 부서나 서비스 단위로 독립적인 프로젝트 및 빌링 관리 ● 실제 회사의 조직을 클라우드 운영 조직에 맵핑
  • 11.
    11 GCP Identity andAccess Management 소개
  • 12.
    12 GCP Identity andAccess Management (IAM) ● IAM = 구글 클라우드의 기본 계정 및 권한 관리 ● 누구에게 어떤 자원에 대해 어떤 활동을 할 수 있는지 검사 ○ 예: 사용자에게 VM(Compute Engine) 생성 권한이 있는지 검사
  • 13.
    13 GCP Identity andAccess Management (IAM) ● 하나의 동작에 대해 여러 번 권한 검사가 발생하는 경우
  • 14.
    14 GCP IAM에서 사용하는계정 (Authentication)
  • 15.
    15 GCP IAM에서 사용하는계정 (Authentication) ● 사용자 계정 ○ 구글 메일 계정 (Google Account) ○ 회사(G-Suite Domain) 계정 ○ 구글 그룹(Google Group) ● 서비스 계정 (Service Account) ○ 애플리케이션 또는 VM(Compute Engine)이 사용하는 계정 ○ 애플리케이션 또는 VM에서 GCP 리소스에 접근하고자 할 때 사용 (예: VM 내에서 BigQuery 접근) ○ 서비스 별로 기본 생성된 계정들 존재 (새로 생성 및 변경 가능) ○ 서비스 계정의 권한을 사용자에게 부여 가능 (Identity이자 Resource)
  • 16.
    16 GCP IAM의 권한관리 (Authorization) ● GCP 서비스에 대한 접근 권한(Permission) 관리 ● 프로젝트 또는 리소스(예: Compute) 수준의 권한 제어 ● 권한들을 묶어 Role로 관리 (예: Compute 인스턴스 관리자 - 인스턴스 관련 권한) ○ Role을 할당 계정 또는 그룹에 할당 Role Permissions Project User
  • 17.
    17 GCP IAM Role의종류 Primitive Roles ● 범위가 큼 ● 여러 서비스 권한 ● 3가지 역할 ○ Owner ○ Editor ○ Viewer Predefined Roles ● 세밀한 범위 ● 단일 서비스에 대한 권한 ● 70개 이상의 역할 ○ BigQuery Admin ○ Compute Instance Admin ○ Compute Network Admin 등 Custom Roles ● 정확한 범위 ● 새로 생성하거나 기존의 Role에서 복사해서 생성 ● 예 ○ Compute Instance Admin without “외부 IP 할당" 권한 More granularity
  • 18.
    18 GCP IAM의 리소스관리 ● 계층형 리소스(조직 모델) or 플랫 구조(프로젝트 단위) ● 계층형에서 최상위는 회사 (Organization) ○ 상위 객체로부터 권한 상속 ○ Cloud ID 또는 G-Suite 계정 ○ 외부 독립 프로젝트 마이그레이션 가능 (승인 필요) ○ 외부 G-Mail 계정 권한 부여 가능 (승인 필요)
  • 19.
    19 Cloud ID orG-Suite 계정 ● 계층형 모델을 사용하기 위해 필요 ● G-Suite: 구글 기업용 애플리케이션 (구 Google Apps) ● Cloud ID: G-Suite 없이 클라우드의 계층형 리소스 관리를 위한 계정
  • 20.
    20 GCP IAM의 리소스관리 - 조직 모델 ● 폴더 ○ 여러 프로젝트들을 묶어 하나로 관리(권한 부여) ○ 실제 조직의 부서에 해당 ● 프로젝트 ○ 리소스들을 묶어 독립적으로 관리 ○ 실제 프로젝트 또는 서비스에 해당 ○ 과금 단위 ● 리소스 ○ GCP가 제공하는 서비스
  • 21.
    21 ● 사용자가 아닌애플리케이션이나 VM에 속한 계정 ○ VM(Compute Instance)이나 애플리케이션에서 API 호출 시 사용되는 ID ○ 사용자 계정 대신 사용 ⇒ 권한도 서비스 계정에 부여 ● 자동으로 디폴트 생성되고 추가 생성 및 권한 변경 가능 서비스 계정(Service Account) 프로그램 VM
  • 22.
    22 ● 애플리케이션에서는 서비스계정의 API Key를 사용하여 인증(authentication) ● VM 내부 애플리케이션은 Google Managed Key (별도 Key 관리 불필요) ● 독립 애플리케이션 User Managed Key 서비스 계정(Service Account) 사용 방법
  • 23.
    23 ● Google CloudAPI를 사용하는 애플리케이션의 권한 제어 ● 서비스 계정을 업무 별로 생성하고 최소한의 권한 부여 ● Service Account Actor Role을 User 또는 Group에 부여 ○ 해당 User/Group이 생성한 VM 내부의 애플리케이션이 서비스 계정의 권한 부여 ○ 예: VM 내에서 API로 새로운 VM 생성 ○ 관리자가 실행하는 App이 막강한 관리자의 모든 권한을 가질 필요 없음 서비스 계정(Service Account) 활용 Tips
  • 24.
  • 25.
    25 Cross Project Networking(XPN) ● 동일 조직 내에 있는 여러 프로젝트가 같은 네트워크 공유 ○ 하나의 XPN Host 프로젝트가 다른 프로젝트에 네트워크를 제공 ○ 동시에 중앙 집중식 네트워크 관리
  • 26.
  • 27.
    27 나에게 공유된 XPN 프로젝트에공유된 VPC 네트워크(XPN) 목록 VM 생성 중 선택 가능한 VPC 네트워크(XPN) 목록
  • 28.
    28 GCP 계정 및권한 관리 Best Practice
  • 29.
    29 중앙집중식 관리 ● 조직과Cloud 자원 구조 맵핑 ● 폴더를 팀으로 (또는 공유 자원) ● 프로젝트를 서비스 단위로
  • 30.
    30 기업 계정 동기화 ●Google Cloud Directory Sync (GCDS) ● LDAP 또는 Active Directory의 계정 단방향 동기화
  • 31.
    31 애플리케이션 코드에 APIKey 포함하지 않도록 ● Compute VM 내에서 실행되는 경우 자동으로 Service Account Actor Role 권한 ○ Google Managed Key ● 독립 애플리케이션에서는 GOOGLE_APPLICATION_CREDENTIALS 환경 변수 ○ User Managed Key
  • 32.
    32 인증 보안 강화 ●Multi-Factor Authentication ● Root 계정 및 텍스트 암호를 통한 인증 비활성화
  • 33.
    33 최소한의 필요한 권한만부여 ● 리소스(서비스) 별 권한 부여 ● 슈퍼 관리자 지양 ⇒ 업무 별 관리자 ● 최소한의 권한 부여 후, 요청이 있을 때 추가 권한 부여
  • 34.
    34 User 대신 Group에권한 부여 ● 유연한 권한 관리 가능 ● 일관된(consistent) 권한 가능 (예) Admin들에게는 동일한 권한
  • 35.
    35 Audit Log ● 권한침해 문제 발생을 빠르게 발견 및 정확한 분석 가능 ● GCP Logging 서비스 이용 ○ Stackdriver Agent를 이용하여 중앙에 수집 ● 로깅 대상 ○ 리소스 접근 시도 및 결과 ○ IAM Policy 변경 ○ 애플리케이션에 의한 액세스 포함
  • 36.
    36 서비스 계정 또는SSH Key Rotate ● Key 유출로 인한 피해 최소화 ● Google Managed Key의 경우 GCP에 의해 자동 Rotation ● User Managed Key는 API를 사용하여 자동 Rotation 구현 ● API를 사용하여 SSH Key 자동 Rotation 구현
  • 37.
    37 빌링 ProjectProjectProject Billing Account Project levelbill Project level bill Project level bill Bills itemised by resource type ● 빌링 계정 ○ 빌링 정보(예: 신용카드) ○ 조직(또는 계정) 내에 여러 개 생성 가능 ● 프로젝트 단위 빌링 ○ 프로젝트 당 한 개의 빌링 계정 선택 ○ 리소스 타입에 따라 빌링 아이템 구분
  • 38.
    38 빌링 관련 권한 ●Billing Admin (조직 레벨) ○ Manage payment information ○ Setup cost controls and alerts ○ Setup billing exports ○ Create new billed projects ○ View costs ■ Invoices ■ Credits ■ History ■ Data exports ● Project Billing Manager (프로젝트 레벨) ○ 프로젝트의 빌링 계정 변경
  • 39.
    39 표준 VM Image공유 ● 표준 VM Image를 여러 프로젝트에서 사용 ● Image 공유 프로젝트를 통해 공유 ○ Image User IAM Role
  • 40.
    40 프로젝트 관리자 역할분리 ● 하나의 프로젝트에 대한 “네트워크/보안 관리자” 역할과 “인스턴스 관리자” 역할 분리 ● 다른 지식과 목표를 가지는 관리자
  • 41.
  • 42.
    42 요약 ● 클라우드 IAM요구사항 ○ 세부적인 권한 제어 ○ 중앙 집중식 관리 ○ 빌링 관리 ○ 애플리케이션의 API 접근 권한 체크 ○ 클라우드 운영 조직 관리
  • 43.
    43 요약 ● GCP IAM ○계정 관리: Google Account, Service Account, G Suite Domain, Google Groups ○ 권한 관리: Primitive/Predefined/Custom Role ○ 리소스 관리: 계층형(조직 모델) 구조 vs 플랫 구조 ○ 서비스 계정: Google Cloud API를 사용하는 애플리케이션과 VM의 권한 제어
  • 44.
    44 요약 ● Cross ProjectNetworking (XPN) ● GCP IAM 기반 계정 및 권한 관리 Best Practice ○ 중앙집중식 관리 ○ 기업 계정 동기화 ○ API Key 관리 ○ 인증 보안 강화 ○ 최소한의 권한 부여 ○ User 대신 Group 권한 부여 ○ Audit Log ○ Key Rotation ○ 빌링
  • 45.
    45 감사합니다. Free credit!! 페이스북 구글클라우드 사용자 그룹 https://www.facebook.com/groups/googlecloudkorea/