액세스 제어

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

복잡한 요구가 적은 소규모 프로젝트를 진행하는 경우, 기본 역할을 사용할 수 있습니다. 보다 세분화된 액세스 제어가 필요한 경우, App Engine의 사전 정의된 역할이 포함된 ID 및 액세스 관리(IAM) 역할을 사용할 수 있습니다. IAM에 대한 자세한 내용은 IAM 문서를 참조하세요.

역할을 할당하는 방법에 대한 자세한 내용은 프로젝트 액세스 권한 부여를 참조하세요.

사전 정의된 IAM 역할에 부여되는 권한부터 메소드 호출 수준에 이르는 자세한 내용은 Admin API 문서의 역할을 참조하세요.

기본 역할

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 도구를 사용할 권한을 부여하려면 사용자 계정에 저장소 관리자 역할 및 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에서 보안 검사 실행
  • Datastore, 작업 대기열, 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 가변형 환경의 서비스 계정을 참조하세요.

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

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

App Engine flexible environment for .NET docs