将条件键与 ACM 结合使用 - Amazon 证书管理器
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

String

依据 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" } } } }