我尝试按照这个指南使用一个非默认的服务账号部署一个服务,但是它说我需要在正在部署的服务账号上拥有“iam.serviceAccounts.actAs
”权限。我正在使用的服务账号是@cloudbuild.gserviceaccount.com
,但是我在项目的“权限”页面上没有看到添加它的选项。
我尝试按照这个指南使用一个非默认的服务账号部署一个服务,但是它说我需要在正在部署的服务账号上拥有“iam.serviceAccounts.actAs
”权限。我正在使用的服务账号是@cloudbuild.gserviceaccount.com
,但是我在项目的“权限”页面上没有看到添加它的选项。
打开Google Cloud Console。前往IAM & Admin -> 服务账号。
找到服务账号。勾选左侧的服务账号框。
在右侧的"Permissions"面板中,点击 ADD MEMBER
添加你的IAM成员邮箱地址。选择“服务账号” - > “服务账号使用者”进行角色选择。
点击保存
你也可以使用CLI:
gcloud iam service-accounts add-iam-policy-binding [SERVICE_ACCOUNT] --member [MEMBER_EMAIL] --role roles/iam.serviceAccountUser
gcloud run deploy <SERVICE>
长答案:
撇开我完全不同意当前答案的开头部分,iam.serviceAccounts.actAs
)之外,而是搜索英文名称(如“Service Account User”)之外,这个想法是您已经验证身份以进行部署的SA可能需要扮演计算引擎的用户或任何其他服务的用户来执行某些任务,因此需要模拟该帐号。iam.serviceAccounts.actAs
的英文名称。
[PROJECT_NUMBER]-compute@developer.gserviceaccount.com
添加权限(参考此指南),但我在服务账号页面上找不到这个选项,但我在IAM页面上找到了。我已经为我的Cloud Build服务账号添加了Secret Manager Admin
角色,但我的部署容器无法访问Secret Manager。 - sdfsdfgcloud iam service-accounts add-iam-policy-binding 89random-compute@developer.gserviceaccount.com --member='user:kmonsoor@example.com' --role='roles/iam.serviceAccountUser'
请注意额外的“=user:”部分。 - kmonsoorGRANT ACCESS
(位于主体列表上方、视图按主体下方的左侧)。请记住,此屏幕修改的是服务账号的IAM策略,而不是项目的IAM策略。 - John Hanley