액세스 제어

GCP 프로젝트 수준에서 역할을 사용하여 액세스 제어를 설정할 수 있습니다. GCP 프로젝트 구성원 또는 서비스 계정에 역할을 할당하여 Google Cloud Platform 프로젝트 및 리소스에 대한 액세스 수준을 결정하세요.

복잡한 요구가 적은 소규모 프로젝트를 작업할 때는 기본 역할을 사용해도 됩니다. 보다 세분화된 액세스 제어가 필요하다면 사전 정의된 App Engine 역할을 포함하고 있는 ID 및 액세스 관리(IAM) 역할을 사용합니다. IAM에 대한 자세한 내용은 IAM 문서를 참조하세요.

역할 할당 방법은 프로젝트 액세스 권한 부여를 참조하세요.

Admin API 문서의 역할에서는 사전 정의된 IAM 역할에 부여되는 권한부터 메소드 호출 수준에 이르는 자세한 내용을 확인할 수 있습니다.

기본 역할

App Engine 애플리케이션의 경우 GCP 프로젝트 구성원의 역할도 애플리케이션 배포 및 관리에 사용되는 명령줄 도구의 허용되는 작업을 제어합니다.

역할 GCP 콘솔 권한 도구 권한
Owner App Engine 애플리케이션을 만드는 데 필요합니다. 모든 뷰어 및 편집자 권한을 가지며 이외에도 배포된 소스 코드를 확인하고, 사용자를 초대하고, 사용자 역할을 변경하고, 애플리케이션을 삭제할 수 있습니다. App Engine 애플리케이션을 만드는 데 필요합니다. 애플리케이션 코드를 배포하고 모든 구성을 업데이트합니다.
Editor 애플리케이션 정보를 보고 애플리케이션 설정을 수정합니다. 애플리케이션 코드를 배포하고 색인/대기열/크론을 업데이트합니다.
Viewer 애플리케이션 정보를 봅니다. 로그를 요청합니다.

사전 정의된 App Engine 역할

사전 정의된 App Engine 역할을 통해 보다 세밀하게 액세스를 제어할 수 있습니다. 다음 표에 각 역할이 대상 사용자와 함께 나열되어 있습니다. 비교 표에서 모든 역할 기능을 확인할 수 있습니다.

역할 기능 대상 사용자
App Engine 관리자 모든 애플리케이션 구성 및 설정에 대한 읽기/쓰기/수정 액세스입니다.
  • 애플리케이션 소유자/관리자
  • 긴급 대기 엔지니어
  • 시스템 관리자
App Engine 서비스 관리자
  • 모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.
  • 트래픽 구성을 포함한 서비스 수준 및 버전 수준 설정에 대한 쓰기 액세스입니다.
  • 앱 버전을 배포할 수는 없습니다. 자세한 내용은 아래의 업무 구분을 참조하세요.
  • 출시 엔지니어
  • DevOps
  • 긴급 대기 엔지니어
  • 시스템 관리자
App Engine 배포자
  • 모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.
  • 새 버전을 만들고 배포할 수만 있는 쓰기 액세스 권한을 갖습니다.
  • 트래픽을 처리하지 않는 이전 버전을 삭제합니다.
  • 기존 버전을 수정하거나 트래픽 구성을 변경할 수 없습니다.

필요한 역할에 대한 자세한 내용은 아래의 배포 섹션을 참조하세요.

  • 배포 계정
  • 출시 엔지니어
App Engine 뷰어 모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.
  • 애플리케이션을 파악해야 하지만 수정할 필요는 없는 사용자
  • App Engine 구성의 정책 준수를 확인하는 감사 업무
App Engine 코드 뷰어 모든 애플리케이션 구성, 설정 및 배포된 소스 코드에 대한 읽기 전용 액세스입니다.
  • 애플리케이션 및 소스 코드에 대한 가시성이 필요하지만 수정할 필요는 없는 사용자
  • 프로덕션 문제를 진단해야 하는 DevOps 사용자

사전 정의된 역할 비교 표

다음 표에서는 사전 정의된 각 App Engine 역할의 기능을 전체적으로 비교합니다.

기능 App Engine 관리자 App Engine 서비스 관리자 App Engine 배포자 App Engine 뷰어 App Engine 코드 뷰어
모든 서비스, 버전, 인스턴스 나열
모든 애플리케이션, 서비스, 버전, 인스턴스 설정 보기
리소스 사용량, 로드 정보, 오류 정보 등 런타임 측정항목 보기
앱 소스 코드 보기 아니요 아니요 아니요 아니요
앱의 새 버전 배포 아니요 아니요 아니요
트래픽 분할 또는 이전 아니요 아니요 아니요
버전 시작 및 중지 아니요 아니요 아니요
버전 삭제 아니요 아니요
전체 서비스 삭제 아니요 아니요 아니요
SSH로 가변형 환경의 VM 인스턴스에 연결 아니요 아니요 아니요 아니요
인스턴스 종료 아니요 아니요 아니요 아니요
App Engine 애플리케이션 사용 중지 및 다시 사용 아니요 아니요 아니요 아니요
디스패치 규칙 업데이트 아니요 아니요 아니요 아니요
DoS 설정 업데이트 아니요 아니요 아니요 아니요
기본 쿠키 만료 업데이트 아니요 아니요 아니요 아니요
리퍼러 업데이트 아니요 아니요 아니요 아니요
Email API 승인된 발신자 업데이트 아니요 아니요 아니요 아니요

각 역할에서 부여하는 특정 IAM 권한에 대한 자세한 내용은 Admin API의 역할 섹션을 참조하세요.

사전 정의된 역할을 사용한 배포

