Cri*_*ian 6 google-cloud-storage google-cloud-platform
我创建了一个具有“存储管理员”角色的服务帐户“my-service-account@blabla.com”。现在,我想将此帐户限制为仅访问特定存储桶 - “gs://my-project/my-bucket”
现在的问题是 sa 用户可以访问我的所有存储桶。我无法从存储桶权限(我不希望用户访问的存储桶)中删除“my-service-account@blabla.com”,因为这些权限是继承的。我该怎么办?干杯,克里斯
我有同样的问题。
删除所有不应有权访问项目的所有存储桶的服务帐户。
在“IAM -> 服务帐户”中创建一个新的服务帐户“my_user”。在创建过程中不要授予它任何权利(这将允许访问项目的所有存储桶,如您在问题中所述)
为存储桶中的新服务帐户授予权限:
gsutil iam ch serviceAccount:my_user@my_project.iam.gserviceaccount.com:roles/storage.objectViewer gs://my_bucket
(我无法使用 GCP UI 执行此操作)
替换 my_user、my_project 和 my_bucket。“storage.objectViewer”赋予用户读取对象的权限。
警告:您需要一些时间才能在“bucket -> Permissions”中看到这个“正确”,您还在“gsutil iam get gs://my-bucket”的输出中看到它!?当你看到它时,如果你看到它对我来说是无法完全重现的。
根据我的测试,服务帐户现在只能访问此存储桶,而不能访问项目中的其他存储桶。
您可以使用Cloud IAM将服务帐号的访问权限限制为特定存储分区。
这是您可以使用的 gsutil 命令:
gsutil iam ch serviceAccount:my-service-account@project.iam.gserviceaccount.com:objectAdmin gs://my-project/my-bucket
Run Code Online (Sandbox Code Playgroud)
要从存储桶上的所有角色中删除服务帐号:
gsutil iam ch -d serviceAccount:my-service-account@project.iam.gserviceaccount.com gs://my-project/my-bucket
Run Code Online (Sandbox Code Playgroud)
例如,授予服务帐户 WRITE (R: READ,W: WRITE,O: OWNER) 访问存储桶的权限:
gsutil acl ch -u my-service-account@project.iam.gserviceaccount.com:W gs://my-project/my-bucket
Run Code Online (Sandbox Code Playgroud)
要从存储桶中删除服务帐户的访问权限:
gsutil acl ch -d my-service-account@project.iam.gserviceaccount.com gs://my-project/my-bucket
Run Code Online (Sandbox Code Playgroud)
我建议从存储桶中删除服务帐户的访问权限。然后授予对特定存储桶的访问权限。
归档时间: |
|
查看次数: |
8302 次 |
最近记录: |