Google云存储:如何以编程方式生成access_key_id和secret_access_key

问题描述 投票:0回答:1

目前我们正在使用AWS s3服务。我们通过与用户共享 access_key_id 和 Secret_access_key 来向用户授予存储桶的访问权限。下面是我们生成这些密钥的流程。示例 https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/IAM/Client.html#create_access_key-instance_method

  1. 创建新的 IAM 用户
  2. 为步骤 1 中创建的用户生成访问密钥和秘密密钥
  3. 将存储桶访问策略附加到步骤 1 中创建的 IAM 用户
  4. 在 json 响应中发送步骤 2 中创建的访问密钥和秘密密钥

我们现在计划切换到谷歌云存储。我已经浏览了谷歌云存储 ruby 文档,但找不到有关如何以编程方式生成 access_key_id 和 Secret_access_key 的文档,以便用户可以使用它来访问 gcs 存储桶。 GCS 支持类似的功能吗? GCS 是否为此提供替代选项?

ruby-on-rails google-cloud-storage
1个回答
0
投票

HMAC 密钥是传统密钥,用于互操作性,例如 Amazon S3。 HMAC 密钥需要使用 XML API。

当前的存储 API 是 Cloud Storage JSON API。 JSON API 添加了新功能。

我不知道有 Ruby API 可以创建 HMAC 密钥。您可以使用 Ruby HTTP 客户端直接调用 XML 或 JSON API。

Ruby:Google API 的简单 REST 客户端

以下示例使用 CLI

curl
演示如何调用 API。使用它们翻译成您的 Ruby 代码。

使用 XML API 的 Curl 示例:

curl -X POST \
  -H "Authorization: Bearer OAUTH2_TOKEN" \
  "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"

使用 JSON API 的 Curl 示例:

curl -X POST \
  -H "Authorization: Bearer OAUTH2_TOKEN" \
  "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"

开发人员命令获取所需的OAuth访问令牌,仅用于测试目的:

gcloud auth application-default print-access-token

Google OAuth 的 Ruby 文档:

将 OAuth 2.0 用于 Web 服务器应用程序

© www.soinside.com 2019 - 2024. All rights reserved.