【问题标题】:Find permissions of service account associated with buckets查找与存储桶关联的服务帐户的权限
【发布时间】:2019-11-29 15:31:10
【问题描述】:

我已经使用命令创建了一个服务帐户

gcloud iam service-accounts create test-sa --display-name "TEST SA"

然后我继续授予此服务帐户在 GCS 存储桶上的管理员权限。

gsutil iam ch serviceAccount:test-sa@<PROJECT>.iam.gserviceaccount.com:admin gs://<BUCKET>

现在我想要一种方法来检查授予服务帐户的角色/权限。

一种方法是这样做:

gcloud projects get-iam-policy <PROJECT>  \
--flatten="bindings[].members" \
--format='table(bindings.role)' \
--filter="bindings.members: serviceAccount:test-sa@<PROJECT>.iam.gserviceaccount.com"

但是上面的命令返回空。

但是如果我获得了存储桶的 ACL,我可以清楚地看到存储桶的成员和角色。

gsutil iam get gs://<BUCKET>
{
  "bindings": [
    {
      "members": [
        "serviceAccount:test-sa@<PROJECT>.iam.gserviceaccount.com"
      ],
      "role": "roles/storage.admin"
    },
    {
      "members": [
        "projectEditor:<PROJECT>",
        "projectOwner:<PROJECT>"
      ],
      "role": "roles/storage.legacyBucketOwner"
    },
    {
      "members": [
        "projectViewer:<PROJECT>"
      ],
      "role": "roles/storage.legacyBucketReader"
    }
  ],
  "etag": "CAI="
}

有人可以指导我如何查看与服务帐户关联的存储桶/权限,而不是相反吗?

【问题讨论】:

  • 没有澄清答案?

标签: google-cloud-platform gcloud gsutil google-iam google-cloud-iam


【解决方案1】:

这里的问题是,您通过直接将权限分配给存储桶(存储桶级角色),然后在项目级进行检查,从而将项目级角色与存储桶级角色混合在一起。您可以找到有关此over here 的更多信息。

这就是为什么在检查项目(cloud projects get-iam-policy)或存储桶(gsutil iam get gs://)时会得到不同结果的原因。

您应该坚持使用存储桶级角色或项目级角色,并避免将两者混为一谈,就好像您开始混合它们一样,要知道每个用户拥有和曾经是什么角色会变得很棘手。

根据您计划管理的存储桶数量,您可能更容易坚持使用存储桶级别的角色,并在检查用户权限时迭代存储桶列表,因为您可以很容易地做到这一点Cloud SDK 在一点 for 循环中,例如:

for i in $(cat bucket-list.txt)
do
    gsutil iam get gs://$i
done

希望你觉得这很有用。

【讨论】:

    【解决方案2】:

    由于您在存储桶 ACL 级别授予权限并且不使用服务帐户 iam-binding, gcloud projects get-iam-policy 命令不会返回此权限。 您只能通过查询存储桶 ACL 获得。

    【讨论】:

      【解决方案3】:

      您可以在项目/文件夹/组织等资源以及存储桶、对象、计算引擎实例、KMS 密钥等单个资源上分配权限。没有一个命令可以检查所有内容。

      在项目级别的权限是项目范围的。在资源级别(例如对象),仅影响该对象。您需要检查所有内容以准确了解 IAM 成员拥有哪些权限/在哪里拥有权限​​。

      【讨论】:

        猜你喜欢
        • 2019-07-09
        • 2021-05-01
        • 2021-07-29
        • 1970-01-01
        • 1970-01-01
        • 2021-04-08
        • 1970-01-01
        • 2020-01-31
        • 1970-01-01
        相关资源
        最近更新 更多