本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将审计报告与您的私有 CA 一起使用
您可以创建审核报告,以列出您的私有 CA 已颁发和吊销的所有证书。该报告将保存在您通过输入指定的新的或现有 S3 存储桶中。
有关向审计报告添加加密保护的信息,请参阅 加密审计报告 。
审计报告文件具有以下路径和文件名。Amazon S3 桶的 ARN 是 bucket-name
的值。CA_ID
是颁发 CA 的唯一标识符。UUID
是审计报告的唯一标识符。
bucket-name
/audit-report/CA_ID
/UUID
.[json|csv]
您可以每 30 分钟生成一份新报告,并从存储桶中下载该报告。下面的示例显示一个 CSV 分隔的报告。
awsAccountId,requestedByServicePrincipal,certificateArn,serial,subject,notBefore,notAfter,issuedAt,revokedAt,revocationReason,templateArn
123456789012,,arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
,00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff,"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4e5f6a,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",2020-03-02T21:43:57+0000,2020-04-07T22:43:57+0000,2020-03-02T22:43:58+0000,,UNSPECIFIED,arn:aws:acm-pca:::template/EndEntityCertificate/V1
123456789012,acm.amazonaws.com,arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
,ff:ee:dd:cc:bb:aa:99:88:77:66:55:44:33:22:11:00,"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",2020-03-02T20:53:39+0000,2020-04-07T21:53:39+0000,2020-03-02T21:53:40+0000,,,arn:aws:acm-pca:::template/EndEntityCertificate/V1
下面的示例显示一个 JSON 格式的报告。
[
{
"awsAccountId":"123456789012",
"certificateArn":"arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
",
"serial":"00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff",
"subject":"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",
"notBefore":"2020-02-26T18:39:57+0000",
"notAfter":"2021-02-26T19:39:57+0000",
"issuedAt":"2020-02-26T19:39:58+0000",
"revokedAt":"2020-02-26T20:00:36+0000",
"revocationReason":"UNSPECIFIED",
"templateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1"
},
{
"awsAccountId":"123456789012",
"requestedByServicePrincipal":"acm.amazonaws.com",
"certificateArn":"arn:aws:acm-pca:region
:account
:certificate-authority/CA_ID
/certificate/certificate_ID
",
"serial":"ff:ee:dd:cc:bb:aa:99:88:77:66:55:44:33:22:11:00",
"subject":"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",
"notBefore":"2020-01-22T20:10:49+0000",
"notAfter":"2021-01-17T21:10:49+0000",
"issuedAt":"2020-01-22T21:10:49+0000",
"templateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1"
}
]
注意
AWS Certificate Manager 续订证书时,私有 CA 审计报告会在该requestedByServicePrincipal
字段中填充。acm.amazonaws.com
这表示该 AWS Certificate Manager 服务代表客户调 AWS 私有 CA 用了 API 的IssueCertificate
操作来续订证书。
为审计报告准备 Amazon S3 桶
要存储您的审计报告,您需要准备 Amazon S3 桶。有关更多信息,请参阅如何创建 S3 桶?
您的 S3 桶必须通过附加的权限策略进行保护。授权用户和服务委托人需要Put
权限 AWS 私有 CA 才能在存储桶中放置对象,以及检索对象的Get
权限。建议您应用如下所示的策略,该策略限制对 AWS 账户和私有 CA 的 ARN 的访问权限。有关更多信息,请参阅使用 Amazon S3 控制台添加桶策略。
注意
在创建审计报告的控制台过程中,您可以选择允许 AWS 私有 CA 创建新存储桶并应用默认权限策略。默认策略对 CA 不施加任何 SourceArn
限制,因此比推荐的策略更宽松。如果您选择默认值,以后可以随时修改。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource":[ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
" ], "Condition":{ "StringEquals":{ "aws:SourceAccount":"account
", "aws:SourceArn":"arn:partition
:acm-pca:region
:account
:certificate-authority/CA_ID
" } } } ] }
创建审计报告
可从控制台或 AWS CLI创建审计报告。
创建审计报告(控制台)
-
登录你的 AWS 账户并打开 AWS 私有 CA 主机,网址为 https://console.aws.amazon.com/acm-pca/home
。 -
在私有证书颁发机构页面,从列表中选择您的私有 CA。
-
从操作菜单中,选择生成审计报告。
-
在审计报告目标下,对于创建新的 S3 桶?,选择是并键入唯一桶名称,或选择否并从列表中选择现有的桶。
如果您选择 “是”,则 AWS 私有 CA 会创建默认策略并将其附加到您的存储桶。如果您选择否,则必须先将策略附加到桶,然后才能生成审计报告。使用 为审计报告准备 Amazon S3 桶 中所述的策略模式。有关附加策略的信息,请参阅使用 Amazon S3 控制台添加桶策略
-
在输出格式下,为 JavaScript 对象表示法选择 JSON,为逗号分隔值选择 CSV。
-
选择 Generate audit report (生成审核报告)。
创建审计报告 (AWS CLI)
-
如果您没有 S3 桶可用,则请创建一个。
-
将策略附加到您的桶。使用 为审计报告准备 Amazon S3 桶 中所述的策略模式。有关附加策略的信息,请参阅使用 Amazon S3 控制台添加桶策略
-
使用 create-certificate-authority-audit-repor t 命令创建审计报告并将其放入准备好的 S3 存储桶中。
$
aws acm-pca create-certificate-authority-audit-report \ --certificate-authority-arn arn:
aws
:acm-pca:us-east-1
:111122223333
:certificate-authority/11223344-1234-1122-2233-112233445566
\ --s3-bucket-namebucket_name
\ --audit-report-response-format JSON
检索审计报告
要检索审计报告以进行检查,请使用 Amazon S3 控制台、API、CLI 或软件开发工具包。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的下载对象。
加密审计报告
您可以选择在包含审计报告的 Amazon S3 存储桶上配置加密。 AWS 私有 CA 支持 S3 中资产的两种加密模式:
-
使用 Amazon S3 托管的 AES-256 密钥自动进行服务器端加密。
-
客户使用管理加密 AWS Key Management Service ,并根据您的规格 AWS KMS key 进行配置。
注意
AWS 私有 CA 不支持使用 S3 自动生成的默认 KMS 密钥。
以下过程介绍如何设置每个加密选项。
配置自动加密
完成以下步骤以启用 S3 服务器端加密。
打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/
。 -
在 Buckets 表中,选择用于存放您的 AWS 私有 CA 资产的存储桶。
-
在存储桶页面上,选择属性选项卡。
-
选择默认加密卡。
-
请选择 启用。
-
选择 Amazon S3 密钥(SSE-S3)。
-
选择保存更改。
配置自定义加密
完成以下步骤以启用使用自定义密钥的加密。
打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/
。 -
在 Buckets 表中,选择用于存放您的 AWS 私有 CA 资产的存储桶。
-
在存储桶页面上,选择属性选项卡。
-
选择默认加密卡。
-
请选择 启用。
-
选择AWS Key Management Service 密钥 (SSE-KMS)。
-
选择 “从 AWS KMS 密钥中选择” 或 “输入 AWS KMS key ARN”。
-
选择保存更改。
-
(可选)如果您还没有 KMS 密钥,请使用以下 AWS CLI create-key 命令创建一个:
$
aws kms create-key
输出包含 KMS 密钥的密钥 ID 和 Amazon 资源名称(ARN)。下面是一个示例输出:
{ "KeyMetadata": { "KeyId": "01234567-89ab-cdef-0123-456789abcdef", "Description": "", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef", "AWSAccountId": "123456789012" } }
-
使用以下步骤,您可以向 AWS 私有 CA 服务主体授予使用 KMS 密钥的权限。默认情况下,所有 KMS 密钥均为私有;只有资源拥有者可以使用 KMS 密钥加密和解密数据。但是,资源拥有者可以将 KMS 密钥的访问权限授予其他用户和资源。该服务主体必须位于存储 KMS 密钥的相同区域内。
-
首先,
policy.json
使用以下get-key-policy命令保存 KMS 密钥的默认策略:$
aws kms get-key-policy --key-id
key-id
--policy-name default --output text > ./policy.json -
在文本编辑器中打开
policy.json
文件。选择以下策略声明之一,并将其添加到现有策略中。如果您的 Amazon S3 桶密钥已启用,则请使用以下语句:
{ "Sid":"Allow ACM-PCA use of the key", "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource":"*", "Condition":{ "StringLike":{ "kms:EncryptionContext:aws:s3:arn":"arn:aws:s3:::
bucket-name
" } } }如果您的 Amazon S3 桶密钥已禁用,则请使用以下语句:
{ "Sid":"Allow ACM-PCA use of the key", "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource":"*", "Condition":{ "StringLike":{ "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::
bucket-name
/acm-pca-permission-test-key", "arn:aws:s3:::bucket-name
/acm-pca-permission-test-key-private", "arn:aws:s3:::bucket-name
/audit-report/*", "arn:aws:s3:::bucket-name
/crl/*" ] } } } -
最后,使用以下put-key-policy命令应用更新的策略:
$
aws kms put-key-policy --key-id
key_id
--policy-name default --policy file://policy.json
-