View a markdown version of this page

外部账户绑定 - AWS Certificate Manager

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

外部账户绑定

外部账户绑定 (eAB) 是授权 ACME 客户端向 ACME 终端节点注册账户的凭证。ACME 客户端必须先注册账户,才能从终端节点请求证书,并且注册需要有效的 EAB 凭证。当 PKI 管理员创建 EAB 时,他们会将其与控制 ACME 客户端可以执行哪些证书操作的 IAM 角色相关联。然后,管理员将 EAB 凭证带外分发给需要证书的团队或系统。

每个 EAB 都会生成一个密钥标识符(密钥 ID)和一个 MAC 密钥。ACME 客户端在账户注册期间使用这些凭证来证明授权。创建 ACME 账户后,该账户将独立于 EAB 运行。撤销或删除 EAB 不会影响使用该账户创建的现有 ACME 账户。

IAM 角色要求

每个 EAB 都与一个 IAM 角色相关联。此角色决定了 ACME 客户端在颁发或吊销证书时可以执行的操作。该角色必须满足以下要求:

信任策略

该角色必须允许 ACME 服务主体 (acm-acme.amazonaws.com) 代入该角色。信任策略必须授予sts:AssumeRolests:TagSession、和sts:SetSourceIdentity。启用的条件仅sts:SourceIdentity允许 ACM 为 ACME 建立的会话:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "acm-acme.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession", "sts:SetSourceIdentity" ], "Condition": { "StringLikeIfExists": { "sts:SourceIdentity": "acm-acme-*" } } } ] }

有关 ACM 设置的角色会话名称、源标识和会话标签值,请参阅用于 ACME 证书自动化的 IAM

Permissions

该角色需要acm:RequestCertificate(用于发放)或acm:RevokeCertificate(用于撤销),或两者兼而有之。这些权限和条件密钥与标准 ACM API 使用的权限和条件密钥相同。有关更多信息,请参阅 将条件键与 ACM 结合使用

PassRole

创建 EAB 的管理员需要该角色的iam:PassRole权限。

有关完整的 IAM 策略示例,请参阅用于 ACME 证书自动化的 IAM

如何使用 EAB 角色

当 ACME 客户端颁发或吊销证书时,ACM 会使用与客户端 EAB 关联的 IAM 角色来授权该操作。由于签发和撤销是在这个角色下运行的,所以 ACME 的行为就像标准的 ACM API 一样:

  • 您用于直接 ACM API 调用的 IAM 策略和条件密钥同样适用于 ACME 的签发和撤销。

  • AWS Organizations 服务控制政策 (SCP) 在发布时强制执行。

  • 签发和撤销操作记录在中。 CloudTrail

  • ACM 在担任角色时会设置角色会话名称和源身份(以及会话标签),您可以使用角色信任策略中的sts:RoleSessionNamests:SourceIdentity条件键来引用这些名称。有关 ACM 使用的值,请参见用于 ACME 证书自动化的 IAM

凭证检索

创建 EAB 后,使用GetAcmeExternalAccountBindingCredentials检索其证书。这将返回:

  • 密钥 ID:EAB 的唯一标识符(用作 ACME EAB kid 中的)。

  • MAC 密钥:用于在账户注册期间创建 HMAC 签名的密钥(用作hmacKey)。

重要

将 MAC 密钥视为机密。仅将其分发给您授权使用终端节点的 ACME 客户端。

可选过期

您可以配置 EAB 凭证的到期时间:

  • 值:正整数。

  • 键入:MINUTESHOURS、或DAYS

如果证书在到期前未使用,则证书将失效。如果未设置过期时间,则凭证将一直有效,直到 EAB 被撤销或删除。

EAB 和 ACME 账户生命周期

ACME 客户使用 EAB 凭据注册账户后,ACME 账户和 EAB 就具有独立的生命周期:

  • 撤销 EAB 不会影响使用该账户创建的现有 ACME 账户。

  • 删除 EAB 并不能停用帐户。

  • ACME 账户在其原始 EAB 被吊销后可以继续颁发证书。

注意

要阻止 ACME 账户颁发更多证书,请直接管理该账户。您可以使用 RevokeAcmeAccount API 撤销账户,或者账户持有人可以通过 ACME 协议将其停用。

创建外部账户绑定

您可以使用 ACM 控制台或 CLI AWS 创建 EAB。

创建 EAB(控制台)

  1. 登录 AWS 管理控制台并打开 ACM 控制台。

  2. 在左侧导航窗格的 ACME 下,选择终端节点

  3. 选择端点。

  4. 选择 “外部账户绑定” 选项卡。

  5. 选择 “创建外部账户绑定”。

  6. 对于 IAM 角色,输入或选择该角色的 ARN。该角色必须具有正确的信任策略。

  7. (可选)为凭证配置到期时间。

  8. (可选)在 “标签” 下,向外部账户绑定添加一个或多个标签。

  9. 选择创建

  10. 复制密钥 ID 和 MAC 密钥。

重要

将 MAC 密钥视为机密。您可以随时通过调用再次检索密钥标识符和 MAC 密钥GetAcmeExternalAccountBindingCredentials

要创建 EAB (AWS CLI)

运行以下命令创建 EAB:

aws acm create-acme-external-account-binding \ --acme-endpoint-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000 \ --role-arn arn:aws:iam::111122223333:role/AcmeIssuanceRole \ --expiration '{"Value": 7, "Type": "DAYS"}'

然后检索凭证:

aws acm get-acme-external-account-binding-credentials \ --acme-external-account-binding-arn arn:aws:acm:region:111122223333:acme-endpoint/00000000-0000-0000-0000-000000000000/acme-external-account-binding/22222222-2222-2222-2222-222222222222

响应包含您提供给 ACME 客户端的密钥标识符和 MAC 密钥。您可以随时通过调用再次检索这些凭证GetAcmeExternalAccountBindingCredentials

{ "KeyId": "e06b7974-a684-4cc2-b4b1-1fd87ac81baa", "MacKey": "txvweHF1-COvXAKNlGk-58SX6ZVzEaaXaBPrwNAKCTo" }

管理外部账户绑定

您可以在 eAB 上执行以下管理操作:

描述

查看 EAB 详细信息,包括角色 ARN、到期时间、创建时间和上次使用时间。

列表

查看终端节点的所有 EAB。

撤销

使 EAB 凭证失效。这不会影响使用 EAB 创建的现有 ACME 账户。要管理这些账户,请使用 RevokeAcmeAccount API 将其撤销,或者让账户持有人通过 ACME 协议将其停用。

删除

完全移除 EAB 资源。任何已经在EAB注册的ACME账户都将继续存在;删除EAB只会阻止向其注册新的ACME账户。