2. Google Cloud의 권한 관리: IAM, Service account

이대현·2024년 5월 16일
1

Cloud Computing

목록 보기
8/14
post-thumbnail

1. GCP 리소스 계층 구조

리소스 계층 구조는 네 가지 level로 이루어져 있으며, 순서대로 Resource, Project, Folder, Organization Node로 구성된다.

리소스 계층 구조를 이해하는 것이 중요한 이유는 Google Cloud를 사용할 때 정책을 관리하고 적용하는 방법과 직접적으로 관련되어 있기 때문이다.

리소스 (Resource)

  • 가상 머신, Cloud Storage 버킷, BigQuery의 테이블 등 Google Cloud의 다양한 항목들이 해당된다.

프로젝트 (Project)

  • GCP 설정을 하는 단계
    • API 관리, 결제 사용 설정, 공동작업자 추가 및 제거 등
  • 프로젝트 ID, Name, Number의 식별자를 가지며, 각 프로젝트와 리소스는 1:1 관계를 가진다.
    • ID: GCP 내에서 전역적으로 고유하며, 변경 불가능
      • (추가) 프로젝트를 생성하는 동안 사용자가 직접 지정할 수 있다. 생성된 후에는 변경할 수 없지만 생성 중에는 수정이 가능
    • Name: 사용자가 언제든 변경 가능
    • Number: 리소스를 추적하기 위해 내부적으로만 사용. 사용자는 몰라도 된다.

폴더 (Folder)

  • 폴더는 세 번째 수준으로, 프로젝트를 그룹화하고 리소스에 정책을 할당하는데 사용된다.
    • 예를 들면, 부서마다 자체 Google Cloud 리소스가 있을 수 있는데, 폴더를 사용하면 이러한 리소스를 부서별로 그룹화할 수 있다.
    • 또한 폴더를 사용하면 팀에 관리 권한을 위임하여 독립적으로 작업하도록 할 수 있다.
  • 공통 폴더:
    • 다른 폴더도 폴더에 포함 가능하다.
    • 폴더의 리소스는 해당 폴더의 정책 및 권한을 상속하기 때문에 한 팀에서 관리하는 2개의 서로 다른 다른 프로젝트가 있는 경우 정책을 공통 폴더에 넣어 프로젝트에 동일한 권한을 갖도록 할 수 있다.
    • 팀의 권한이나 정책이 바뀌었을 때, 각 프로젝트별로 일일히 변경하지 않아도 된다.

조직 노드 (Organization Node)

  • 최상위 수준으로, 모든 프로젝트, 폴더, 리소스를 포함한다.

2. IAM 정책 (Identity and Access Management)

IAM은 Google Cloud의 접근 및 권한 관리를 위한 도구로, 누가 어느 리소스에서 무엇을 할 수 있는지를 정의한다.

사실 구글 클라우드 뿐만 아니라, 다른 모든 클라우드 인프라에서도 중요한 개념이다.

IAM 정책 구성

  • Principle: '누구' 부분에 해당하며, Principle마다 고유 식별자가 있고 보통 이메일 주소이다. 즉, Principle은 Google 계정, Google 그룹, 서비스 계정, 또는 Cloud ID 도메인으로 정의된다.
  • Role: '무엇을' 부분에 해당하며, Role은 특정 작업을 수행할 수 있는 권한의 집합이다. Role을 사용하여 사용자 또는 그룹에게 권한을 할당할 수 있다.

IAM 역할

권한을 정확하게 할당하기 위해 커스텀 롤을 사용하는 것이 제일 좋음

  • Basic Role: 소유자, 편집자, 뷰어, 결제 관리자 같은 일반적인 권한
  • Predefined Role: 특정 Google Cloud 서비스에서 제공되는 사전 정의된 권한
    • 예를 들어, Compute Engine의 인스턴스 관리자
  • Custom Role: Project 또는 Organization Node 수준에서 사용자가 직접 정의한 권한
    • 예를 들어, 특정 프로젝트에서만 사용 가능하도록 역할을 줄 수 있음
    • 폴더 수준에서는 적용 불가능

3. Service account

사람이 아닌, VM에 권한을 부여할 때는 Service account를 만들어 사용한다.

예를 들면, Cloud Storage에 데이터를 저장할 때 특정 VM 위에서 실행 중인 애플리케이션만 액세스하길 원한다면 서비스 계정을 만들어 특정 가상머신을 클라우드 스토리지에 인증시키는 것이다.

  • 이메일 주소로 만들 수 있고, 비밀번호 대신 암호화 키를 통해 리소스에 액세스 한다.
  • 서비스 계정 자체도 GCP 내에서 리소스이기 때문에, IAM 정책을 가질 수 있다. 즉, 서비스 계정에 대한 권한을 분리해서 유지할 수 있는 것이다.

4. 구글 클라우드를 사용하는 4가지 방법

  • Google Cloud 콘솔: GUI를 통해 제공되는 사용자 관리 도구. 브라우저에서 SSH를 통해 인스턴스에 연결할 수 있다.
  • Cloud SDK와 Cloud Shell: 리소스 및 애플리케이션을 관리하기 위한 CLI
    • 브라우저 기반 CLI
    • 클라우드 리소스에 대한 CLI 는 Cloud Shell에서 제공된다.
  • APIs: Google API 탐색기를 통해 사용 가능한 API와 버전을 확인할 수 있다.
  • Google Cloud 앱: Compute Engine 인스턴스에 SSH로 연결하고 로그를 확인하며, Cloud SQL 인스턴스를 관리할 수 있는 앱을 제공한다. 또한 프로젝트의 결제 정보와 예산을 확인하고 알림을 받을 수 있다.
profile
삽질의 기록들 👨‍💻

0개의 댓글