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

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

将审计报告与您的私有 CA 一起使用

您可以创建审核报告,以列出您的私有 CA 已颁发和吊销的所有证书。该报告将保存在您通过输入指定的新的或现有 S3 存储桶中。

有关向审计报告添加加密保护的信息,请参阅 加密审计报告

审计报告文件具有以下路径和文件名。Amazon S3 桶的 ARN 是 amzn-s3-demo-bucket 的值。CA_ID 是颁发 CA 的唯一标识符。UUID 是审计报告的唯一标识符。

amzn-s3-demo-bucket/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 Private CA 不支持使用 A mazon S3 对象锁。如果您在存储桶上启用对象锁定,则 Amazon Private CA 无法向存储桶写入审计报告。

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

您的 S3 存储桶必须受权限策略的保护,该策略 Amazon Private CA 允许访问和写入您指定的 S3 存储桶。授权用户和服务委托人需要Put权限 Amazon 私有 CA 才能在存储桶中放置对象,以及检索对象的Get权限。建议您应用如下所示的策略,该策略限制对 Amazon 账户和私有 CA 的 ARN 的访问权限。或者,您可以使用 a ws: SourceOrg ID 条件键来限制对中特定组织的访问权限。 Amazon Organizations有关存储桶策略的更多信息,请参阅 Amazon 简单存储服务的存储桶策略

{ "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:::amzn-s3-demo-bucket/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ], "Condition":{ "StringEquals":{ "aws:SourceAccount":"111122223333", "aws:SourceArn":"arn:partition:acm-pca:region:111122223333:certificate-authority/CA_ID" } } } ] }

创建审计报告

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

创建审计报告(控制台)
  1. 登录您的 Amazon 帐户并在https://console.aws.amazon.com/acm-pca/家中打开主 Amazon 私有 CA 机。

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

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

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

    如果您选择 “”,则 Amazon 私有 CA 会创建默认策略并将其附加到您的存储桶。默认策略包括aws:SourceAccount条件密钥,该密钥限制了对特定 Amazon 账户的访问权限。如果您想进一步限制访问权限,则可以在策略中添加其他条件密钥,如前面的示例所示。

    如果您选择,则必须先将策略附加到桶,然后才能生成审计报告。使用 为审计报告准备一个 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 amzn-s3-demo-bucket \ --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