使用我的用户主体(非服务帐户)登录时,如何限制 Oauth2 范围:
gcloud 身份验证登录
背景:我创建了一个 Gsuite Takeout,并获得了 Takeout Bucket。现在我想下载所有文件,但我想授予 gcloud 对 Google Storage 的只读权限。创建具有有限范围的服务帐户似乎行不通,因为 Takeout Bucket 似乎有点“特殊”——还有更多详细信息吗?
答案1
根据您的描述,我对您的使用情况的理解是您希望限制对云存储的权限以避免滥用您的凭据,如果我错了,请纠正我。但是“取出”操作需要管理员帐户,该帐户具有全面的权限,因此这似乎是冲突的。
您可以使用‘gcloud 身份验证撤销’在执行取出等操作后,为了禁止您的账号通过 gcloud CLI 进行访问。
希望能帮助到你。
答案2
我不太熟悉 Gsuite Takeout,但我在 Google Cloud Storage 上看到了我的票价份额。这里有一个困扰我的问题,你是想限制你自己的 gsuite 帐户吗?我不太明白向 GCS 授予帐户只读权限的目的。我发现了这一点邮政建议使用 gsutil 和您的帐户。但请详细说明您的用例。
我期待你的回复。
答案3
当您使用 Google Takeout 时,Google 会创建一个 Google Cloud Storage 存储桶并将导出的数据放在该存储桶中。该存储桶归 Google 所有,您导出数据的用户被授予数据的只读访问权限。由于该存储桶归 Google 所有,因此除了发起用户之外,没有人对该存储桶具有读取权限(其他人能够读取您的数据会很糟糕)。这就是您的服务帐户无法使用的原因。
gcloud 始终请求完整的cloud.platform
OAuth 范围,从而为其提供 Cloud Storage 的完整权限。Takeout 存储桶本身仅授予您读取权限,但您拥有读写访问权限的任何其他存储桶都可供 gcloud 读写访问。
为了实现您的要求,您需要编写一个与 Cloud Storage API 交互并仅使用范围的脚本devstorage.read_only
。还有第三方工具,例如同步和盖姆支持从具有只读访问权限的存储桶下载 Takeout 文件。