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

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

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

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

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

审计报告文件具有以下路径和文件名。Amazon S3 存储桶的值为amzn-s3-demo-bucket。ARN 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. 在 “输出格式” 下,选择 “JSON JavaScript 对象符号” 或 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 控制台APICLI、、或SDK。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的下载对象

加密审计报告

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

  • 使用亚马逊 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. 选择亚马逊 S3 密钥 (SSE-S3)

  7. 选择 Save Changes(保存更改)。

配置自定义加密

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

  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. 选择 Save Changes(保存更改)。

  9. (可选)如果您还没有KMS密钥,请使用以下 Amazon CLI create-key 命令创建一个密钥

    $ aws kms create-key

    输出包含密钥的密钥 ID 和 Amazon 资源名称 (ARN)。KMS下面是一个示例输出:

    { "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