Admin API의 액세스 제어

App Engine Admin API는 액세스 제어에 Identity and Access Management(IAM)를 사용합니다.

App Engine Admin API의 액세스 제어는 프로젝트 수준에서 구성할 수 있습니다. Google Cloud 프로젝트 및 프로젝트 내의 리소스에 대한 액세스 권한은 사용자 계정, 도메인, 그룹 또는 서비스 계정에 부여할 수 있습니다. 예를 들면 다음과 같습니다.

  • 프로젝트 내의 모든 리소스에 대한 액세스 권한을 개별 사용자 또는 서비스 계정에 부여합니다.
  • 프로젝트 내의 리소스에 대한 부분 액세스 권한을 부여합니다. 예를 들어 리소스 읽기 전용 액세스 또는 새 버전 배포 액세스 권한을 부여하지만 이러한 버전의 트래픽 구성 액세스 권한은 제외합니다.

IAM과 그 기능에 대한 자세한 설명은 IAM 문서를 참조하세요.

모든 Admin API 메서드에는 호출자에게 필요 권한을 요구합니다. Admin API가 지원하는 모든 권한 및 역할 목록은 다음 섹션을 참조하세요.

권한 및 역할

이 섹션에서는 Admin API가 지원하는 권한과 역할을 요약합니다.

App Engine 역할에 대한 자세한 내용은 App Engine 액세스 제어를 참조하세요.

필수 권한

다음 표에서는 호출자가 각 메소드를 호출하는 데 필요한 권한 목록을 보여줍니다.

메소드 필수 권한
apps.create 요청된 Application 리소스에 대한 appengine.applications.create 권한
apps.get 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.patch 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.repair 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.authorizedCertificates.create 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.authorizedCertificates.delete 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.authorizedCertificates.get 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.authorizedCertificates.list 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.authorizedCertificates.patch 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.authorizedDomains.list 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.domainMappings.create 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.domainMappings.delete 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.domainMappings.get 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.domainMappings.list 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.domainMappings.patch 요청된 Application 리소스에 대한 appengine.applications.update 권한
apps.locations.get 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.locations.list 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.operations.get 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.operations.list 요청된 Application 리소스에 대한 appengine.applications.get 권한
apps.services.delete 요청된 Service 리소스에 대한 appengine.services.delete 권한
apps.services.get 요청된 Service 리소스에 대한 appengine.services.get 권한
apps.services.list 요청된 Application 리소스에 대한 appengine.services.list 권한
apps.services.patch 요청된 Service 리소스에 대한 appengine.services.update 권한
apps.services.versions.create 요청된 Service 리소스에 대한 appengine.versions.create 권한
apps.services.versions.delete 요청된 Version 리소스에 대한 appengine.versions.delete 권한
apps.services.versions.get 요청된 Version 리소스에 대한 appengine.versions.get 권한
apps.services.versions.list 요청된 Service 리소스에 대한 appengine.versions.list 권한
apps.services.versions.patch 요청된 Version 리소스에 대한 appengine.versions.update 권한
apps.services.versions.instances.debug 요청된 Instance 리소스에 대한 appengine.instances.enableDebug 권한
apps.services.versions.instances.delete 요청된 Instance 리소스에 대한 appengine.instances.delete 권한
apps.services.versions.instances.get 요청된 Instance 리소스에 대한 appengine.instances.get 권한
apps.services.versions.instances.list 요청된 Version 리소스에 대한 appengine.instances.list 권한

역할

다음 표에서는 App Engine Admin API IAM 역할과 각 역할에 포함된 모든 권한 목록을 보여줍니다. 각 권한은 특정 리소스 유형에 적용할 수 있습니다.

역할 포함된 권한

App Engine 관리자

/roles/appengine.appAdmin

모든 애플리케이션 구성 및 설정에 대한 읽기/쓰기/수정 액세스

appengine.applications.disable

appengine.applications.get
appengine.applications.update
appengine.instances.delete
appengine.instances.enableDebug
appengine.instances.get
appengine.instances.list
appengine.instances.update

appengine.operations.cancel

appengine.operations.delete

appengine.operations.get
appengine.operations.list
appengine.runtimes.actAsAdmin

appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 배포자

/roles/appengine.deployer

모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.

새로운 버전 생성만 가능한 쓰기 액세스입니다. 트래픽을 수신하지 않는 버전을 삭제하는 경우를 제외하면 기존 버전을 수정할 수 없습니다. 버전에 대한 트래픽을 구성할 수 없습니다.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.create

appengine.services.get
appengine.services.list
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 서비스 관리자

/roles/appengine.serviceAdmin

모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.

트래픽 구성을 포함한 서비스 수준 및 버전 수준 설정에 대한 쓰기 액세스입니다. 앱 버전을 배포할 수 없습니다.

appengine.applications.get
appengine.instances.delete
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 뷰어

/roles/appengine.appViewer

모든 애플리케이션 구성과 설정에 대한 읽기 전용 액세스입니다.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 코드 뷰어

/roles/appengine.codeViewer

모든 애플리케이션 구성, 설정, 배포된 소스 코드에 대한 읽기 전용 액세스입니다.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.getFileContents
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

roles/owner, roles/editor, roles/viewer 역할에는 다른 Google Cloud 서비스의 권한도 포함됩니다. 이러한 기본 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.

커스텀 역할에 사용할 수 없는 권한

사전 정의된 IAM 역할 범위 이상의 액세스를 구성하려는 경우 커스텀 역할을 만들 수 있습니다. 그러나 다음 권한은 커스텀 역할에 사용할 수 없습니다.

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

이러한 권한은 어떠한 작업에서도 필요 없습니다.

Google Cloud Console을 통한 액세스 제어

Google Cloud Console을 사용하여 Google Cloud 프로젝트의 액세스 제어를 관리할 수 있습니다.

프로젝트 전체 액세스 제어 설정

주 구성원에게 Google Cloud 프로젝트 및 리소스 액세스 권한을 부여하려면 액세스 권한 부여, 변경, 취소를 참조하세요.

서비스 계정 액세스 제어 설정

Google Cloud 프로젝트에서 서비스 계정을 만들어 앱에 Google Cloud 서비스에 대한 프로그래매틱 액세스 권한을 부여할 수 있습니다. 예를 들어 한 Google Cloud 프로젝트에서 App Engine Admin API를 사용하여 다른 Google Cloud 프로젝트로 HTTP 요청을 보낼 수 있도록 하려면 서비스 계정을 사용합니다.

서비스 계정을 만들고 액세스 권한을 부여하려면 다음 IAM 주제를 참조하세요.