View a markdown version of this page

用于 ACME 证书自动化的 IAM - Amazon Certificate Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用于 ACME 证书自动化的 IAM

ACME 证书自动化使用 IAM 角色来授权证书的颁发和吊销。本节介绍了 ACME 的权限模型。

PKI 管理员权限

创建和管理 ACME 资源的 PKI 管理员需要以下权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "acm:CreateAcmeEndpoint", "acm:DescribeAcmeEndpoint", "acm:ListAcmeEndpoints", "acm:UpdateAcmeEndpoint", "acm:DeleteAcmeEndpoint", "acm:CreateAcmeExternalAccountBinding", "acm:DescribeAcmeExternalAccountBinding", "acm:ListAcmeExternalAccountBindings", "acm:GetAcmeExternalAccountBindingCredentials", "acm:RevokeAcmeExternalAccountBinding", "acm:DeleteAcmeExternalAccountBinding", "acm:CreateAcmeDomainValidation", "acm:DescribeAcmeDomainValidation", "acm:ListAcmeDomainValidations", "acm:UpdateAcmeDomainValidation", "acm:DeleteAcmeDomainValidation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/AcmeIssuanceRole", "Condition": { "StringEquals": { "iam:PassedToService": "acm-acme.amazonaws.com" } } } ] }

EAB 角色要求

每个外部账户绑定都与一个 IAM 角色相关联。ACM 使用此角色授权使用绑定凭证进行身份验证的 ACME 客户端颁发和吊销证书。

信任策略

该角色必须信任 ACME 服务主体,授予sts:AssumeRolests:TagSession、和。sts:SetSourceIdentity以下信任策略还使用条件开启sts:SourceIdentity来仅允许 ACM 为 ACME 建立的会话(以开头的源身份):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-*" } } } ] }

权限策略

该角色需要权限才能执行您想要允许的证书操作。适用于直接 API 调用的相同 ACM 操作和条件键适用于此处:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "acm:RequestCertificate", "acm:RevokeCertificate" ], "Resource": "*" }] }

您可以使用支持的相同条件密钥来限制发放acm:RequestCertificate,例如acm:DomainNamesacm:KeyAlgorithm。有关更多信息,请参阅 将条件键与 ACM 结合使用

角色会话名称和源标识

当 ACM 担任该角色时,它会设置角色会话名称和源标识,这些名称和源标识将显示在 CloudTrail 日志中,您可以使用sts:RoleSessionNamests:SourceIdentity条件键进行引用:

  • 在证书颁发和吊销时 — 角色会话名称为acme-request-request-id,源身份为acm-acme-acme-account-id

  • 在创建外部账户绑定时验证角色时,角色会话名称为acme-verification,源身份为acm-acme-verification

两个来源身份都以acm-acme-,因此信任策略中的sts:SourceIdentity条件允许两者兼而有之。ACM 还会在担任角色的会话上附加会话标签,包括、和。acme-endpoint-arn acme-account-url acme-operation

SCP 兼容性

由于 ACME 服务使用代入的角色进行标准 ACM API 调用,因此 Organiz Amazon ations 服务控制策略 (SCP) 是在证书颁发时强制执行的。如果 SCP 拒绝acm:RequestCertificate该账户,ACME 证书颁发也会失败。这为 ACME-issued 证书提供了与直接通过 ACM API 颁发的证书相同的监管控制。