我对GCP还很陌生,但我曾在AWS上使用AWS Cognito Assume Role API和组织账号池以及创建自定义URL来提供临时访问AWS资源的服务。
我现在想为GCP创建类似的解决方案。我希望能够为500个并发用户提供访问权限。有没有人可以提供什么最佳方法?
经过我的研究和开发,可以使用服务账户,但存在一些项目限制。
我对GCP还很陌生,但我曾在AWS上使用AWS Cognito Assume Role API和组织账号池以及创建自定义URL来提供临时访问AWS资源的服务。
我现在想为GCP创建类似的解决方案。我希望能够为500个并发用户提供访问权限。有没有人可以提供什么最佳方法?
经过我的研究和开发,可以使用服务账户,但存在一些项目限制。
import googleapiclient.discovery
resourceManager = googleapiclient.discovery.build("cloudresourcemanager","v1")
result = resourceManager.projects().getIamPolicy(resource="<ProjectId>").execute()
print(result)
body={
'policy': {
'bindings': [
{
'role': 'roles/storage.objectViewer',
'members': [
'user:myUser@example.com'
],
'condition': {
'title': 'expirable access',
'expression': 'request.time < timestamp("2020-10-01T00:00:00.000Z")'
}
}
],
'version': 3
}
}
result = resourceManager.projects().setIamPolicy(resource="<ProjectId>", body=body).execute()
print(result)
注意:您需要针对要授予的每个角色重复绑定代码块
请小心操作
在这两种情况下,您都将设置IAM策略,这将覆盖项目上的现有策略。顺便说一句,一个好的做法是在设置策略之前执行getIamPolicy(也在我的示例中),并在设置之前更新结果。