将审计报告与您的私有 CA 一起使用 - Amazon Private Certificate Authority
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将审计报告与您的私有 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" } ]
注意

Amazon Certificate Manager 续订证书时,私有 CA 审计报告会在该requestedByServicePrincipal字段中填充。acm.amazonaws.com这表示该 Amazon Certificate Manager 服务代表客户调 Amazon 私有 CA 用了 API 的IssueCertificate操作来续订证书。

为审计报告准备 Amazon S3 桶

要存储您的审计报告,您需要准备 Amazon S3 桶。有关更多信息,请参阅如何创建 S3 桶?

您的 S3 桶必须通过附加的权限策略进行保护。授权用户和服务委托人需要Put权限 Amazon 私有 CA 才能在存储桶中放置对象,以及检索对象的Get权限。建议您应用如下所示的策略,该策略限制对 Amazon 账户和私有 CA 的 ARN 的访问权限。有关更多信息,请参阅使用 Amazon S3 控制台添加桶策略

注意

在创建审计报告的控制台过程中,您可以选择允许 Amazon 私有 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" } } } ] }

创建审计报告

可从控制台或 Amazon CLI创建审计报告。

创建审计报告(控制台)
  1. 登录你的 Amazon 账户并打开 Amazon 私有 CA 主机,网址为 https://console.aws.amazon.com/acm-pca/home

  2. 私有证书颁发机构页面,从列表中选择您的私有 CA。

  3. 操作菜单中,选择生成审计报告

  4. 审计报告目标下,对于创建新的 S3 桶?,选择并键入唯一桶名称,或选择并从列表中选择现有的桶。

    如果您选择 “”,则 Amazon 私有 CA 会创建默认策略并将其附加到您的存储桶。如果您选择,则必须先将策略附加到桶,然后才能生成审计报告。使用 为审计报告准备 Amazon S3 桶 中所述的策略模式。有关附加策略的信息,请参阅使用 Amazon S3 控制台添加桶策略

  5. 输出格式下,为 JavaScript 对象表示法选择 JSON,为逗号分隔值选择 CSV

  6. 选择 Generate audit report (生成审核报告)

创建审计报告 (Amazon CLI)
  1. 如果您没有 S3 桶可用,则请创建一个

  2. 将策略附加到您的桶。使用 为审计报告准备 Amazon S3 桶 中所述的策略模式。有关附加策略的信息,请参阅使用 Amazon S3 控制台添加桶策略

  3. 使用 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-name bucket_name \ --audit-report-response-format JSON

检索审计报告

要检索审计报告以进行检查,请使用 Amazon S3 控制台、API、CLI 或软件开发工具包。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的下载对象

加密审计报告

您可以选择在包含审计报告的 Amazon S3 存储桶上配置加密。 Amazon 私有 CA 支持 S3 中资产的两种加密模式:

  • 使用 Amazon S3 托管的 AES-256 密钥自动进行服务器端加密。

  • 客户使用管理加密 Amazon Key Management Service ,并根据您的规格 Amazon KMS key 进行配置。

注意

Amazon 私有 CA 不支持使用 S3 自动生成的默认 KMS 密钥。

以下过程介绍如何设置每个加密选项。

配置自动加密

完成以下步骤以启用 S3 服务器端加密。

  1. 打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/

  2. Buckets 表中,选择用于存放您的 Amazon 私有 CA 资产的存储桶。

  3. 在存储桶页面上,选择属性选项卡。

  4. 选择默认加密卡。

  5. 请选择 启用

  6. 选择 Amazon S3 密钥(SSE-S3)

  7. 选择保存更改

配置自定义加密

完成以下步骤以启用使用自定义密钥的加密。

  1. 打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/

  2. Buckets 表中,选择用于存放您的 Amazon 私有 CA 资产的存储桶。

  3. 在存储桶页面上,选择属性选项卡。

  4. 选择默认加密卡。

  5. 请选择 启用

  6. 选择Amazon Key Management Service 密钥 (SSE-KMS)。

  7. 选择 “从 Amazon KMS 密钥中选择” 或 “输入 Amazon KMS key ARN”

  8. 选择保存更改

  9. (可选)如果您还没有 KMS 密钥,请使用以下 Amazon 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" } }
  10. 使用以下步骤,您可以向 Amazon 私有 CA 服务主体授予使用 KMS 密钥的权限。默认情况下,所有 KMS 密钥均为私有;只有资源拥有者可以使用 KMS 密钥加密和解密数据。但是,资源拥有者可以将 KMS 密钥的访问权限授予其他用户和资源。该服务主体必须位于存储 KMS 密钥的相同区域内。

    1. 首先,policy.json使用以下get-key-policy命令保存 KMS 密钥的默认策略:

      $ aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json
    2. 在文本编辑器中打开 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/*" ] } } }
    3. 最后,使用以下put-key-policy命令应用更新的策略:

      $ aws kms put-key-policy --key-id key_id --policy-name default --policy file://policy.json