在 ACM 中使用条件密钥 - Amazon 证书 Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 ACM 中使用条件密钥

Amazon Certificate Manager 使用 Amazon Identity and Access Management(IAM)条件密钥来限制对证书请求的访问权限。使用 IAM policy 或服务控制策略(SCP)中的条件密钥,您可以创建符合组织准则的证书请求。

注意

将 ACM 条件密钥与 Amazon 全局条件密钥(例如 aws:PrincipalArn)结合,从而进一步将操作限制为特定用户或角色。

支持的 ACM 条件

使用滚动条查看表的其余部分。

ACM API 操作和支持的条件
条件键 支持的 ACM API 操作 类型 描述

acm:ValidationMethod

RequestCertificate

字符串(EMAILDNS

依据 ACM 验证方法筛选请求

acm:DomainNames

RequestCertificate

字符串数组

依据 ACM 请求中的域名筛选

acm:KeyAlgorithm

RequestCertificate

字符串

依据 ACM 密钥算法和大小筛选请求

acm:CertificateTransparencyLogging

RequestCertificate

字符串(ENABLEDDISABLED

依据 ACM 证书透明度日志记录首选项筛选请求

acm:CertificateAuthority

RequestCertificate

ARN

依据 ACM 请求中的证书颁发机构筛选请求

示例 1:限制验证方法

以下策略使用电子邮件验证方法来拒绝新的证书请求,但使用 arn:aws:iam::123456789012:role/AllowedEmailValidation 角色发出的请求除外。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition":{ "StringLike" : { "acm:ValidationMethod":"EMAIL" }, "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::123456789012:role/AllowedEmailValidation"] } } } }

示例 2:阻止通配符域

以下策略拒绝使用通配符域的任何新 ACM 证书请求。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition": { "ForAnyValue:StringLike": { "acm:DomainNames": [ "${*}.*" ] } } } }

示例 3:限制证书域

以下策略拒绝非 *.amazonaws.com 结尾的域的任何新 ACM 证书请求

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition": { "ForAnyValue:StringNotLike": { "acm:DomainNames": ["*.amazonaws.com"] } } } }

该策略可以进一步限制为特定的子域。此政策仅允许其中每个域都与至少一个条件域名匹配的请求。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition": { "ForAllValues:StringNotLike": { "acm:DomainNames": ["support.amazonaws.com", "developer.amazonaws.com"] } } } }

示例 4:限制密钥算法

以下策略使用条件密钥 StringNotLike 来仅允许使用 ECDSA 384 位 (EC_secp384r1) 密钥算法请求的证书。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition":{ "StringNotLike" : { "acm:KeyAlgorithm":"EC_secp384r1" } } } }

以下策略使用条件密钥 StringLike 和通配符 * 匹配来阻止在 ACM 中使用任何 RSA 密钥算法的新证书。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition":{ "StringLike" : { "acm:KeyAlgorithm":"RSA*" } } } }

示例 5:限制证书颁发机构

以下策略仅允许使用提供的私有证书颁发机构(PCA)ARN 的私有证书请求。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition":{ "StringNotLike": { "acm:CertificateAuthority":" arn:aws:acm-pca:region:account:certificate-authority/CA_ID" } } } }

此策略使用 acm:CertificateAuthority 条件来仅允许 Amazon Trust Services 颁发的公开信任证书的请求。将证书颁发机构 ARN 设置为 false 能阻止来自 PCA 的私有证书请求。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Deny", "Action":"acm:RequestCertificate", "Resource":"*", "Condition":{ "Null" : { "acm:CertificateAuthority":"false" } } } }