使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

支持各种用例的凭据类型

概览

gsutil 目前支持多种类型的凭据/身份验证,并且支持匿名访问公共数据。下文详细讨论了每种凭据类型,并介绍了如何通过 Cloud SDK 配置和使用凭据。

通过 Cloud SDK 发行版 Gsutil 配置/使用凭据

通过 Cloud SDK(“gcloud”)安装/使用 gsutil 时,Cloud SDK 会将凭据存储在位于 ~/.config/gcloud 下的用户不可修改的文件中(对凭据的任何操作都应通过 gcloud auth 命令完成)。如果您需要设置多个凭据(例如,一个用于个人用户帐号,另一个用于服务帐号),则 gcloud auth 命令会为您管理这些凭据,并且您也可以使用 gcloud auth 命令在凭据间切换(如需了解详情,请参阅 https://cloud.google.com/sdk/gcloud/reference/auth)。

通过 gcloud auth 配置凭据后,无论用户是否拥有任何 boto 配置文件(除非在 BOTO_CONFIG 环境变量中指定了其他路径,否则位于 ~/.boto),都会使用这些凭据。但是,如果所需的非 Cloud Storage 凭据类型未存储在 gcloud 凭据存储区中(例如,用于 S3 帐号的 HMAC 凭据),则 gsutil 仍会在 boto 配置文件中查找凭据。

支持的凭据类型

gsutil 支持多种凭据类型(具体的子集取决于您使用的是哪个 gsutil 发行版;请参阅上面的讨论)。

OAuth2 用户帐号:

这是代表特定用户对请求进行身份验证的首选凭据类型(这可能是 gsutil 最常见的用途)。该凭据类型是在您运行“gsutil config”(或用于安装 Cloud SDK 的“gcloud init”)时创建的默认凭据类型。如需详细了解 OAuth2 身份验证,请参阅:https://developers.google.com/accounts/docs/OAuth2#scenarios

HMAC:

此凭据类型可供通过 HMAC 身份验证实现的程序使用,HMAC 身份验证是某些其他 Cloud Storage 服务提供商所支持的身份验证机制。在将数据移入/移出支持 HMAC 凭据的服务提供商时,此凭据类型还可用于交互式使用。这是在您运行“gsutil config -a”时创建的凭据类型。

请注意,您可以为 Cloud Storage 和其他服务提供商都设置 HMAC 凭据;也可以为 Cloud Storage 设置 OAuth2 用户帐号凭据,为其他服务提供商设置 HMAC 凭据。为此,在运行“gsutil config”命令(或用于安装 Cloud SDK 的“gcloud init”)后,您可以修改生成的 ~/.boto 配置文件并查找有关可添加其他凭据的位置的注释。

如需详细了解 HMAC 身份验证,请参阅 https://developers.google.com/storage/docs/reference/v1/getting-startedv1#keys

OAuth2 服务帐号:

这是在代表服务或应用(而不是用户)进行身份验证时使用的首选凭据类型。例如,如果您要在夜间 cron 作业之外运行 gsutil 来上传/下载数据,则使用服务帐号可让 cron 作业不依赖于公司内个别员工的凭据。这是在您运行“gsutil config -e”时配置的凭据类型。如需在通过 Cloud SDK 安装时配置服务帐号凭据,请运行“gcloud auth activate-service-account”。

请务必注意,默认情况下服务帐号被视为针对 API 访问权限的 Editor,而不是 Owner。具体而言,Editor 在默认对象和存储分区 ACL 中具有 OWNER 访问权限,但预设的 ACL 选项会移除 Editor 的 OWNER 访问权限,这可能会导致意外结果。此问题的解决方案是使用“gsutil acl ch”而非“gsutil acl set <canned-ACL>”来更改存储分区的权限。

如需设置服务帐号以与“gsutil config -e”或“gcloud auth activate-service-account”结合使用,请参阅 https://cloud.google.com/storage/docs/authentication#generating-a-private-key

如需详细了解 OAuth2 服务帐号,请参阅 https://developers.google.com/accounts/docs/OAuth2ServiceAccount

如需详细了解帐号角色,请参阅 https://developers.google.com/console/help/#DifferentRoles

Compute Engine 内部服务帐号:

这是由 App Engine 或 Compute Engine 托管的帐号使用的服务帐号类型。当您运行 gcloud compute instances create 命令时,系统会在 Compute Engine 上自动为您创建此类凭据,并且这些凭据可以使用 --scopes 标志进行控制。

如需详细了解如何在 Compute Engine 上使用服务帐号凭据对工作负载进行身份验证,请参阅 https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances

如需详细了解 App Engine 服务帐号,请参阅 https://developers.google.com/appengine/docs/python/appidentity/overview

服务帐号模拟:

在您需要授予对特定资源的短期访问权限的情况下,模拟服务帐号非常有用。例如,如果您有一个通常是只读的敏感数据存储分区,并且希望通过可信的服务帐号临时授予写入权限。

您可以通过运行“gsutil -i”、“gsutil config”并修改 boto 配置文件或“gcloud config set auth/impersonate_service_account [service_account_email_address]”来指定要用于模拟的服务帐号。

您的原始凭据需要被授予针对目标服务帐号的 roles/iam.serviceAccountTokenCreator 才能进行模拟。如需了解详情,请参阅 https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials

外部帐号凭据(工作负载身份联合):

借助工作负载身份联合,您可以从 Amazon Web Services (AWS)、Microsoft Azure 或支持 OpenID Connect (OIDC) 或 SAML 2.0 的任何身份提供商访问 Google Cloud 资源。

如需了解详情,请参阅 https://cloud.google.com/iam/docs/using-workload-identity-federation