0

개발 환경에서 사용할 서비스 계정을 만들었습니다. 자격 증명이 소스 제어로 확인 되었기 때문에 해당 서비스에 대한 액세스를 잠급니다. 최소한.서비스 계정에서 PubSub 구독을 만들 수 있지만 구독을 읽을 수 없습니다.

새로운 호스트를 돌릴 때, 우리의 앱은 새로운 PubSub 구독을 만들고, 새로 생성 된 구독을 듣고, 끝나면 그것을 삭제합니다. 우리는 시간의 경과에 따라 호스트의 수가 증가하거나 감소하기 때문에 미리 구성된/하드 코딩 된 구독 수가 많다는 점을 고려하여이 모델을 선택했습니다. 가능한 경우 호스트 별 구성 (호스트 구독 맵의 형태로)을 원하지 않았습니다. 우리는 로컬 개발 환경에서 디버깅에 이상적인 동일한 동작을 원합니다.

"개발"특정 주제를 만들고 개발 서비스 계정에 Pub/Sub Admin 역할을 부여하여 해당 주제에 대한 가입을 허용합니다. 또한 서비스 계정에 구독을 만들 수있는 프로젝트 수준의 사용 권한을 부여했습니다. 서비스 계정은 새 구독을 성공적으로 만들어 주제에 첨부 할 수 있지만 새로운 구독에서 읽으려고하면 권한 거부 오류가 발생합니다.

새로 만든 구독을 확인할 때 해당 구독을 만든 서비스 계정에 해당 구독에 대한 모든 사용 권한이 부여되지 않았기 때문입니다. 구독을 만든 계정에 최소한 읽기 권한이 있어야합니다.

서비스 계정에 구독을 만들고 항목에 첨부 한 다음 해당 구독에서 읽는 동안 서비스 계정에 다른 구독이나 항목에 대한 액세스 권한을 부여하지 않는 방법이 있습니까? 서비스 계정에 모든 구독을 읽는 액세스 권한이있는 "상위 수준"역할을 제공 할 수는 있지만 개발 전용 계정을 갖는 목적을 상실한 것입니다.

답변

0

서비스 계정이 구독을 만든 후에 구독에 대한 setIamPolicy를 호출하여 구독에 대한 읽기 액세스 권한을 부여 할 수 있습니다. 이는 서비스 계정에 프로젝트의 pubsub 관리 역할을 부여했기 때문에 효과적입니다. 여기에는 프로젝트의 모든 구독에 대해 setIamPolicy를 호출하는 기능이 포함되어 있습니다. 이 개발 서비스 계정을하기 때문에

https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/setIamPolicy

+0

, 나는 프로젝트의 모든 * 구독이, 유일한 사람이 개발 전용 주제에 부착 *에 SetIamPolicy()를 호출 할 수 있도록 원하지 않는로 나는 그것을 허가했다. 프로젝트 계정이 아닌 사용자가 새로 만든 구독을 읽을 수있는 권한을 부여하는 방법이 있습니까? 권한이 주제별이 아닌 프로젝트 별로만있는 경우 새 프로젝트를 만드는 경우를 제외하고는 테스트 계정 (프로덕션 주제/구독 권한 없음)을 가질 방법이 없습니다 ...? – Brentonium

+0

아, 죄송합니다. 나는 오해했다. 저는 IAM 정책의 목적을 위해 주제 나 구독을 그룹화 할 방법을 모르고 있으며 작성시 구독에 IAM 정책을 지정할 수없는 것처럼 보입니다. 이상적은 아니지만 구독을 유지하기위한 목적으로 새 프로젝트를 만들 수 있습니다. –