이 문서에서는 Eventarc가 Google Cloud 및 타사 소스에서 이벤트를 수신하고 이벤트를 GKE 및 Cloud Run for Anthos 서비스에 전송할 수 있도록 서비스 계정에 Identity and Access Management(IAM) 역할을 부여하는 방법을 설명합니다.
Eventarc의 액세스 제어 옵션에 대한 자세한 내용은 액세스 제어를 참조하세요.
필요한 IAM 역할
서비스 계정에 적절한 역할을 부여합니다.
Cloud 감사 로그
Eventarc는 Google Cloud 소스에서 이벤트를 수신하기 위해 Cloud 감사 로그를 사용하여 GKE 대상으로 전달합니다.
사용자 역할
사용자에게 Eventarc 관리자 역할(roles/eventarc.admin
)을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.PRINCIPAL
은 바인딩이 추가되는 주 구성원입니다.user|group|serviceAccount:email
또는domain:domain
형식이어야 합니다.예:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
,domain:example.domain.com
서비스 계정 역할
-
서비스 계정에 Pub/Sub 구독자 역할(
roles/pubsub.subscriber
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
서비스 계정에 모니터링 측정항목 작성자 역할 (
roles/monitoring.metricWriter
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
-
서비스 계정에 Eventarc 이벤트 수신자 역할(
roles/eventarc.eventReceiver
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/eventarc.eventReceiver"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.MY_SERVICE_ACCOUNT
: 서비스 계정의 이름입니다.
직접 이벤트
Eventarc는 Cloud Storage 버킷 업데이트와 같은 직접 이벤트 알림을 대상 GKE 서비스로 전송합니다.
사용자 역할
사용자에게 Eventarc 관리자 역할(roles/eventarc.admin
)을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.PRINCIPAL
은 바인딩이 추가되는 주 구성원입니다.user|group|serviceAccount:email
또는domain:domain
형식이어야 합니다.예:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
,domain:example.domain.com
서비스 계정 역할
-
서비스 계정에 Pub/Sub 구독자 역할(
roles/pubsub.subscriber
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
서비스 계정에 모니터링 측정항목 작성자 역할(
roles/monitoring.metricWriter
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
-
서비스 계정에 Eventarc 이벤트 수신자 역할(
roles/eventarc.eventReceiver
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/eventarc.eventReceiver"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.MY_SERVICE_ACCOUNT
: 서비스 계정의 이름입니다.
Cloud Storage 서비스 계정 역할
다른 직접 이벤트가 아닌 직접 Cloud Storage 이벤트에 대한 트리거를 만드는 경우 Cloud Storage 서비스 계정에 Pub/Sub 게시자 역할(roles/pubsub.publisher
)을 부여합니다.
SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/pubsub.publisher"
PROJECT_ID
를 Google Cloud 프로젝트 ID로 바꿉니다.
게시/구독 주제
Eventarc는 타사 소스에서 이벤트를 수신하기 위해 Pub/Sub 알림을 사용하여 GKE 대상으로 전송합니다.
사용자 역할
사용자에게 Eventarc 관리자 역할(roles/eventarc.admin
)을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.PRINCIPAL
은 바인딩이 추가되는 주 구성원입니다.user|group|serviceAccount:email
또는domain:domain
형식이어야 합니다.예:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
,domain:example.domain.com
서비스 계정 역할
-
서비스 계정에 Pub/Sub 구독자 역할(
roles/pubsub.subscriber
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
서비스 계정에 모니터링 측정항목 작성자 역할(
roles/monitoring.metricWriter
)을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
다음 값을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID입니다.MY_SERVICE_ACCOUNT
: 서비스 계정의 이름입니다.