使用S3库从GCE访问GCS存储桶而无需凭据

时间:2018-09-26 13:03:06

标签: amazon-s3 google-cloud-storage

我试图迁移使用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

有没有一种方法,而不必将访问密钥和秘密密钥传递给我的应用?

1 个答案:

答案 0 :(得分:0)

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

  1. 将请求端点更改为Cloud Storage请求端点:如前所述,您已经通过覆盖Cloud Storage请求端点来完成此步骤:

    data.table

  2. 用您的Google开发人员密钥替换AWS访问和密钥: 由于您将不再能够继续使用以前在AWS上设置的IAM权限,因此必须使用和访问密钥以及一个秘密密钥来完成授权,因此您将需要使用Google访问权限添加一个Authorization request标头密钥并使用您的Google密钥创建签名:

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

有关更多信息,请检查envnames