【问题标题】:Google Cloud Storage - How to limit access to specific bucketGoogle Cloud Storage - 如何限制对特定存储桶的访问
【发布时间】:2019-01-19 16:04:35
【问题描述】:

我想通过给它一个合适的 OAuth2 令牌,让应用程序访问我的一个我的 Google 存储桶。

如果我对https://cloud.google.com/storage/docs/authentication 的理解正确,则无法将令牌限制为特定存储桶。

创建具有受限访问权限的令牌的最简单/推荐的方法是什么?我想我可以为此创建一个全新的 Google 帐户,调整存储桶的 ACL 以向新用户提供访问权限,然后使用该用户创建 OAuth 令牌。但这似乎……很尴尬,而且扩展性不强。

(以防万一:应用程序正在使用OAuth2 device flow,即它为我提供了一个我必须访问并用于登录的 Google URL)

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage google-oauth


    【解决方案1】:

    您可以创建一个服务帐号,其访问权限仅限于所需的存储桶。 https://cloud.google.com/iam/docs/understanding-service-accounts

    【讨论】:

    • 这似乎是一个很有前途的帐户。但是,创建了服务帐户后,如何使用它来创建 OAuth 令牌?该应用程序使用device flow,因此它为我提供了一个我必须登录的Google URL - 但似乎没有指定服务帐户的方法...
    • Ι 不认为 GCP IAM 服务账户提供限制对特定 (nameD) 资源的访问,例如在 AWS 权限的情况下
    【解决方案2】:

    使用存储桶 ACL 并将用户的电子邮件地址授予存储桶。用户的电子邮件地址必须是用户用于登录(Google 帐户)的 Google 帐户或 G Suite 的一部分。

    以下gsutil 示例将授予john.doe@example.com 对Bucket example-bucket 的权限write

    gsutil acl ch -u john.doe@example.com:WRITE gs://example-bucket
    

    文档:

    GSUTIL - ACLs

    【讨论】:

    • 没有其他用户,只有我想运行应用程序而不给它完全访问所有存储桶的权限。我的问题是,是否有比为此创建一个新的虚拟用户更优雅的方法。
    • 你是说 - 我想限制我的凭据,但仅限于从设备 X 运行时?
    • 差不多,虽然我不会说“来自设备 X”,而是说“某些代码”——不管是为了防止错误,还是因为我不完全信任它。抱歉,如果问题不够清楚。
    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2023-02-21
    • 2018-08-12
    • 2020-12-03
    • 2019-10-12
    • 2018-06-18
    • 2020-11-17
    • 2020-01-20
    相关资源
    最近更新 更多