앱의 새 버전을 배포하는 작업만 담당하는 사용자 계정에는 App Engine 배포자 역할이 권장됩니다. App Engine 관리자 역할을 지정할 수도 있으며, 이 역할은 여러 버전을 배포하는 기능을 비롯하여 추가적인 관리 권한을 갖습니다.

두 역할 중 하나를 사용하면 Admin API로 앱을 배포할 수 있는 충분한 권한이 사용자 계정에 부여됩니다. gcloud 명령어 또는 기타 App Engine 도구의 사용 권한을 부여하려면 사용자 계정에 Storage 관리자 역할 및 Cloud Container Builder 편집자 역할도 부여해야 합니다.

필요한 권한을 부여하는 방법은 IAM 역할을 사용한 배포를 참조하세요.

배포 작업과 트래픽 라우팅 작업 구분

조직에서는 애플리케이션 버전을 배포하는 작업과 새로 만든 버전에 유입되는 트래픽을 늘리는 작업을 구분하여 직무별로 따로 수행하는 경우가 많습니다. App Engine 배포자 역할과 App Engine 서비스 관리자 역할이 이러한 구분을 제공합니다.

  • App Engine 배포자 역할 - 사용자 계정에서 새 버전을 배포하고 트래픽을 처리하지 않는 이전 버전을 삭제할 수만 있습니다. App Engine 배포자 역할을 갖는 사용자 계정은 특정 버전으로 유입되는 트래픽을 구성하거나 디스패치 규칙, 인증 도메인 같은 애플리케이션 수준 설정을 변경할 수 없습니다.

  • App Engine 서비스 관리자 역할 - 사용자 계정에서 앱의 새 버전을 배포하거나 애플리케이션 수준 설정을 변경할 수 없습니다. 그러나 트래픽을 처리할 수 있는 버전을 변경하는 등 기존 서비스 및 버전의 속성을 변경할 권한이 있습니다. App Engine 서비스 관리자 역할은 새로 배포한 버전으로 유입되는 트래픽을 늘리는 업무를 담당하는 운영/IT 부서에 적합합니다.

사전 정의된 역할로 부여되지 않는 권한

위에 나열된 사전 정의된 역할 중 어느것도 다음과 같은 액세스 권한을 부여하지 않습니다.

  • App Engine 애플리케이션을 만듭니다.
  • 애플리케이션 로그를 확인하고 다운로드합니다.
  • GCP 콘솔에서 모니터링 차트를 확인합니다.
  • 결제를 사용하거나 중지합니다.
  • App Engine의 일일 지출 한도(이전 명칭: 예산)를 설정하고 지출한 금액을 확인합니다.
  • 커스텀 도메인 및 업로드한 SSL 인증서를 확인하고 수정합니다.
  • Cloud Security Scanner에서 보안 검사를 실행합니다.
  • 데이터 저장소, 작업 대기열, Memcache, Cloud Search, 기타 Cloud Platform 저장소 제품에 저장된 구성 또는 데이터에 액세스합니다.

App Engine의 서비스 계정

App Engine 애플리케이션을 만들면 App Engine 기본 서비스 계정이 생성되어 App Engine 서비스의 ID로 사용됩니다. App Engine 기본 서비스 계정은 GCP 프로젝트에 연결되어 App Engine에서 실행되는 앱 대신 작업을 실행합니다.

기본적으로 App Engine 기본 서비스 계정은 프로젝트의 편집자 역할을 갖습니다. 따라서 GCP 프로젝트에 변경사항을 배포하는 데 충분한 권한을 갖는 모든 사용자 계정은 해당 프로젝트의 모든 리소스에 대한 읽기/쓰기 액세스 권한으로 코드를 실행할 수도 있습니다.

GCP 콘솔의 권한 페이지에서 서비스 계정의 권한을 변경할 수 있습니다. 예를 들어 App Engine 기본 서비스 계정의 역할을 편집자에서 App Engine 애플리케이션의 액세스 요구사항에 가장 부합하는 역할로 변경하여 권한을 다운그레이드할 수 있습니다.

서비스 계정의 권한을 변경하는 방법은 다음과 같습니다.

  1. GCP 콘솔을 엽니다.

    권한 페이지로 이동

  2. 구성원 목록에서 App Engine 기본 서비스 계정의 ID를 찾습니다.

    App Engine 기본 서비스 계정은 다음과 같은 구성원 ID를 사용합니다.
    [YOUR_PROJECT_ID]@appspot.gserviceaccount.com

  3. 이제 드롭다운 메뉴를 사용하여 서비스 계정에 할당된 역할을 수정할 수 있습니다.

App Engine 앱 기본 서비스 계정을 포함해 서비스 계정의 키 이름을 바꾸거나 키를 만들려면 GCP 콘솔의 서비스 계정 페이지를 사용해 서비스 계정을 조회하고 수정합니다.

서비스 계정 페이지로 이동

서비스 계정을 사용하여 Cloud SDK 개발 도구를 비롯한 Cloud SDK 명령을 실행하려면 먼저 Google Cloud Platform 프로젝트에서 Google App Engine Admin API를 사용 설정해야 합니다. GCP 콘솔에서 API 라이브러리를 사용하여 GCP 프로젝트의 모든 API 및 서비스를 관리할 수 있습니다.

API 라이브러리 페이지로 이동

가변형 환경의 서비스 계정

App Engine 가변형 환경에서는 앱 대신 가변형 환경 관련 작업을 실행하는 Google 관리형 서비스 계정도 있습니다. 이 서비스 계정에 대한 자세한 내용은 App Engine 가변형 환경의 서비스 계정을 참조하세요.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Node.js 문서용 App Engine 가변형 환경