Google cloud platform Can';通过gsutil将cp文件发送到Google对象存储

Google cloud platform Can';通过gsutil将cp文件发送到Google对象存储,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,我确信我已授予我可以授予的所有权限: louchenyao@dev ~> gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * 290002171211-compute@developer.gserviceaccount.com louchenyao@gmail.com To set the active account, run: $ gcloud con

我确信我已授予我可以授予的所有权限:

louchenyao@dev ~> gcloud auth list
                  Credentialed Accounts
ACTIVE  ACCOUNT
*       290002171211-compute@developer.gserviceaccount.com
        louchenyao@gmail.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

louchenyao@dev ~> curl -H 'Metadata-Flavor: Google' "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes"
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/trace.append
louchenyao@dev ~> gsutil cp pgrc.sh gs://hidden-buckets-name
Copying file://pgrc.sh [Content-Type=text/x-sh]...
AccessDeniedException: 403 Insufficient Permission
我已经授予云计算默认帐户


如果我切换到我的个人帐户,它会工作。所以我想知道我是否错过了一些重要的权限。

要使用默认服务帐户授予从VM实例写入bucket的权限,请执行以下操作: ,请按照以下步骤操作:

  • 停止
    实例
  • 输入
    VM实例详细信息
    Edit
  • 更改
    云API访问范围
    存储:完整
  • 保存更改并启动实例
也可以在控制台的
标识和API访问
部分设置创建VM实例

如果您不想使用默认服务帐户,请使用它来访问bucket



要使用默认服务帐户授予从VM实例写入bucket的权限: ,请按照以下步骤操作:

  • 停止
    实例
  • 输入
    VM实例详细信息
    Edit
  • 更改
    云API访问范围
    存储:完整
  • 保存更改并启动实例
也可以在控制台的
标识和API访问
部分设置创建VM实例

如果您不想使用默认服务帐户,请使用它来访问bucket



为实例启用了哪些作用域?确保已启用“存储读写”或“存储已满”。我建议使用IAM角色而不是作用域。设置“允许完全访问所有云API”。然后使用IAM角色控制权限。另外:请记住,在授予这些作用域后,您将重新启动实例。@BrandonYarbrough-谢谢。您不必重新启动实例,您必须先关闭实例以更改作用域。“我应该提到的。”约翰汉利,谢谢。但是我很好奇为什么将scope设置为devstorage.read\u write是不够的。我不明白你所说的
是不够的
。权限处理GCE实例的方式。首先,将IAM权限附加到GCE使用的服务帐户。您可以使用作用域减少这些权限,但不能使用服务帐户尚未具有的作用域添加权限。为实例启用了哪些作用域?确保已启用“存储读写”或“存储已满”。我建议使用IAM角色而不是作用域。设置“允许完全访问所有云API”。然后使用IAM角色控制权限。另外:请记住,在授予这些作用域后,您将重新启动实例。@BrandonYarbrough-谢谢。您不必重新启动实例,您必须先关闭实例以更改作用域。“我应该提到的。”约翰汉利,谢谢。但是我很好奇为什么将scope设置为devstorage.read\u write是不够的。我不明白你所说的
是不够的
。权限处理GCE实例的方式。首先,将IAM权限附加到GCE使用的服务帐户。您可以使用作用域减少这些权限,但不能使用服务帐户尚未具有的作用域添加权限。