本页面介绍了如何使用 Google Cloud 控制台、Google Cloud CLI、Identity and Access Management API 或某个 Google Cloud 客户端库来停用和启用服务账号密钥。
准备工作
启用 IAM API。
设置身份验证。
选择标签页以了解您打算如何使用本页面上的示例:
gcloud
您可以从以下任一开发环境使用本页面上的 gcloud CLI 示例:
Java
如需从本地开发环境使用本页面上的 Java 示例,请安装并初始化 gcloud CLI,然后使用用户凭据设置应用默认凭据。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
为您的 Google 账号创建本地身份验证凭据:
gcloud auth application-default login
如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置身份验证。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
了解服务账号凭据。
所需的角色
如需获得停用和启用服务账号密钥所需的权限,请让管理员向您授予项目或者您要管理其密钥的服务账号的 Service Account Key Admin (roles/iam.serviceAccountKeyAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
如需了解详情,请参阅服务账号角色。
IAM 基本角色还包含管理服务账号密钥的权限。您不应在生产环境中授予基本角色,但可以在开发或测试环境中授予这些角色。
停用服务账号密钥
停用服务账号密钥会导致您无法使用该密钥向 Google API 进行身份验证。您可以随时启用已停用的密钥。
在删除服务账号密钥之前,我们建议您先停用密钥,等到您确定不再需要该密钥时,即可将其删除。
您可以在 Google Cloud 控制台中查看已停用的密钥,但无法使用 Google Cloud 控制台停用密钥。请改用 gcloud CLI 或 REST API。
gcloud
执行 gcloud iam service-accounts keys disable
命令可停用服务账号密钥。
替换以下值:
KEY_ID
:要停用的密钥的 ID。 如需查找密钥的 ID,请列出服务账号的所有密钥,找到要停用的密钥,然后复制其 ID。SA_NAME
:密钥所属服务账号的名称。PROJECT_ID
:您的 Google Cloud 项目 ID。
gcloud iam service-accounts keys disable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
输出如下:
Disabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Java
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。如需了解详情,请参阅 IAM Java API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
REST
projects.serviceAccounts.keys.disable
方法可停用服务账号密钥。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。SA_NAME
:您要停用其密钥的服务账号的名称。KEY_ID
:您要停用的密钥的 ID。 如需查找密钥的 ID,请列出服务账号的所有密钥,找到要停用的密钥,然后从name
字段的末尾复制其 ID。密钥的 ID 是keys/
之后的所有内容。
HTTP 方法和网址:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:disable
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ }
启用服务账号密钥
停用服务账号密钥后,您可以随时启用该密钥,然后使用该密钥向 Google API 进行身份验证。
您不能使用 Google Cloud 控制台来启用服务账号密钥。请改用 gcloud CLI 或 REST API。
gcloud
执行 gcloud iam service-accounts keys enable
命令可启用服务账号密钥。
替换以下值:
KEY_ID
:要启用的密钥的 ID。 如需查找密钥的 ID,请列出服务账号的所有密钥,找到要启用的密钥,然后复制其 ID。SA_NAME
:密钥所属服务账号的名称。PROJECT_ID
:您的 Google Cloud 项目 ID。
gcloud iam service-accounts keys enable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com\ --project=PROJECT_ID
输出如下:
Enabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Java
如需了解如何安装和使用 IAM 客户端库,请参阅 IAM 客户端库。如需了解详情,请参阅 IAM Java API 参考文档。
如需向 IAM 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅准备工作。
REST
projects.serviceAccounts.keys.enable
方法可启用服务账号密钥。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。SA_NAME
:您要启用其密钥的服务账号的名称。-
KEY_ID
:您要启用的密钥的 ID。 如需查找密钥的 ID,请列出服务账号的所有密钥,找到要启用的密钥,然后从name
字段的末尾复制其 ID。密钥的 ID 是keys/
之后的所有内容。
HTTP 方法和网址:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:enable
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ }
后续步骤
- 了解如何删除服务账号密钥。
- 了解如何列出和获取服务账号密钥。
- 了解如何使用服务账号密钥进行服务账号身份验证。
- 了解使用服务账号密钥进行身份验证的替代方案。
- 了解管理服务账号密钥的最佳实践。