【问题标题】:Accessing a GCS bucket from GCE without credentials using a S3 library使用 S3 库从 GCE 访问 GCS 存储桶而无需凭据
【发布时间】:2018-09-26 13:03:06
【问题描述】:

我正在尝试迁移使用 IAM 权限从 EC2 写入 S3 存储桶的现有应用程序。根据 Google 文档,您有办法保持相同的代码并利用 GCS api 与 S3 的兼容性。但是,使用相同的代码(我只是覆盖端点以使用 storage.googleapis.com 代替),我遇到了以下异常:

com.amazonaws.SdkClientException: The requested metadata is not found at http://169.254.169.254/latest/meta-data/iam/security-credentials/ at com.amazonaws.internal.EC2CredentialsUtils.readResource(EC2CredentialsUtils.java:115) at com.amazonaws.internal.EC2CredentialsUtils.readResource(EC2CredentialsUtils.java:77) at

有没有办法做到这一点,而不必将访问密钥和密钥传递给我的应用程序?

【问题讨论】:

    标签: amazon-s3 google-cloud-storage


    【解决方案1】:

    如果您想继续使用现有 API,唯一的方法是使用 Google 开发人员密钥,简单的迁移始终需要以下两个步骤:

    1. 将请求端点更改为 Cloud Storage 请求端点: 正如您所提到的,您已经通过覆盖 Cloud Storage 请求端点完成了此步骤:

      https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]

    2. 将 AWS 访问密钥和密钥替换为您的 Google 开发人员密钥: 由于您将不再能够继续使用您之前在 AWS 上设置的相同 IAM 权限,因此必须使用访问密钥和秘密密钥完成授权,您需要使用您的 Google 访问权限包含授权请求标头密钥并使用您的 Google 密钥创建签名:

      Authorization: AWS GOOG-ACCESS-KEY:signature

    更多信息,请查看Authenticating in a simple migration scenario

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 2023-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      相关资源
      最近更新 更多