148
AWS Certificate Manager Private Certificate Authority ユーザーガイド Version latest

AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate ManagerPrivate Certificate Authority

ユーザーガイドVersion latest

Page 2: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

AWS Certificate Manager Private Certificate Authority: ユーザーガイドCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

Table of ContentsACM Private CA とは ......................................................................................................................... 1

ニーズに最適な証明書サービスはどれですか? ................................................................................. 1Regions ..................................................................................................................................... 2統合サービス ............................................................................................................................. 2クォータ .................................................................................................................................... 2

証明書のクォータ ............................................................................................................... 2API リクエストのクォータ ................................................................................................... 3

RFC コンプライアンス ................................................................................................................ 4料金 .......................................................................................................................................... 5

セキュリティ ..................................................................................................................................... 6データ保護 ................................................................................................................................ 6

ACM Private CA プライベートキーの保管 .............................................................................. 7Identity and Access Management .................................................................................................. 7

認証 .................................................................................................................................. 7リソース、所有権、およびアクセス許可のポリシーについて ..................................................... 9........................................................................................................................................ 9

インラインポリシー .......................................................................................................... 14ログ記録とモニタリング ............................................................................................................ 17

CloudWatch のメトリクス .................................................................................................. 17CloudWatch イベントの使用 ............................................................................................... 18CloudTrail を使用する ........................................................................................................ 22

コンプライアンス検証 ............................................................................................................... 33監査レポートの作成 .......................................................................................................... 33

インフラストラクチャセキュリティ ............................................................................................. 37VPC エンドポイント (AWS PrivateLink) ............................................................................... 38

ACM Private CA ベストプラクティス ........................................................................................... 40CA の構造とポリシーのドキュメント化 ................................................................................ 40可能な場合、ルート CA の使用を最小限に抑える .................................................................. 40ルート CA に独自の AWS アカウントを付与する ................................................................. 41AWS CloudTrail をオンにする ............................................................................................ 41CA プライベートキーを更新する ......................................................................................... 41未使用の CA を削除する .................................................................................................... 41

プライベート CA の計画 .................................................................................................................... 42CA 階層の設計 ......................................................................................................................... 42

エンドエンティティ証明書の検証 ........................................................................................ 44CA 階層構造の計画 ........................................................................................................... 45証明書パスでの長さの制約の設定 ........................................................................................ 47

CA ライフサイクルの管理 .......................................................................................................... 49有効期間の選択 ................................................................................................................. 49CA 承継の管理 ................................................................................................................. 50CA の取り消し ................................................................................................................. 51

耐障害性 .................................................................................................................................. 51冗長性と災害対策 .............................................................................................................. 51

プライベート CA の作成と管理 ........................................................................................................... 52セットアップ ............................................................................................................................ 52

AWS へのサインアップ ..................................................................................................... 52CLI のインストール (オプション) ........................................................................................ 53

プライベート CA を作成する ...................................................................................................... 53CRL の暗号化 .................................................................................................................. 57

CA 証明書のインストール .......................................................................................................... 59ルート CA 証明書をインストールする場合 ............................................................................ 59ACM Private CA がホストする下位 CA 証明書をインストールする場合 ..................................... 60外部の親 CA が署名した下位 CA 証明書をインストールする場合 ............................................. 61

CA の更新 ............................................................................................................................... 61

Version latestiii

Page 4: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA ステータスの更新 ........................................................................................................ 61CRL 設定の更新 ............................................................................................................... 64タグの追加 ....................................................................................................................... 65

CA の削除 ............................................................................................................................... 66CA の復元 ............................................................................................................................... 67

プライベート CA の復元 (コンソール) .................................................................................. 68プライベート CA の復元 (AWS CLI) .................................................................................... 68

更新アクセス許可の割り当て ...................................................................................................... 69証明書の発行と取り消し .................................................................................................................... 71

エンドエンティティ証明書を発行する .......................................................................................... 71証明書の発行 (AWS CLI) .................................................................................................... 72

証明書の取り消し ...................................................................................................................... 72CRL で取り消された証明書 ................................................................................................ 72監査報告書の取り消された証明書 ........................................................................................ 73AWS CLI を使用して証明書を取り消す ................................................................................ 74

証明書テンプレート .................................................................................................................. 74CodeSigningCertificate/V1 定義 ........................................................................................... 76CodeSigningCertificate_CSRPassthrough/V1 定義 .................................................................. 76EndEntityCertificate/V1 定義 ............................................................................................... 77EndEntityCertificate_CSRPassthrough/V1 定義 ...................................................................... 77EndEntityClientAuthCertificate/V1 定義 ................................................................................. 78EndEntityClientAuthCertificate_CSRPassthrough/V1 定義 ........................................................ 78EndEntityServerAuthCertificate/V1 定義 ................................................................................ 79EndEntityServerAuthCertificate_CSRPassthrough/V1 定義 ....................................................... 79OCSPSigningCertificate/V1 定義 .......................................................................................... 80OCSPSigningCertificate_CSRPassthrough/V1 定義 ................................................................ 80RootCACertificate/V1 定義 .................................................................................................. 81SubordinateCACertificate_PathLen0/V1 定義 ......................................................................... 81SubordinateCACertificate_PathLen1/V1 定義 ......................................................................... 82SubordinateCACertificate_PathLen2/V1 定義 ......................................................................... 82SubordinateCACertificate_PathLen3/V1 定義 ......................................................................... 82

API の使用 (Java の例) ...................................................................................................................... 84CreateCertificateAuthority ........................................................................................................... 84CreateCertificateAuthorityAuditReport ........................................................................................... 87CreatePermission ...................................................................................................................... 89DeleteCertificateAuthority ........................................................................................................... 91DeletePermission ...................................................................................................................... 92DescribeCertificateAuthority ........................................................................................................ 94DescribeCertificateAuthorityAuditReport ........................................................................................ 95GetCertificate ........................................................................................................................... 97GetCertificateAuthorityCertificate ................................................................................................. 99GetCertificateAuthorityCsr ......................................................................................................... 100ImportCertificateAuthorityCertificate ............................................................................................ 102IssueCertificate ....................................................................................................................... 104ListCertificateAuthorities ........................................................................................................... 106ListPermissions ....................................................................................................................... 109ListTags ................................................................................................................................. 111RestoreCertificateAuthority ........................................................................................................ 112RevokeCertificate .................................................................................................................... 113TagCertificateAuthorities ........................................................................................................... 115UntagCertificateAuthority .......................................................................................................... 117UpdateCertificateAuthority ......................................................................................................... 118

外部 CA の使用 .............................................................................................................................. 121CSR を取得する ..................................................................................................................... 121

CSR を取得する (コンソール): メソッド 1 .......................................................................... 122CSR を取得する (コンソール): メソッド 2 .......................................................................... 122CSR の取得 (AWS CLI) ................................................................................................... 123

Version latestiv

Page 5: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 証明書に署名する .............................................................................................................. 123CA 証明書をインポートする ..................................................................................................... 125

プライベート CA 証明書のインポート (コンソール) .............................................................. 125プライベート CA 証明書のインポート (AWS CLI) ................................................................ 126

証明書を取得する .................................................................................................................... 126CA 証明書の取得 ..................................................................................................................... 127プライベート CA での名前制約の適用 ........................................................................................ 127

名前制約ポリシーの例 ...................................................................................................... 128トラブルシューティング ................................................................................................................... 130

CSR の署名 ........................................................................................................................... 130Amazon S3 ブロック CRL バケット .......................................................................................... 130自己署名 CA 認定の取り消し .................................................................................................... 130S3 エラー .............................................................................................................................. 130例外処理 ................................................................................................................................ 131

用語と概念 ..................................................................................................................................... 133非対称キー暗号 ....................................................................................................................... 133基本制約のパス長 .................................................................................................................... 133認証機関 ................................................................................................................................ 134認証機関証明書 ....................................................................................................................... 134CA の深さ .............................................................................................................................. 135CA 証明書 .............................................................................................................................. 135証明書の署名 .......................................................................................................................... 135証明書のパス .......................................................................................................................... 135ドメインネームシステム ........................................................................................................... 135ドメイン名 ............................................................................................................................. 136エンドエンティティ証明書 ........................................................................................................ 136プライベート CA ..................................................................................................................... 137プライベート証明書 ................................................................................................................. 137パブリックキーインフラストラクチャ (PKI) のセットアップ .......................................................... 138ルート CA .............................................................................................................................. 138ルート証明書 .......................................................................................................................... 138Secure Sockets Layer (SSL) ..................................................................................................... 139安全な HTTPS ........................................................................................................................ 139自己署名証明書 ....................................................................................................................... 139SSL サーバー証明書 ................................................................................................................ 139Transport Layer Security (TLS) ................................................................................................. 139信頼 ...................................................................................................................................... 139X.500 識別名 .......................................................................................................................... 140

ドキュメント履歴 ............................................................................................................................ 141以前の更新 ............................................................................................................................. 143

Version latestv

Page 6: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ニーズに最適な証明書サービスはどれですか?

ACM Private CA とはACM Private CA では、オンプレミス CA の運用にかかる投資コストや保守コストなしに、ルート CA や下位 CA を含むプライベート認証機関 (CA) 階層を作成できます。プライベート CA は、次のようなシナリオでエンドエンティティ X.509 証明書を発行できます。

• 暗号化された TLS 通信チャネルの作成• ユーザー、コンピュータ、API エンドポイント、および IoT デバイスの認証• 暗号署名コード• 証明書失効ステータスを取得するためのオンライン証明書ステータスプロトコル (OCSP) の実装

ACM Private CA オペレーションは、AWS マネジメントコンソール 、ACM Private CA API、または AWSCLI を使用してアクセスできます。

ニーズに最適な証明書サービスはどれですか?X.509 証明書を発行およびデプロイする AWS サービスは 2 つあります。ニーズに最適なものを選択してください。考慮事項には、パブリック証明書とプライベート証明書、カスタマイズされた証明書、他のAWS サービスにデプロイする証明書、自動化された証明書管理と更新のどれが必要か、が含まれます。

1. ACM Private CA — このサービスは、AWS クラウド内にパブリックキーインフラストラクチャ (PKI)を構築するエンタープライズのお客様を対象とし、組織内でのプライベートな使用を目的としています。ACM Private CA を使用すると、独自の証明機関 (CA) 階層を作成し、これによって内部ユーザー、コンピュータ、アプリケーション、サービス、サーバー、その他のデバイスを認証し、コンピュータコードを署名するための証明書を発行できます。プライベート CA によって発行された証明書は、インターネット上ではなく、組織内でのみ信頼されます。

プライベート CA を作成したら、証明書を直接発行して (つまり、サードパーティー CA から検証を取得せずに)、組織の内部ニーズに合わせて証明書をカスタマイズできます。たとえば、次のような操作を実行できます。• 任意のサブジェクト名で証明書を作成します。• 任意の有効期限で証明書を作成します。• サポートされている任意のプライベートキーアルゴリズムとキー長を使用できます。• サポートされている任意の署名アルゴリズムを使用できます。• テンプレートを使用して証明書の発行を制御します。

お客様は、このサービスの対象となります。 使用を開始するには、https://console.aws.amazon.com/acm-pca/ コンソールにサインインします。

2. AWS Certificate Manager (ACM)—このサービスは、TLS を使用してパブリックに信頼されたセキュアなウェブプレゼンスを必要とする企業顧客の証明書を管理します。ACM 証明書は、AWS Elastic LoadBalancing、Amazon CloudFront、Amazon API Gateway、およびその他の 統合サービスにデプロイできます。この種の代表的なアプリケーションは、重要なトラフィック要件を持つセキュアなパブリックウェブサイトです。

このサービスでは、ACM が提供するパブリック証明書 (ACM 証明書) または ACM にインポートする証明書を使用できます。ACM Private CA を使用して CA を作成する場合、ACM はそのプライベート CAからの証明書発行を管理し、証明書の更新を自動化できます。

詳細については、AWS Certificate Manager ユーザーガイドを参照してください。

Version latest1

Page 7: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

Regions

Regions (p. 2)

統合サービス (p. 2)

クォータ (p. 2)

RFC コンプライアンス (p. 4)

料金 (p. 5)

Regionsほとんどの AWS リソースと同様に、プライベート認証機関 (CA) はリージョナルリソースです。複数のリージョンでプライベート CA を使用するには、それらのリージョンで CA を作成する必要があります。リージョン間でプライベート CA をコピーすることはできません。AWS General Referenceの「AWS リージョンとエンドポイント」、または「AWS リージョン表」で、ACM Private CA を利用できるリージョンを参照してください。

Note

現在、ACM は、ACM Private CA が使用できない一部のリージョンで使用できます。

サービスと AWS Certificate Manager PrivateCertificate Authority の統合

AWS Certificate Manager を使用してプライベート証明書をリクエストする場合、その証明書を ACM と統合されている任意のサービスに関連付けることができます。これは、ACM Private CA ルートにチェーンされた証明書と外部 ルートにチェーンされた証明書の両方に適用されます。詳細については、AWSCertificate Manager ユーザーガイドの「サービスの統合」を参照してください。

ACM Private CA API あるいは AWS CLI を使用して証明書を発行する場合、あるいは ACM からプライベート証明書をエクスポートする場合、任意の場所に証明書をインストールできます。

クォータAWS Certificate Manager Private Certificate Authority は、許可された証明書数、認証機関数、および APIレートにクォータを割り当てます。

トピック• 証明書のクォータ (p. 2)• API リクエストのクォータ (p. 3)

証明書のクォータ次の ACM Private CA 証明書のクォータは、各リージョンおよび各アカウントに適用されます。クォータの引き上げをリクエストするには、AWS サポート センターにケースを作成します。

項目 デフォルトのクォータ

プライベート認証機関 (CA) の数 10*

Version latest2

Page 8: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

API リクエストのクォータ

項目 デフォルトのクォータ

プライベート CA あたりのプライベート証明書の数 (有効期間)

1,000,000*

CA あたりの取り消された期限切れでないプライベート証明書の数**

1,000,000

* これらのアイテムのクォータの引き上げをリクエストできます。AWS サポート センターにアクセスし、[ケースの作成] を選択し、[サービスの制限の引き上げ] を選択します。

** このクォータは、CRL を使用するクライアントで処理できる CRL の最大サイズに基づいて、証明書失効リスト (CRL) に含めることができる期限切れの証明書の数を反映します。このクォータを増やすことはできません。

Note

削除されたプライベート CA は、復元期間の終了時まで証明書のクォータにカウントされます。詳細については、「プライベート CA の削除」を参照してください。

ACM Private CA は ACM と統合されています。ACM コンソール、AWS CLI、または ACM API を使用して、既存のプライベート認証機関 (CA) からのプライベート証明書をリクエストできます。証明書は ACMで管理され、ACM によって発行されたパブリック証明書と同じ制限が適用されます。制限のリストについては、「プライベート証明書のリクエスト」を参照してください。ACM Private CA API または AWS CLIを使用して、プライベート証明書を発行することもできます。詳細については、「プライベートエンドエンティティ証明書の発行 (p. 71)」を参照してください。どの方法を使用するかにかかわらず、1 つのリージョンごとの 1 つのアカウントにつき 10 個のプライベート CA を作成し、1,000,000 個のプライベート証明書をリクエストし、1,000,000 個の証明書を取り消すことができます。ACM は、パブリック証明書とインポートされた証明書にクォータを配置します。詳細については、「ACMクォータ」を参照してください。

API リクエストのクォータ各リージョンとアカウントで、ACM Private CA API には以下のクォータが適用されます。ACM PrivateCA は、API オペレーションに合わせて、さまざまなレートで API リクエストをスロットリングします。スロットリングとは、1 秒あたりのリクエスト数に関するオペレーションのクォータを超えたことにより、ACM Private CA が有効なリクエストを拒否することを意味します。リクエストがスロットリングされると、ACM Private CA は ThrottlingException エラーを返します。以下の表に示しているのは、各API オペレーションと、ACM Private CA がそのオペレーションに合わせて KMS リクエストを調整するポイントです。ACM Private CA は、API の最小リクエストレートを保証するものではありません。

Note

ThrottlingException エラーが発生した場合は、サポートに連絡する前にオペレーションを再試行することをお勧めします。

各 ACM Private CA API オペレーションの 1 秒あたりのクォータリクエスト数

API オペレーション 1 秒あたりのリクエスト

CreateCertificateAuthority 1

CreateCertificateAuthorityAuditReport 1

CreatePermission 1

DeleteCertificateAuthority 10

DeletePermission 1

Version latest3

Page 9: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

RFC コンプライアンス

API オペレーション 1 秒あたりのリクエスト

DescribeCertificateAuthority 20

DescribeCertificateAuthorityAuditReport 20

GetCertificate 75*

GetCertificateAuthorityCertificate 20

GetCertificateAuthorityCsr 10

ImportCertificateAuthorityCertificate 10

IssueCertificate 25*

ListCertificateAuthorities 20

ListPermissions 5

ListTags 20

RestoreCertificateAuthority 20

RevokeCertificate 20

TagCertificateAuthority 10

UntagCertificateAuthority 10

UpdateCertificateAuthority 10

* このアイテムはレートの引き上げをリクエストできます。AWS サポート センターにアクセスし、[ケースの作成] を選択し、[サービスの制限の引き上げ] を選択します。

RFC コンプライアンスACM Private CA は、RFC 5280 で定義された特定の制約を強制しません。逆も同様で、プライベート CAに適切な追加の制約が強制されます。

強制

• 日付を過ぎると強制されません。RFC 5280 に準拠して、ACM Private CA は、交付元 CA 認定の交付日よりも後の Not After Not After 日付を持つ証明書は発行しません。

• 基本的制約。ACM Private CA は、インポートされた CA 認定に基本的な制約とパスの長さを適用します。

基本的な制約は、証明書によって識別されるリソースが CA であり、証明書を発行できるかどうかを示します。ACM Private CA にインポートされる CA 認定には、基本的制約の拡張を含める必要があり、拡張に critical とマークする必要があります。critical フラグに加えて、 CA=true を設定する必要があります。ACM Private CA は、以下の理由により検証例外に失敗することで、基本的制約を強制します。• 拡張が CA 認定に含まれていない。• 拡張が critical とマークされていない。

パスの長さは、検証チェーンでインポートされた CA 認定の下位の有効な証明パスの最大深さを決定します。ACM Private CA は、次の理由により検証例外で失敗することで、パスの長さを強制します。

Version latest4

Page 10: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

料金

• CA 認定をインポートすると、CA 認定またはチェーン内の任意の CA 認定のパスの長さ制約に違反する。

• 証明書を発行すると、パスの長さの制約に違反する。• 名前の制約。CA に対するこれらの制約は、ダウンストリーム証明書に有効なサブジェクト名を制御し

ます。詳細については、「プライベート CA での名前制約の適用 (p. 127)」を参照してください。

強制されない

• ポリシーび制約。これらの制約により、CA の下位 CA 認定を交付する機能が制限されます。• サブジェクトキー識別子 (SKI) と 権限キー識別子 (AKI)。RFC では、SKI 拡張を含む CA 認定が必要で

す。CA によって発行された証明書には、CA 認定の SKI に一致する AKI 拡張が含まれている必要があります。AWS はこれらの要件を強制しません。CA 認定に SKI が含まれていない場合、発行されたエンドエンティティまたは下位 CA 認定 AKI は、発行者パブリックキーの SHA-1 ハッシュになります。

• サブジェクトパブリックキー情報およびサブジェクト別名 (SAN)。証明書を発行する場合、ACM PrivateCA は検証を実行せずに、提供された CSR から SubjectPublicKeyInfo および SAN 拡張をコピーします。

料金アカウントを作成した時点で、各プライベート CA の月額料金が課金されます。また、発行する証明書ごとに課金されます。この金額には、ACM からエクスポートする証明書や、ACM Private CA API または ACM Private CA CLI から作成する証明書が含まれます。プライベート CA が削除された後は、それに対して課金されません。ただし、プライベート CA を復元すると、削除と復元の間の料金が課金されます。プライベートキーにアクセスできないプライベート証明書については、料金は発生しません。これには、Elastic Load Balancing、CloudFront、API Gateway などの統合サービスで使用される証明書が含まれます。最新の ACM Private CA の料金情報については、AWS ウェブサイトの ACM 料金表ページを参照してください。

Version latest5

Page 11: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

データ保護

AWS Certificate Manager PrivateCertificate Authority でのセキュリティ

AWS では、クラウドのセキュリティが最優先事項です。AWS のお客様は、セキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャから利点を得られます。

セキュリティは、AWS とお客様の間の共有責任です。責任共有モデルでは、これをクラウドのセキュリティおよびクラウド内のセキュリティと説明しています。

• クラウドのセキュリティ – AWS は、AWS クラウド内で AWS サービスを実行するインフラストラクチャを保護する責任を担います。また、AWS は、使用するサービスを安全に提供します。AWSコンプライアンスプログラムの一環として、サードパーティーの監査が定期的にセキュリティの有効性をテストおよび検証しています。AWS Certificate Manager Private Certificate Authority に適用されるコンプライアンスプログラムの詳細については、「コンプライアンスプログラムの対象範囲に含まれる AWS のサービス」を参照してください。

• クラウド内のセキュリティ – お客様の責任はお客様が使用する AWS のサービスによって決まります。また、お客様は、お客様のデータの機密性、企業の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

このドキュメントは、ACM Private CA を使用する際に責任共有モデルを適用する方法を理解するのに役立ちます。以下のトピックでは、セキュリティおよびコンプライアンスの目的を達成するように ACMPrivate CA を設定する方法について説明します。また、ACM Private CA リソースのモニタリングやセキュリティ保護に役立つ他の AWS のサービスの使用方法についても説明します。

トピック• AWS Certificate Manager Private Certificate Authority でのデータ保護 (p. 6)• AWS Certificate Manager Private Certificate Authority の Identity and Access Management (p. 7)• AWS Certificate Manager Private Certificate Authority でのログ記録とモニタリング (p. 17)• AWS Certificate Manager Private Certificate Authority のコンプライアンス検証 (p. 33)• AWS Certificate Manager Private Certificate Authority でのインフラストラクチャセキュリ

ティ (p. 37)• ACM Private CA ベストプラクティス (p. 40)

AWS Certificate Manager Private CertificateAuthority でのデータ保護

AWS Certificate Manager Private Certificate Authority は、データ保護の規制やガイドラインを含む AWS責任共有モデルに準拠しています。AWS は、AWS のすべてのサービスを実行するグローバルなインフラストラクチャを保護する責任を負います。また、AWS は、カスタマーコンテンツや個人データを取り扱う

Version latest6

Page 12: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ACM Private CA プライベートキーの保管

ためのセキュリティ設定の管理など、このインフラストラクチャ上でホストされるデータの管理を担当します。AWS のお客様と APN パートナーは、データ管理者やデータ処理者として、AWS クラウド内に保存した個人データに対する責任を負います。

データ保護の目的で、 AWS アカウント認証情報を保護し、個々のユーザーアカウントを設定し、 AWSIdentity and Access Management (IAM) (p. 7)を使用して ACM Private CA API オペレーションへのアクセスを制御することをお勧めします。こうすることで、それぞれの職務を遂行するために必要なアクセス許可のみを各ユーザーに付与することができます。また、以下の方法でデータを保護することをお勧めします。

• 各アカウントで多要素認証 (MFA) を使用します。• SSL/TLS を使用して AWS リソースと通信します。

• AWS CloudTrail (p. 22) で API とユーザーアクティビティログをセットアップします。• AWS 暗号化ソリューションを、AWS サービス内のすべてのデフォルトのセキュリティ管理と一緒に使

用します。• Amazon Macie などの高度なマネージドセキュリティサービスを使用します。これにより、Amazon S3

に保存される個人データの検出と保護が支援されます。

顧客のアカウント番号などの機密の識別情報は、[名前] フィールドなどの自由形式のフィールドに配置しないことを強くお勧めします。これは、コンソール、API、AWS CLI、または AWS SDK によって ACMPrivate CA や他の AWS のサービスを使用する場合も同様です。ACM Private CA や他のサービスに入力したすべてのデータは、診断ログに取り込まれる可能性があります。外部サーバーへの URL を指定するときは、そのサーバーへのリクエストを検証するための認証情報を URL に含めないでください。

データ保護の詳細については、AWS セキュリティブログのブログ投稿「AWS の責任共有モデルとGDPR」を参照してください。

ACM Private CA プライベートキーの保管プライベート CA のプライベートキーは、AWS が管理するハードウェアセキュリティモジュール (HSM)に保存されます。これらは、FIPS 140-2 レベル 3 のセキュリティ標準に準拠しています。

AWS Certificate Manager Private CertificateAuthority の Identity and Access Management

ACM Private CA へのアクセスには、AWS がリクエストの認証に使用できる認証情報が必要です。以下のトピックでは、プライベート CA をセキュリティで保護するために AWS Identity and Access Management(IAM) を使用してプライベート認証機関 (CA) にアクセスできるユーザーを管理する方法について詳しく説明します。

認証AWS には、次のタイプのアイデンティティでアクセスできます。

• AWS アカウントのルートユーザー – AWS アカウントを初めて作成する場合は、このアカウントのすべての AWS サービスとリソースに対して完全なアクセス権限を持つシングルサインインアイデンティティで始めます。このアイデンティティは AWS アカウント ルートユーザー と呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでのサインインによりアクセスします。強くお勧めしているのは、日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためだけに ルートユーザー を使用するというベストプ

Version latest7

Page 13: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

認証

ラクティスに従います。その後、ルートユーザー認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。

• IAM ユーザー – IAM ユーザーは、特定のカスタム権限 (たとえば、ACM Private CA で a directory を作成するアクセス権限) を持つ AWS アカウント内のアイデンティティです。IAM のユーザー名とパスワードを使用して、AWS マネジメントコンソール、AWS ディスカッションフォーラム、AWS Support Centerなどのセキュリティ保護された AWS ウェブページにサインインできます。

 

ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。いくつかのSDK の 1 つまたは AWS Command Line Interface (CLI) を使ってプログラムで AWS サービスにアクセスするときに、これらのキーを使用できます。SDK と CLI ツールでは、アクセスキーを使用してリクエストが暗号で署名されます。AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。ACM Private CA supports では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、『AWSGeneral Reference』の「署名バージョン 4 の署名プロセス」を参照してください。

 • IAM ロール – IAM ロールは、特定のアクセス権限を持ち、アカウントで作成できる IAM アイデンティ

ティです。IAM ロールは、AWS で許可/禁止する操作を決めるアクセス権限ポリシーが関連付けられている AWS アイデンティティであるという点で、IAM ユーザーと似ています。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。 IAM ロールと一時的な認証情報は、次の状況で役立ちます。

 • フェデレーティッドユーザーアクセス – IAM ユーザーを作成する代わりに、AWS Directory Service、

エンタープライズユーザーディレクトリ、またはウェブ ID プロバイダーに既存のアイデンティティを使用できます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。AWS では、IDプロバイダーを通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、IAM ユーザーガイドの「フェデレーティッドユーザーとロール」を参照してください。

 • AWS のサービスのアクセス – サービスロールは、サービスがお客様に代わってお客様のアカウントで

アクションを実行するために引き受ける IAM ロールです。一部の AWS のサービス環境を設定するときに、サービスが引き受けるロールを定義する必要があります。このサービスロールには、サービスが必要とする AWS のリソースにサービスがアクセスするために必要なすべてのアクセス権限を含める必要があります。サービスロールはサービスによって異なりますが、多くのサービスロールでは、そのサービスの文書化された要件を満たしている限り、アクセス権限を選択することができます。サービスロールは、お客様のアカウント内のみでアクセスを提供します。他のアカウントのサービスへのアクセス権を付与するためにサービスロールを使用することはできません。IAM 内部からロールを作成、修正、削除できます。たとえば、Amazon Redshift がお客様に代わって Amazon S3 バケットにアクセスし、バケットからデータを Amazon Redshift クラスターにロードすることを許可するロールを作成できます。詳細については、IAM ユーザーガイドのAWS サービスにアクセス権限を委任するロールの作成を参照してください。

 • Amazon EC2 で実行中のアプリケーション – IAM ロールを使用して、EC2 インスタンスで実行さ

れ、AWS CLI または AWS API リクエストを作成しているアプリケーションの一時的な認証情報を管理できます。これは、EC2 インスタンス内でのアクセスキーの保存に推奨されます。AWS ロールを EC2 インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、IAM ユーザーガイドの「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス権限を付与する」を参照してください。

Version latest8

Page 14: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

リソース、所有権、およびアクセス許可のポリシーについて

リソース、所有権、およびアクセス許可のポリシーについてACM Private CA では、操作するプライマリリソースはプライベート認証機関 (PCA) です。所有または管理する各プライベート CA は、Amazon リソースネーム (ARN) によって識別され、その形式は次のとおりです。

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/12345678-abcd-1234-abcd-1234567890ab

リソース所有者は、AWS リソースが作成される AWS アカウントのプリンシパルエンティティです。以下の例では、このしくみを示しています。

• AWS アカウントのルートユーザー の認証情報を使用してプライベート CA を作成する場合、AWS アカウントは CA を所有します。

• AWS アカウントで IAM ユーザーを作成する場合、そのユーザーにプライベート CA を作成する権限を与えることができます。ただし、そのユーザーが所属するアカウントが CA を所有しています。

• AWS アカウントで IAM ロールを作成してプライベート CA を作成するアクセス許可を与えると、ロールを引き受けることができるすべてのユーザーが CA を作成できます。ただし、そのロールが所属するアカウントがプライベート CA を所有します。

アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のディスカッションで、アクセス許可のポリシーを作成するために使用可能なオプションについて説明します。

Note

このドキュメントでは、ACM Private CA のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについては、「IAM ユーザーガイド」を参照してください。IAM ポリシー構文の詳細および説明については、「AWS IAM ポリシーのリファレンス」を参照してください。

IAM アイデンティティにアタッチするアクセスコントロールとアクセス許可ポリシー (アイデンティティベースのポリシー) を設定するときは、以下の表をリファレンスとして使用できます。表の最初の列には、各 ACM Private CA API オペレーションが一覧表示されます。ポリシーの Action 要素でアクションを指定します。残りの列では、追加情報を指定します。

ACM Private CA API オペレーションとアクセス許可

ACM Private CA API オペレーション

必要なアクセス権限 リソース

CreateCertificateAuthority acm-pca:CreateCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

CreateCertificateAuthorityAuditReportacm-pca:CreateCertificateAuthorityAuditReport

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

CreatePermission acm-pca:CreatePermission arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

DeleteCertificateAuthority acm-pca:DeleteCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

Version latest9

Page 15: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

リソース、所有権、およびアクセス許可のポリシーについて

ACM Private CA API オペレーション

必要なアクセス権限 リソース

DeletePermission acm-pca:DeletePermission arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

DescribeCertificateAuthority acm-pca:DescribeCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

DescribeCertificateAuthorityAuditReportacm-pca:DescribeCertificateAuthorityAuditReport

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

GetCertificate acm-pca:GetCertificate arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

GetCertificateAuthorityCertificate acm-pca:GetCertificateAuthorityCertificate

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

GetCertificateAuthorityCsr acm-pca:GetCertificateAuthorityCsr

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

ImportCertificateAuthorityCertificateacm-pca:ImportCertificateAuthorityCertificate

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

IssueCertificate acm-pca:IssueCertificate arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

ListCertificateAuthorities acm-pca:ListCertificateAuthorities

該当なし

ListPermissions acm-pca:ListPermissions arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

ListTags acm-pca:ListTags 該当なし

RevokeCertificate acm-pca:RevokeCertificate

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

TagCertificateAuthority acm-pca:TagCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

UntagCertificateAuthority acm-pca:UntagCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

UpdateCertificateAuthority acm-pca:UpdateCertificateAuthority

arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/certificate_ID

Version latest10

Page 16: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

リソース、所有権、およびアクセス許可のポリシーについて

IAM を使用して、IAM ユーザー、グループ、および役割にアクセス許可を適用するポリシーを作成できます。これは、アイデンティティベースのポリシーと呼ばれます。IAM には以下のタイプのアイデンティティベースのポリシーが用意されています。

• AWS 管理ポリシー (p. 11) は、ACM Private CA でデフォルトで使用できるポリシーです。これらのポリシーは、ベーシックユーザーロールを対象としています。

• カスタマー管理ポリシー (p. 14) は、AWS アカウントで作成および管理し、複数のユーザー、グループ、およびロールに割り当てることができるポリシーです。AWS 管理ポリシーを使用する場合よりも、カスタマー管理ポリシーを使用するときに、より正確に管理できます。

• インラインポリシー (p. 14) は、お客様が作成、管理し、単一のユーザー、グループ、またはロールに直接組み込むポリシーです。

AWS 管理ポリシーACM Private CA には、管理者、ユーザー、および監査人用の一連の定義済み AWS 管理ポリシーが含まれています。これらのポリシーを理解すると、カスタマー管理ポリシー (p. 14) を実装するのに役立ちます。

• FullAccess – 無制限の管理制御。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "acm-pca:*" ], "Resource": "*" } ]}

• ReadOnly – API オペレーションに限定されたアクセス。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:ListCertificateAuthorities", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificate", "acm-pca:ListPermissions", "acm-pca:ListTags" ], "Resource": "*" }}

• PrivilegedUser – CA 認定を交付および取り消す機能。このポリシーに他の管理機能はなく、エンドエンティティ証明書を発行する機能もありません。アクセス許可は、User ポリシーと相互に排他的です。

{ "Version": "2012-10-17", "Statement": [

Version latest11

Page 17: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

リソース、所有権、およびアクセス許可のポリシーについて

{ "Effect": "Allow", "Action": [ "acm-pca:IssueCertificate" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*", "Condition": { "StringLike": { "acm-pca:TemplateArn": [ "arn:aws:acm-pca:::template/*CACertificate*/V*" ] } } }, { "Effect": "Deny", "Action": [ "acm-pca:IssueCertificate" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*", "Condition": { "StringNotLike": { "acm-pca:TemplateArn": [ "arn:aws:acm-pca:::template/*CACertificate*/V*" ] } } }, { "Effect": "Allow", "Action": [ "acm-pca:RevokeCertificate", "acm-pca:GetCertificate", "acm-pca:ListPermissions" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*" }, { "Effect": "Allow", "Action": [ "acm-pca:ListCertificateAuthorities" ], "Resource": "*" } ]}

• User – エンドエンティティを発行および取り消す機能。このポリシーに他の管理機能はなく、CA 認定を交付する機能もありません。アクセス許可は、 PrivilegedUser ポリシーと相互に排他的です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "acm-pca:IssueCertificate" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*", "Condition": { "StringLike": { "acm-pca:TemplateArn": [ "arn:aws:acm-pca:::template/EndEntityCertificate/V*" ] }

Version latest12

Page 18: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

リソース、所有権、およびアクセス許可のポリシーについて

} }, { "Effect": "Deny", "Action": [ "acm-pca:IssueCertificate" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*", "Condition": { "StringNotLike": { "acm-pca:TemplateArn": [ "arn:aws:acm-pca:::template/EndEntityCertificate/V*" ] } } }, { "Effect": "Allow", "Action": [ "acm-pca:RevokeCertificate", "acm-pca:GetCertificate", "acm-pca:ListPermissions" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*" }, { "Effect": "Allow", "Action": [ "acm-pca:ListCertificateAuthorities" ], "Resource": "*" } ]}

• Auditor – API オペレーションへのアクセス権と、CA 監査報告書を生成するアクセス許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "acm-pca:CreateCertificateAuthorityAuditReport", "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificate", "acm-pca:ListPermissions", "acm-pca:ListTags" ], "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*" }, { "Effect": "Allow", "Action": [ "acm-pca:ListCertificateAuthorities" ], "Resource": "*" } ]}

Version latest13

Page 19: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

インラインポリシー

カスタマー管理ポリシーベストプラクティスとして、AWS アカウントのルートユーザー などの ACM Private CA の操作に AWS を使用しないでください。代わりに、AWS Identity and Access Management (IAM) を使用して、IAM ユーザー、IAM ロール、またはフェデレーティッドユーザーを作成します。管理者グループを作成し、このグループに自分自身を追加します。次に、管理者としてログインします。必要に応じて、追加のユーザーをグループに追加します。

別のベストプラクティスとしては、IAM ポリシーを作成し、これをユーザーに割り当てることができます。カスタマー管理ポリシーは、作成したスタンドアロンの ID ベースのポリシーで、AWS アカウントの複数のユーザー、グループ、またはロールにアタッチすることができます。このようなポリシーは、指定した ACM Private CA アクションのみを実行するようにユーザーを制限します。

次の例のカスタマー管理ポリシーでは、CA 監査報告書を作成することをユーザーに許可します。これはあくまで例に過ぎません。必要な ACM Private CA オペレーションを選択できます。その他の例については、「インラインポリシー (p. 14)」を参照してください。

カスタマー管理ポリシーを作成するには

1. AWS 管理者の認証情報を使用して IAM コンソールにサインインします。2. コンソールのナビゲーションペインで、[ポリシー] を選択します。3. [Create policy] を選択します。4. [JSON] タブを選択します。5. 以下のポリシーをコピーして、エディタに貼り付けます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"acm-pca:CreateCertificateAuthorityAuditReport", "Resource":"*" } ] }

6. [ポリシーの確認] を選択します。7. [Name] に、「PcaListPolicy」と入力します。8. (オプション) 説明を入力します。9. [Create policy] を選択します。

管理者は、IAM ユーザーにポリシーをアタッチすることで、ユーザーが実行できる ACM Private CA アクションを制限できます。アクセス許可ポリシーを適用する方法については、IAM ユーザーガイドの「IAMユーザーのアクセス許可を変更する」を参照してください 。

インラインポリシーインラインポリシーとは、ユーザー、グループ、または役割りを作成、管理、または直接組み込むポリシーです。以下のポリシーの例は、ACM Private CA アクションを実行するための権限を割り当てる方法を説明します。インラインポリシーに関する全般的な情報については、IAM ユーザーガイド で「インラインポリシーの使用」を参照してください。AWS マネジメントコンソール、AWS Command LineInterface、AWS CLI、あるいは IAM API を使用して、インラインポリシーを作成して埋め込むことができます。

トピック

Version latest14

Page 20: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

インラインポリシー

• プライベート CA を一覧表示する (p. 15)• プライベート CA 証明書を取得する (p. 15)• プライベート CA 証明書をインポートする (p. 15)• プライベート CA の削除 (p. 15)• ACM Private CA への読み取り専用アクセス (p. 16)• ACM Private CA へのフルアクセス。 (p. 16)• すべての AWS リソースへの管理者アクセス (p. 16)

プライベート CA を一覧表示する次のポリシーを使用すると、ユーザーはアカウントのすべてのプライベート CA を一覧表示できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"acm-pca:ListCertificateAuthorities", "Resource":"*" } ] }

プライベート CA 証明書を取得する次のポリシーを使用すると、ユーザーは特定のプライベート CA 証明書を取得できます。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":"acm-pca:GetCertificateAuthorityCertificate", "Resource":"arn:aws:acm-pca:AWS_Region:AWS_Account:certificate-authority/12345678-1234-1234-1234-123456789012" } }

プライベート CA 証明書をインポートする次のポリシーを使用すると、ユーザーはプライベート CA 証明書をインポートできます。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":"acm-pca:ImportCertificateAuthorityCertificate", "Resource":"arn:aws:acm-pca:AWS_Region:AWS_Account:certificate/12345678-1234-1234-1234-123456789012" } }

プライベート CA の削除次のポリシーを使用すると、ユーザーは特定のプライベート CA 証明書を削除できます。

Version latest15

Page 21: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

インラインポリシー

{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":"acm-pca:DeleteCertificateAuthority", "Resource":"arn:aws:acm-pca:AWS_Region:AWS_Account:certificate/12345678-1234-1234-1234-123456789012" } }

ACM Private CA への読み取り専用アクセス次のポリシーを使用すると、ユーザーはプライベート証明書認証機関を説明、一覧表示し、また、プライベート CA 認定と証明書チェーンを取得できます。

{ "Version":"2012-10-17", "Statement":{ "Effect":"Allow", "Action":[ "acm-pca:DescribeCertificateAuthority", "acm-pca:DescribeCertificateAuthorityAuditReport", "acm-pca:ListCertificateAuthorities", "acm-pca:ListTags", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:GetCertificateAuthorityCsr", "acm-pca:GetCertificate" ], "Resource":"*" } }

ACM Private CA へのフルアクセス。次のポリシーを使用すると、ユーザーは任意の ACM Private CA アクションを実行できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm-pca:*" ], "Resource":"*" } ] }

すべての AWS リソースへの管理者アクセス次のポリシーを使用すると、ユーザーは任意の AWS リソースで任意のアクションを実行できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"*",

Version latest16

Page 22: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ログ記録とモニタリング

"Resource":"*" } ] }

AWS Certificate Manager Private CertificateAuthority でのログ記録とモニタリング

モニタリングは、AWS Certificate Manager Private Certificate Authority および AWS ソリューションの信頼性、可用性、パフォーマンスを維持するうえで重要な要素です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。

次のトピックでは、ACM Private CA で使用できる AWS クラウドモニタリングツールについて説明します。

トピック• サポートされる CloudWatch メトリクス (p. 17)• CloudWatch イベントの使用 (p. 18)• CloudTrail を使用する (p. 22)

サポートされる CloudWatch メトリクスAmazon CloudWatch は、AWS リソースのモニタリングサービスです。CloudWatch を使用して、メトリクスの収集と追跡、アラーム設定、AWS リソースの変更に対する自動的な対応ができます。ACM PrivateCA は以下の CloudWatch メトリクスをサポートしています。

メトリクス 説明

CRLGenerated 証明書失効リスト (CRL) が生成されました。このメトリクスは、プライベート CA にのみ適用されます。

MisconfiguredCRLBucket CRL に指定された S3 バケットが正しく設定されていません。バケットポリシーを確認します。このメトリクスは、プライベート CA にのみ適用されます。

Time このメトリクスは、証明書が発行された時刻を指定します。このメトリクスは IssueCertificate オペレーションにのみ適用されます。

Success 証明書が正常に発行されました。このメトリクスは IssueCertificate オペレーションにのみ適用されます。

Failure オペレーションに失敗しました。このメトリクスは IssueCertificate オペレーションにのみ適用されます。

CloudWatch メトリクスの詳細については、次のトピックを参照してください。

Version latest17

Page 23: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudWatch イベントの使用

• Amazon CloudWatch メトリクスの使用• Amazon CloudWatch アラームの作成

CloudWatch イベントの使用Amazon CloudWatch Events を使用すると、AWS のサービスを自動化して、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに自動的に応答できます。AWS サービスからのイベントは、ほぼリアルタイムに CloudWatch イベント に提供されます。簡単なルールを記述して、注目するイベントと、イベントがルールに一致した場合に自動的に実行するアクションを指定できます。詳細については、「イベントでトリガーされる CloudWatch イベント ルールの作成」を参照してください。

CloudWatch イベント は、Amazon EventBridge を使用してアクションに変換されます。EventBridge では、イベントを使用して、AWS Lambda 関数、AWS Batch ジョブ、Amazon SNS トピックなどのターゲットをトリガーできます。詳細については、「Amazon EventBridge とは?」を参照してください。

プライベート CA 作成時の成功または失敗これらのイベントは、CreateCertificateAuthority オペレーションによってトリガーされます。

成功

成功すると、オペレーションは新しい CA の ARN を返します。

{ "version":"0", "id":"93c0a8a5-3879-ee03-597f-5e2example18", "detail-type":"ACM Private CA Creation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T19:14:56Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51" ], "detail":{ "result":"success" } }

失敗

失敗すると、オペレーションは CA の ARN を返します。ARN を使用し、DescriBeCertificateAuthority を呼び出して CA のステータスを判断できます。

{ "version":"0", "id":"93c0a8a5-3879-ee03-597f-5e2example18", "detail-type":"ACM Private CA Creation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T19:14:56Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51" ], "detail":{

Version latest18

Page 24: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudWatch イベントの使用

"result":"failure" } }

証明書発行時の成功または失敗これらのイベントは、IssueCertificate オペレーションによってトリガーされます。

成功

成功すると、オペレーションは CA と新しい証明書の ARN を返します。

{ "version":"0", "id":"dba9ac68-e917-adb7-b5fa-071examplea7", "detail-type":"ACM Private CA Certificate Issuance", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T19:57:46Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51", "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51/certificate/b845c374b495cbexamplec4c81cc4043" ], "detail":{ "result":"success" } }

失敗

失敗すると、証明書 ARN と CA の ARN が返されます。証明書 ARN を使用して、GetCertificate を呼び出して失敗の理由を表示できます。

{ "version":"0", "id":"dba9ac68-e917-adb7-b5fa-071examplea7", "detail-type":"ACM Private CA Certificate Issuance", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T19:57:46Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51", "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPL51/certificate/b845c374b495cb67dac7ac4c81cc4043" ], "detail":{ "result":"failure" } }

証明書取り消しの成功このイベントは、RevokeCertificate オペレーションによってトリガーされます。

取り消しに失敗した場合、または証明書がすでに取り消されている場合、イベントは送信されません。

Version latest19

Page 25: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudWatch イベントの使用

成功

成功すると、CA および取り消された証明書 ARN が返されます。

{ "version":"0", "id":"247b9dcb-1f62-b23a-2195-790example7b", "detail-type":"ACM Private CA Certificate Revocation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-05T20:25:19Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-east-1:111111111111:certificate-authority/d87e9a0a-75cb-44ba-bf83-44cEXAMPLE92", "arn:aws:acm-pca:us-east-1:111111111111:certificate-authority/d87e9a0a-75cb-44ba-bf83-44cEXAMPLE92/certificate/d2196bfeef09b5b2088b205EXAMPLEd4" ], "detail":{ "result":"success" } }

CRL 生成時の成功または失敗これらのイベントは、RevokeCertificate オペレーションによってトリガーされます。その結果、証明書失効リスト (CRL) が作成されます。

成功

成功すると、オペレーションは CRL に関連付けられた CA の ARN を返します。

{ "version":"0", "id":"fefaffcc-9579-8e7b-0565-f11examplead", "detail-type":"ACM Private CA CRL Generation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T21:07:08Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:ap-southeast-1:111111111111:certificate-authority/b58e1229-f656-453e-bd11-109EXAMPLE1a" ], "detail":{ "result":"success" } }

失敗 1 — アクセス許可エラーのため CRL を Amazon S3 に保存できませんでした

このエラーが発生した場合は、Amazon S3 バケットのアクセス許可を確認してください。

{ "version":"0", "id":"071f4cb1-2a7b-e70c-ab6d-f56example34", "detail-type":"ACM Private CA CRL Generation", "source":"aws.acm-pca", "account":"111111111111",

Version latest20

Page 26: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudWatch イベントの使用

"time":"2019-11-07T23:01:25Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-east-1:111111111111:certificate-authority/f0192f90-5988-4e90-accc-99dEXAMPLE49" ], "detail":{ "result":"failure", "reason":"Failed to write CRL to S3. Check your S3 bucket permissions." } }

失敗 2 — 内部エラーのため CRL を Amazon S3 に保存できませんでした

このエラーが発生した場合は、オペレーションを再試行してください。

{ "version":"0", "id":"071f4cb1-2a7b-e70c-ab6d-f56example34", "detail-type":"ACM Private CA CRL Generation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-07T23:01:25Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-east-1:111111111111:certificate-authority/f0192f90-5988-4e90-accc-99dEXAMPLE49" ], "detail":{ "result":"failure", "reason":"Failed to write CRL to S3. Internal failure." } }

失敗 3: ACM PCA が CRLの作成に失敗しました

このエラーをトラブルシューティングするには、 CloudWatch メトリクスを確認してください。

{ "version":"0", "id":"071f4cb1-2a7b-e70c-ab6d-f56example34", "detail-type":"ACM Private CA CRL Generation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-07T23:01:25Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-east-1:111111111111:certificate-authority/f0192f90-5988-4e90-accc-99dEXAMPLE49" ], "detail":{ "result":"failure", "reason":"Failed to generate CRL. Internal failure." } }

CA 監査報告書作成時の成功または失敗これらのイベントは、CreateCertificateAuthorityAuditReport オペレーションによってトリガーされます。

成功

Version latest21

Page 27: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

成功すると、オペレーションは CA の ARN と監査報告書の ID を返します。

{ "version":"0", "id":"f4f561f4-c045-e0a3-cb06-bf7exampled8", "detail-type":"ACM Private CA Audit Report Generation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T21:54:20Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPLE51", "5903194d-0df7-4733-a8a0-cefexampleb9" ], "detail":{ "result":"success" } }

失敗

Amazon S3 バケットの ACM PCA に PUT アクセス許可がない場合、 バケットで暗号化が有効になっている、またはその他の理由で監査報告書が失敗することがあります。

{ "version":"0", "id":"f4f561f4-c045-e0a3-cb06-bf7exampled8", "detail-type":"ACM Private CA Audit Report Generation", "source":"aws.acm-pca", "account":"111111111111", "time":"2019-11-04T21:54:20Z", "region":"us-east-1", "resources":[ "arn:aws:acm-pca:us-west-2:111111111111:certificate-authority/d543408e-0f41-4a3f-a0e0-84dEXAMPLE51", "5903194d-0df7-4733-a8a0-cefexampleb9" ], "detail":{ "result":"failure" } }

CloudTrail を使用するAWS CloudTrail を使用して、AWS Certificate Manager Private Certificate Authority によって行われた APIコールを記録できます。詳細については、以下のトピックを参照してください。

トピック• 認証機関の作成 (p. 23)• 監査レポートの作成 (p. 24)• 認証機関の削除 (p. 24)• 証明機関の復元 (p. 25)• 認証機関の説明 (p. 25)• 認証機関証明書の取得 (p. 26)• 証明書認証機関署名リクエストを取得する (p. 26)• 証明書を取得する (p. 27)

Version latest22

Page 28: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

• 認証機関の証明書のインポート (p. 27)• 証明書の発行 (p. 28)• 認証機関の一覧表示 (p. 29)• タグをリスト表示する (p. 30)• 証明書の失効 (p. 30)• プライベート認証機関のタグ付け (p. 31)• プライベート認証機関からのタグの削除 (p. 31)• 認証機関の更新 (p. 32)

認証機関の作成次の CloudTrail の例は、CreateCertificateAuthority オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T21:22:33Z", eventSource: "acm-pca.amazonaws.com", eventName: "CreateCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityConfiguration: { keyType: "RSA2048", signingAlgorithm: "SHA256WITHRSA", subject: { country: "US", organization: "Example Company", organizationalUnit: "Corp", state: "WA", commonName: "www.example.com", locality: "Seattle" } }, revocationConfiguration: { crlConfiguration: { enabled: true, expirationInDays: 3650, customCname: "your-custom-name", s3BucketName: "your-bucket-name" } }, certificateAuthorityType: "SUBORDINATE", idempotencyToken: "98256344" }, responseElements: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1" }, requestID: "332b0c69-8779-4625-bdef-2e95a4a18265", eventID: "cd27c874-ae6e-4585-9c1b-5abf5537ec39", eventType: "AwsApiCall", recipientAccountId: "account"

Version latest23

Page 29: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

}

監査レポートの作成次の CloudTrail の例では、CreateCertificateAuthorityAuditReport オペレーションへの呼び出しの結果を示します。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T21:56:00Z", eventSource: "acm-pca.amazonaws.com", eventName: "CreateCertificateAuthorityAuditReport", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", s3BucketName: "your-bucket-name", auditReportResponseFormat: "JSON" }, responseElements: { auditReportId: "2a7d28e7-a835-40a6-b19f-371186c62346", s3Key: "audit-report/ac5a7c2e-19c8-4258-b74e-351c2b791fe1/2a7d28e7-a835-40a6-b19f-371186c62346.json" }, requestID: "3b56d220-1660-4941-8160-b54dcc70592d", eventID: "ea95f673-e7be-411d-bb54-ca1ab844baaf", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関の削除次の CloudTrail の例は、DeleteCertificateAuthority オペレーションへの呼び出しの結果を示しています。この例では、認証機関が ACTIVE 状態であるため、その認証機関を削除できません。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:01:11Z", eventSource: "acm-pca.amazonaws.com", eventName: "DeleteCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32",

Version latest24

Page 30: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

errorCode: "InvalidStateException", errorMessage: "The certificate authority is not in a valid state for deletion.", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/09517d62-4f11-4bf8-a2c9-9e863792b675" }, responseElements: null, requestID: "dae3e14f-62f6-42f3-acf4-630c47a09ee4", eventID: "c40abfac-53f7-420a-9b55-c3f2f2139de8", eventType: "AwsApiCall", recipientAccountId: "account" }

証明機関の復元次の CloudTrail の例は、RestoreCertificateAuthority オペレーションへの呼び出しの結果を示しています。この例では、認証機関が DELETED 状態ではないため、その認証機関を復元できません。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:01:11Z", eventSource: "acm-pca.amazonaws.com", eventName: "RestoreCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", errorCode: "InvalidStateException", errorMessage: "The certificate authority is not in a valid state for restoration.", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/09517d62-4f11-4bf8-a2c9-9e863792b675" }, responseElements: null, requestID: "dae3e14f-62f6-42f3-acf4-630c47a09ee4", eventID: "c40abfac-53f7-420a-9b55-c3f2f2139de8", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関の説明次の CloudTrail の例では、DescribeCertificateAuthority オペレーションへの呼び出しの結果を示します。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account>", accessKeyId: "Key_ID"

Version latest25

Page 31: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

}, eventTime: "2018-01-26T21:58:18Z", eventSource: "acm-pca.amazonaws.com", eventName: "DescribeCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region1:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1" }, responseElements: null, requestID: "289d6bd9-cdca-43d1-a446-62e64a7006a4", eventID: "ff5f55b7-06de-4cb4-8fa1-5d29d3948f7b", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関証明書の取得次の CloudTrail の例では、GetCertificateAuthorityCertificate オペレーションへの呼び出しの結果を示します。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:03:52Z", eventSource: "acm-pca.amazonaws.com", eventName: "GetCertificateAuthorityCertificate", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1" }, responseElements: null, requestID: "94cee046-bf52-4a69-b95c-eae662818410", eventID: "7dd83274-8c5f-4b9a-b9b6-371b53771ce9", eventType: "AwsApiCall", recipientAccountId: "account" }

証明書認証機関署名リクエストを取得する次の CloudTrail の例は、GetCertificateAuthorityCsr オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name",

Version latest26

Page 32: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T21:40:33Z", eventSource: "acm-pca.amazonaws.com", eventName: "GetCertificateAuthorityCsr", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1" }, responseElements: null, requestID: "7ce9f3bc-b459-436b-bac1-61e75fca3c6e", eventID: "93115f0b-d528-447a-9b22-87f868dbfd8e", eventType: "AwsApiCall", recipientAccountId: "account" }

証明書を取得する次の CloudTrail の例は、GetCertificate オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:22:54Z", eventSource: "acm-pca.amazonaws.com", eventName: "GetCertificate", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", certificateArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1/certificate/6707447683a9b7f4055627ffd55cebcc" }, responseElements: null, requestID: "ec0681a9-6202-496e-985a-adba939311e4", eventID: "89be1a2a-3340-4d74-a633-5582a2fba1d3", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関の証明書のインポート次の CloudTrail の例は、ImportCertificateAuthorityCertificate オペレーションへの呼び出しの結果を示しています。

{

Version latest27

Page 33: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T21:53:28Z", eventSource: "acm-pca.amazonaws.com", eventName: "ImportCertificateAuthorityCertificate", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", certificate: { hb: [45, 45, ...10], offset: 0, isReadOnly: false, bigEndian: true, nativeByteOrder: false, mark: -1, position: 1257, limit: 1257, capacity: 1257, address: 0 }, certificateChain: { hb: [45, 45, ...10], offset: 0, isReadOnly: false, bigEndian: true, nativeByteOrder: false, mark: -1, position: 1139, limit: 1139, capacity: 1139, address: 0 } }, responseElements: null, requestID: "36bbba0c-2d08-4995-99fc-964926103841", eventID: "17a38b26-49c1-41d2-8d15-f9362eeaaaa0", eventType: "AwsApiCall", recipientAccountId: "account" }

証明書の発行次の CloudTrail の例では、IssueCertificate オペレーションへの呼び出しの結果を示します。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name",

Version latest28

Page 34: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:18:43Z", eventSource: "acm-pca.amazonaws.com", eventName: "IssueCertificate", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", csr: { hb: [45, 45, ...10], offset: 0, isReadOnly: false, bigEndian: true, nativeByteOrder: false, mark: -1, position: 1090, limit: 1090, capacity: 1090, address: 0 }, signingAlgorithm: "SHA256WITHRSA", validity: { value: 365, type: "DAYS" }, idempotencyToken: "1234" }, responseElements: { certificateArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1/certificate/6707447683a9b7f4055627ffd55cebcc" }, requestID: "0a5808dd-fc92-46f8-ba07-090ef8e9bcb4", eventID: "2816c6f0-184c-4d8b-b4ca-e54ab8dd6f2c", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関の一覧表示次の CloudTrail の例は、ListCertificateAuthorities オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:09:43Z", eventSource: "acm-pca.amazonaws.com", eventName: "ListCertificateAuthorities", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32",

Version latest29

Page 35: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

requestParameters: { maxResults: 10 }, responseElements: null, requestID: "047fb10f-b000-4915-b339-6b6ee8d9c5d6", eventID: "dbf32c79-77d2-4a3d-863b-8bf964e65fda", eventType: "AwsApiCall", recipientAccountId: "account" }

タグをリスト表示する次の CloudTrail の例は、ListTags オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-02-02T00:21:56Z", eventSource: "acm-pca.amazonaws.com", eventName: "ListTags", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:us-east-1:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1" }, responseElements: { tags: [{ key: "Admin", value: "Alice" }, { key: "User", value: "Bob" }] }, requestID: "72819d8d-c6bc-4921-a944-95bb899ed911", eventID: "a349328f-e3e0-48ee-abc9-00526768080a", eventType: "AwsApiCall", recipientAccountId: "account" }

証明書の失効次の CloudTrail の例は、RevokeCertificate オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name accessKeyId: "Key_ID"

Version latest30

Page 36: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

}, eventTime: "2018-01-26T22:35:03Z", eventSource: "acm-pca.amazonaws.com", eventName: "RevokeCertificate", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", certificateSerial: "67:07:44:76:83:a9:b7:f4:05:56:27:ff:d5:5c:eb:cc", revocationReason: "KEY_COMPROMISE" }, responseElements: null, requestID: "fb43ebee-a065-4b08-af60-29fd611bfa09", eventID: "06b7d2bf-3b4d-46ee-b617-6531ba2aa290", eventType: "AwsApiCall", recipientAccountId: "account" }

プライベート認証機関のタグ付け次の CloudTrail の例は、TagCertificateAuthority オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-02-02T00:18:48Z", eventSource: "acm-pca.amazonaws.com", eventName: "TagCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:us-east-1:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", tags: [{ key: "Admin", value: "Alice" }] }, responseElements: null, requestID: "816df59d-5022-47af-aa58-173e5c73c20a", eventID: "8c99648b-3d77-483f-b56b-5aaa85cb6cde", eventType: "AwsApiCall", recipientAccountId: "account" }

プライベート認証機関からのタグの削除次の CloudTrail の例は、UntagCertificateAuthority オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05",

Version latest31

Page 37: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CloudTrail を使用する

userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/namee", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-02-02T00:21:50Z", eventSource: "acm-pca.amazonaws.com", eventName: "UntagCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:us-east-1:account:certificate-authority/ac5a7c2e-19c8-4258-b74e-351c2b791fe1", tags: [{ key: "Admin", value: "Alice" }] }, responseElements: null, requestID: "b9b385b4-a721-4018-be15-d679ce5c2d6e", eventID: "e32c054d-bc19-40a7-bef9-194ed6848a3b", eventType: "AwsApiCall", recipientAccountId: "account" }

認証機関の更新次の CloudTrail の例は、UpdateCertificateAuthority オペレーションへの呼び出しの結果を示しています。

{ eventVersion: "1.05", userIdentity: { type: "IAMUser", principalId: "account", arn: "arn:aws:iam::account:user/name", accountId: "account", accessKeyId: "Key_ID" }, eventTime: "2018-01-26T22:08:59Z", eventSource: "acm-pca.amazonaws.com", eventName: "UpdateCertificateAuthority", awsRegion: "us-east-1", sourceIPAddress: "xx.xx.xx.xx", userAgent: "aws-cli/1.14.28 Python/2.7.9 Windows/8 botocore/1.8.32", requestParameters: { certificateAuthorityArn: "arn:aws:acm-pca:region:account:certificate-authority/09517d62-4f11-4bf8-a2c9-9e863792b675", revocationConfiguration: { crlConfiguration: { enabled: true, expirationInDays: 3650, customCname: "your-custom-name", s3BucketName: "your-bucket-name" } }, status: "DISABLED" }, responseElements: null, requestID: "24f849f9-9966-4f13-8ff6-3e2e84b327fc", eventID: "16c78ea0-e3d7-4817-9bb0-0b997789678f",

Version latest32

Page 38: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

コンプライアンス検証

eventType: "AwsApiCall", recipientAccountId: "account" }

AWS Certificate Manager Private CertificateAuthority のコンプライアンス検証

サードパーティーの監査者は、さまざまな AWS コンプライアンスプログラムの一環として AWSCertificate Manager Private Certificate Authority のセキュリティとコンプライアンスを評価します。このプログラムには、SOC、PCI、FedRAMP、HIPAA などがあります。

特定のコンプライアンスプログラムの範囲内にある AWS のサービスのリストについては、「コンプライアンスプログラムによる AWS 対象範囲内のサービス」を参照してください。一般的な情報については、「AWS コンプライアンスプログラム」を参照してください。

サードパーティーの監査レポートをダウンロードするには、AWS Artifact を使用します。詳細については、「AWS Artifact でレポートをダウンロードする」を参照してください。

ACM Private CA を使用する際のお客様のコンプライアンス責任は、データの機密性、企業のコンプライアンス目的、適用法規によって決まります。AWS は、コンプライアンスに役立つ以下のリソースを提供しています。

• Amazon S3 バケットを暗号化する必要がある組織については、以下のトピックで ACM Private CA アセットに対応するように暗号化を設定する方法について説明します。• 監査報告書の暗号化• CRL の暗号化

• セキュリティおよびコンプライアンスのクイックスタートガイド — これらのデプロイガイドでは、アーキテクチャ上の考慮事項について説明し、セキュリティとコンプライアンスに重点を置いたベースライン環境を AWS でデプロイするためのステップを説明します。

• HIPAA のセキュリティとコンプライアンスに関するホワイトペーパーを作成する — このホワイトペーパーでは、企業が AWS を使用して HIPAA 準拠のアプリケーションを作成する方法について説明します。

• AWS コンプライアンスのリソース — このワークブックおよびガイドのコレクションは、お客様の業界や場所に適用される場合があります。

• AWS Config デベロッパーガイドの「ルールでのリソースの評価」 — AWS Config サービスでは、リソース設定が社内のプラクティス、業界のガイドライン、規制にどの程度適合しているかを評価します。

• AWS Security Hub — この AWS サービスでは、AWS 内のセキュリティ状態を包括的に表示しており、セキュリティ業界の標準およびベストプラクティスへのコンプライアンスを確認するのに役立ちます。

プライベート CA の監査報告書の作成プライベート CA が発行または取り消したすべての証明書を一覧表示する監査報告書を作成できます。このレポートは、入力時に指定する新しい S3 バケットまたは既存の S3 バケットに保存されます。

監査報告書に暗号化保護を追加する方法については、「監査報告書の暗号化 (p. 36)」を参照してください 。

監査報告書ファイルのパスとファイル名は次のとおりです。(CA_ID は発行元 CA の一意の識別子で、UUID は監査報告書の一意の識別子です。)

Version latest33

Page 39: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

監査レポートの作成

bucket-name/audit-report/CA-ID/UUID.[json|csv]

30 分ごとに新しい報告書を生成し、バケットからダウンロードできます。次の例は、CSV 区切りレポートを示しています。

awsAccountId,requestedByServicePrincipal,certificateArn,serial,subject,notBefore,notAfter,issuedAt,revokedAt,revocationReason,templateArn123456789012,,arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/fedcba9876543210fedcba9876543210,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/V1123456789012,acm.amazonaws.com,arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/0123456789abcdef0123456789abcdef,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/fedcba9876543210fedcba9876543210", "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/0123456789abcdef0123456789abcdef", "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 CLI から作成できます。

監査報告書を作成するには (コンソール)

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. [アクション] メニューで、[監査報告書の生成] を選択します。5. [Create a new S3 bucket] で [Yes] または [No] を選択して一意のバケット名 を入力し 、リストから既

存のバケットを選択します。

Version latest34

Page 40: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

監査レポートの作成

[はい] を選択すると、ACM Private CA は必要なポリシーを作成してバケットにアタッチします。[いいえ] を選択した場合は、監査報告書を生成する前に次のポリシーをバケットにアタッチする必要があります。手順については、「S3 バケットポリシーを追加する方法」を参照してください。

{ "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:::bucket-name/*", "arn:aws:s3:::bucket-name" ] } ]}

6. [出力形式] で、JavaScript Object Notation の場合は [JSON]、カンマ区切り値の場合は [CSV] を選択します。

7. [監査報告書の生成] を選択します。

監査報告書を作成するには (AWS CLI)

create-certificate-authority-audit-report コマンドを使用して、監査報告書を作成します。次のポリシーをバケットにアタッチします。

{ "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:::bucket-name/*", "arn:aws:s3:::bucket-name" ] } ]}

aws acm-pca create-certificate-authority-audit-report \--certificate-authority-arn arn:aws:acm-pca:region:account:\

Version latest35

Page 41: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

監査レポートの作成

certificate-authority/12345678-1234-1234-1234-123456789012 \--s3-bucket-name >your-bucket-name \--audit-report-response-format JSON

監査報告書の暗号化オプションで、監査報告書を含む Amazon S3 バケットに暗号化を設定できます。ACM Private CA は、S3のアセットに対して 2 つの暗号化モードをサポートしています。

• Amazon S3 で管理された AES-256 キーを使用したサーバー側の自動暗号化。• AWS Key Management Service およびお客様の使用に合わせて設定されたカスタマーマスターキー

(CMK) を使用するカスタマー管理の暗号化。

Note

ACM Private CA は、S3 によって自動的に生成されるデフォルトの CMK の使用をサポートしていません。

次の手順では、各暗号化オプションを設定する方法について説明します。

自動暗号化を設定するには

S3 サーバー側の暗号化を有効にするには、以下のステップを実行します。

1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。2. [バケット] テーブルで、ACM Private CA アセットを保持するバケットを選択します。3. バケットのページで、[プロパティ] タブを選択します。4. [デフォルト暗号化] カードを選択します。5. [AES-256] を選択します。6. オプションで、バケットのアクセス許可ポリシーを表示し、[保存する] を選択します。

カスタム暗号化を設定するには

カスタム CMK を使用して暗号化を有効にするには、以下のステップを実行します。

1. (オプション) AWS KMS CMK がない場合は、次の AWS CLI create-key コマンドを使用して作成します。

aws kms create-key

出力には、CMK のキー ID とAmazon リソースネーム (ARN) が含まれます。出力例を次に示します。

{ "KeyMetadata": { "KeyId": "6f815f63-e628-448c-8251-e40cb0d29f59", "Description": "", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012" }

Version latest36

Page 42: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイドインフラストラクチャセキュリティ

}

2. デフォルトでは、すべての AWS KMS CMK がプライベートです。リソース所有者だけが使用してデータを暗号化および復号できます。ただし、リソース所有者は、他のユーザーとリソースに CMKへのアクセス権限を付与することができます。次のステップを使用して、CMK を使用するアクセス許可を ACM Private CA サービスプリンシパルに付与します。このサービスプリンシパルは、CMK が保存されているのと同じリージョンにある必要があります。

a. まず、get-key-policy コマンドを使用して、CMK のデフォルトポリシーを policy.json として保存します。

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

b. policy.json ファイルをテキストエディタで開き、次のステートメントを追加します。

{ "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/*" ] } }}

c. 最後に、次の put-key-policy コマンドを使用して更新されたポリシーを追加します。

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

AWS Certificate Manager Private CertificateAuthority でのインフラストラクチャセキュリティ

マネージド型サービスとしての ACM Private CA は、ホワイトペーパー「Amazon Web Services: セキュリティプロセスの概要」に記載されている AWS グローバルネットワークセキュリティの手順で保護されています。

AWS が公開している API コールを使用して、ネットワーク経由で ACM Private CA にアクセスします。クライアントで Transport Layer Security (TLS) 1.0 以降がサポートされている必要があります。TLS 1.2 以降が推奨されています。また、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman(ECDHE) などの Perfect Forward Secrecy (PFS) を使用した暗号スイートもクライアントでサポートされている必要があります。これらのモードは、Java 7 以降など、最近のほとんどのシステムでサポートされています。

Version latest37

Page 43: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

VPC エンドポイント (AWS PrivateLink)

また、リクエストは、アクセスキー ID と、IAM プリンシパルに関連付けられているシークレットのアクセスキーを使用して署名する必要があります。または、AWS Security Token Service (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

トピック• ACM Private CAVPC エンドポイント (AWS PrivateLink) (p. 38)

ACM Private CAVPC エンドポイント (AWSPrivateLink)VPC と ACM Private CA との間にプライベート接続を作成するには、インターフェイス VPC エンドポイントを設定します。インターフェイスエンドポイントには、ACM Private CA API オペレーションにプライベートにアクセスするためのテクノロジーである AWS PrivateLinkが使用されています。AWS PrivateLinkは、Amazon ネットワークを介した VPC と ACM Private CA 間のすべてのネットワークトラフィックをルーティングし、オープンインターネットでの露出を回避します。各 VPC エンドポイントは、VPC サブネット内の 1 つ以上の Elastic Network Interfaces (ENI) とプライベート IP アドレスで表されます。

インターフェイス VPC エンドポイントは VPC を ACM Private CA に直接接続します。その際、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続を使用しません。VPCのインスタンスは、パブリック IP アドレスがなくても ACM Private CA API と通信できます。

VPC経由で ACM Private CA を使用するには、VPC 内のインスタンスから接続する必要があります。あるいは、AWS Virtual Private Network (AWS VPN) または AWS Direct Connect を使用して、プライベートネットワークを VPC に接続することもできます。AWS VPN の詳細については、Amazon VPC ユーザーガイドの「VPN 接続」を参照してください。AWS Direct Connect の詳細については、AWS DirectConnect ユーザーガイドの「コネクションの作成」を参照してください。

ACM Private CA でAWS PrivateLink を使用する必要はありませんが、追加のセキュリティのレイヤーとして推奨します。AWS PrivateLink および VPC エンドポイントの詳細については、「AWS PrivateLink を介した サービスへのアクセス」を参照してください。

ACM Private CA VPC エンドポイントに関する考慮事項ACM Private CA 用のインターフェイス VPC エンドポイントを設定する前に、以下の考慮事項に注意してください。

• ACM Private CA は、リージョンの us-east-1、us-west-2、ca-Central-1、および ap-northeast-2 の一部のアベイラビリティーゾーンの VPC エンドポイントをサポートしていません。管理コンソールで VPCエンドポイントを作成する場合、サポートされていないアベイラビリティーゾーンに「サービスはこのアベイラビリティーゾーンでサポートされていません。」というマークが付きます。

• VPC エンドポイントはクロスリージョンリクエストをサポートしていません。ACM Private CA に対して API コールを発行するリージョンと同じリージョンにエンドポイントを作成してください。

• VPC エンドポイントは、Amazon Route 53 を介した Amazon 提供の DNS のみをサポートします。独自の DNS を使用する場合には、条件付き DNS 転送を使用できます。詳細については、Amazon VPC ユーザーガイドの「DHCP オプションセット」を参照してください。

• VPC エンドポイントにアタッチされたセキュリティグループでは、VPC のプライベートサブネットから、ポート 443 で着信接続を許可する必要があります。

• AWS Certificate Manager は VPC エンドポイントをサポートしていません。• FIPS エンドポイント (およびそのリージョン) は VPC エンドポイントをサポートしていません。

ACM Private CA 用の VPC エンドポイントの作成ACM Private CA サービスの VPC エンドポイントは、https://console.aws.amazon.com/vpc/ または AWSCommand Line Interface の VPC コンソールを使用して作成できます 。詳細については、Amazon VPC

Version latest38

Page 44: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

VPC エンドポイント (AWS PrivateLink)

ユーザーガイドの「インターフェイスエンドポイントの作成」の手順を参照してください。ACM PrivateCA は、VPC 内のすべての API オペレーションの呼び出しをサポートします。

エンドポイントのプライベート DNS ホスト名を有効にすると、デフォルトの ACM Private CA エンドポイントはお客様の VPC エンドポイントに解決されます。デフォルトのサービスエンドポイントの詳しい一覧については、「サービスエンドポイントとクォータ」を参照してください。

プライベート DNS ホスト名を有効にしていない場合、Amazon VPC は次の形式で使用できる DNS エンドポイント名を提供します。

vpc-endpoint-id.acm-pca.region.vpce.amazonaws.com

Note

リリリリリの値は、ACM Private CA によってサポートされている AWS リージョンのリージョン ID(例: 米国東部 (オハイオ) リージョン の場合は us-east-2) を表します。ACM Private CA のリストについては、「AWS Certificate Manager プライベート認証機関のエンドポイントとクォータ」を参照してください。

詳細については、Amazon VPC ユーザーガイドの「インターフェイス VPC エンドポイント (AWSPrivateLink)」を参照してください。

ACM Private CA の VPC エンドポイントポリシーを作成するACM Private CA の Amazon VPC エンドポイントのポリシーを作成して、以下を指定できます。

• アクションを実行できるプリンシパル。• 実行可能なアクション。• このアクションを実行できるリソース。

詳細については、Amazon VPC ユーザーガイドの「VPC エンドポイントによるサービスのアクセスコントロール」を参照してください。

例 – ACM Private CA アクションの VPC エンドポイントポリシー

エンドポイントにアタッチされている場合、次のポリシーは ACM Private CA アクション、IssueCertificate、DescribeCertificateAuthority、GetCertificate、GetCertificateAuthorityCertificate、ListPermissions、および ListTags に対するすべてのプリンシパルへのアクセス権を付与 します。各スタンザのリソースはプライベート CA です。最初のスタンザは、指定されたプライベート CA と証明書テンプレートを使用して、エンドエンティティ証明書の作成を許可します。使用するテンプレートを制御しない場合、Condition セクションは必要ありません。ただし、これを削除すると、すべてのプリンシパルが CA認定とエンドエンティティ証明書を交付できるようになります。

{ "Statement":[ { "Principal":"*", "Effect":"Allow", "Action":[ "acm-pca:IssueCertificate" ], "Resource":[ "arn:aws:acm-pca:us-east-1:555555555555:certificate-authority/12345678-1234567890-1234" ], "Condition":{ "StringEquals":{ "acm-pca:TemplateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1"

Version latest39

Page 45: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ACM Private CA ベストプラクティス

} } }, { "Principal":"*", "Effect":"Allow", "Action":[ "acm-pca:DescribeCertificateAuthority", "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:ListPermissions", "acm-pca:ListTags" ], "Resource":[ "arn:aws:acm-pca:us-east-1:555555555555:certificate-authority/12345678-1234567890-1234" ] } ]}

ACM Private CA ベストプラクティスベストプラクティスは、ACM Private CA をより効果的に使用するのに役立つ推奨事項です。次のベストプラクティスは、現在の AWS Certificate Manager クライアントおよび ACM Private CA 顧客の実際の経験に基づいています。

CA の構造とポリシーのドキュメント化AWS では、CA の運用に関するすべてのポリシーとプラクティスを文書化することを推奨します。アプローチには以下が含まれます。

• CA 構造に関する意思決定の推論• CA とその関係を示す図• CA の有効期間に関するポリシー• CA 承継の計画• パスの長さに関するポリシー• アクセス許可のカタログ• 管理制御構造の説明• セキュリティ

この情報は、証明書ポリシー (CP) と証明書プラクティスステートメント (CPS) と呼ばれる 2 つのドキュメントに取り込むことができます。CA オペレーションに関する重要な情報を取得するためのフレームワークについては、「RFC 3647」を参照してください。

可能な場合、ルート CA の使用を最小限に抑えるルート CA は、通常、中間 CA 認定を交付するためにのみ使用する必要があります。これにより、中間 CAがエンドエンティティ証明書を発行する毎日のタスクを実行しながら、ルート CA を害のない方法で保存することができます。

ただし、組織の現在のプラクティスがルート CA から直接エンドエンティティ証明書を発行する場合、ACM Private CA はこのワークフローをサポートすると同時に、セキュリティと運用制御を向上させることができます。このシナリオでエンドエンティティ証明書を発行するには、ルート CA がエンドエン

Version latest40

Page 46: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ルート CA に独自の AWS アカウントを付与する

ティティ証明書テンプレートを使用することを許可する IAM アクセス許可ポリシーが必要です。IAM ポリシーの詳細については、「AWS Certificate Manager Private Certificate Authority の Identity and AccessManagement (p. 7)」を参照してください。

Note

この設定では、運用上の問題が発生する可能性がある制限が課されます。たとえば、ルート CAが侵害されたり紛失したりした場合、新しいルート CA を作成し、環境内のすべてのクライアントに配布する必要があります。この回復プロセスが完了するまで、新しい証明書を発行することはできません。また、ルート CA から証明書を直接発行すると、アクセスを制限したり、ルートから発行される証明書の数を制限したりできなくなります。これらの証明書は、ルート CA の管理に関するベストプラクティスと見なされます。

ルート CA に独自の AWS アカウントを付与する2 つの異なる AWS アカウントでルート CA と下位 CA を作成するのが推奨されるベストプラクティスです。これにより、ルート CA に対する追加の保護とアクセス制御が提供されます。そのためには、あるアカウントの下位 CA から CSR をエクスポートして、別のアカウントのルート CA で署名します。このアプローチの利点は、CA の制御をアカウントごとに分けることができることです。欠点は、AWS マネジメントコンソールウィザードを使用して、ルート CA から下位 CA の CA 認定に署名するプロセスを簡素化できないことです。

AWS CloudTrail をオンにするプライベート CA を作成し、操作を開始する前に、CloudTrail のログ記録を有効にします。CloudTrail では、アカウントの AWS API コールの履歴を取得して、AWS のデプロイをモニタリングできます。この履歴には、AWS マネジメントコンソール、AWS SDK、AWS Command Line Interface、および高レベルのAWS のサービスから行われた API コールが含まれます。また、履歴では、PCA API オペレーションを呼び出したユーザーとアカウント、呼び出し元のソース IP アドレス、および呼び出しの発生日時を特定できます。API を使用して CloudTrail をアプリケーションに統合したり、組織用の証跡作成を自動化したり、証跡の状態を確認したり、CloudTrail のログ記録のオン/オフを管理者が切り替える方法を制御したりすることもできます。詳細については、「証跡の作成」を参照してください。ACM Private CA オペレーションの証跡の例については、「CloudTrail を使用する (p. 22)」を参照してください。

CA プライベートキーを更新するベストプラクティスとして、プライベート CA のプライベートキーを定期的に更新します。キーを更新するには、新しい CA 認定をインポートするか、プライベート CA を新しい CA に置き換えます。

未使用の CA を削除するプライベート CA を完全に削除できます。この操作は、CA が不要になった場合や、より新しいプライベートキーを持つ CA に置き換える必要がある場合に行います。CA を安全に削除するには、「プライベートCA の削除 (p. 66)」で示している手順に従うことをお勧めします。

Note

AWS は、CA が削除されるまで請求を行います。

Version latest41

Page 47: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 階層の設計

ACM Private CA デプロイの計画ACM Private CA では、組織のプライベート PKI (パブリックキーインフラストラクチャ) を完全にクラウドベースで制御でき、ルート認証機関 (CA) から下位 CA を経由してエンドエンティティ証明書まで拡張します。安全性、保守性、拡張性、組織のニーズに適した PKI には、綿密な計画が不可欠です。このセクションでは、CA 階層の設計、プライベート CA とプライベートエンドエンティティ証明書のライフサイクルの管理、セキュリティのベストプラクティスの適用に関するガイダンスを提供します。

トピック• CA 階層の設計 (p. 42)• プライベート CA ライフサイクルの管理 (p. 49)• AWS Certificate Manager Private Certificate Authority での耐障害性 (p. 51)

CA 階層の設計ACM Private CA では、最大 5 つのレベルの証明機関の階層を作成できます。階層ツリーの最上位にあるルート CA は、任意の数のブランチを持つことができます。ルート CA は、各ブランチの上位 CA のレベルを 4 つまで設定できます。また、それぞれ独自のルートを持つ複数の階層を作成することもできます。

適切に設計された CA 階層には、次のような利点があります。

• 各 CA に適したきめ細かなセキュリティ制御• ロードバランシングとセキュリティを向上するための管理タスクの分割• 日常業務における信頼が限定され、取り消し可能な CA の使用• 有効期間と証明書パスの制限

次の図は、単純な 3 レベルの CA 階層を示しています。

Version latest42

Page 48: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 階層の設計

ツリー内の各 CA は、署名機関を持つ X.509 v3 証明書によってバックアップされます (ペンと紙のアイコンでシンボル表示)。つまり、CA は、CA として下位にある他の証明書に署名できます。CA が下位レベルの CA の証明書に署名すると、署名付き証明書に対する制限付きの取り消し可能な権限が付与されます。レベル 1 のルート CA は、レベル 2 の高レベル下位 CA 証明書に署名します。次に、これらの CA は、エンドエンティティ証明書を管理する PKI (パブリックキーインフラストラクチャ) 管理者が使用する、レベル 3 の CA の証明書に署名します。

CA 階層内のセキュリティは、ツリーの最上部で最強になるように構成する必要があります。この構成により、ルート CA 証明書とそのプライベートキーが保護されます。ルート CA は、すべての下位 CA とその下のエンドエンティティ証明書に対する信頼をアンカーします。ローカライズされた損傷は、エンドエンティティ証明書の侵害によって生じることがありますが、ルートの侵害は PKI 全体の信頼を破壊します。ルートおよび上位レベルの下位 CA は、まれにしか使用されません (通常は他の CA 証明書に署名するため)。その結果、リスクの低減を保証するために、厳密に管理および監査されます。階層の下位レベルでは、セキュリティは制限が少なくなります。このアプローチにより、ユーザー、コンピュータホスト、ソフトウェアサービスのエンドエンティティ証明書の発行と失効という日常的な管理タスクが可能になります。

Note

ルート CA を使用して下位証明書に署名することは、ごく少数の状況で発生するまれなイベントです。

• PKI が作成されたとき• 高レベルの認証機関を置き換える必要がある場合• 証明書失効リスト (CRL) またはオンライン証明書ステータスプロトコル (OCSP) 応答側を構成

する必要がある場合

ルートおよびその他の高レベル CA には、安全性の高い運用プロセスとアクセス制御プロトコルが必要です。

Version latest43

Page 49: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイドエンドエンティティ証明書の検証

トピック• エンドエンティティ証明書の検証 (p. 44)• CA 階層構造の計画 (p. 45)• 証明書パスでの長さの制約の設定 (p. 47)

エンドエンティティ証明書の検証エンドエンティティ証明書は、下位の CA を経由してルート CA に戻る証明書パスから信頼を取得します。ウェブブラウザまたは他のクライアントにエンドエンティティ証明書が提示されると、信頼チェーンを構築しようとします。たとえば、証明書の発行者識別名とサブジェクト識別名が、発行元 の CA 証明書の対応するフィールドと一致しているかどうかを確認する場合があります。一致は、クライアントが信頼ストアに含まれている信頼されたルートに到達するまで、階層の連続した各レベルで継続されます。

信頼ストアは、ブラウザまたはオペレーティングシステムに含まれる信頼された CA のライブラリです。プライベート PKI の場合、組織の IT 担当者は、各ブラウザまたはシステムが以前にプライベートルートCA を信頼ストアに追加していることを確認する必要があります。それ以外の場合、証明書パスを検証できず、クライアントエラーが発生します。

次の図は、エンドエンティティ X.509 証明書が提示されたときにブラウザが従う検証パスを示しています。エンドエンティティ証明書には署名権限がなく、それを所有するエンティティの認証にのみ機能することに注意してください。

Version latest44

Page 50: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 階層構造の計画

ブラウザは、エンドエンティティ証明書を検査します。ブラウザは、証明書が信頼認証情報として下位CA (レベル 3) からの署名を提供していることを検出します。下位 CA の証明書は、同じ PEM ファイルに含める必要があります。または、信頼チェーンを構成する証明書を含む別のファイルに保存することもできます。これらを見つけると、ブラウザは下位 CA (レベル 3 ) の証明書を確認し、下位 CA(レベル 2)からの署名を提供していることが検出されます。次に、下位 CA (レベル 2 ) は、ルート CA (レベル 1) からの署名を信頼認証情報として提供しています。ブラウザが信頼ストアに事前インストールされているプライベートルート CA 証明書のコピーを検出すると、エンドエンティティ証明書が信頼済みとして検証されます。

通常、ブラウザは、証明書失効リスト (CRL) に対して各証明書を確認します。期限切れ、失効、誤って設定された証明書は拒否され、検証は失敗します。

CA 階層構造の計画一般に、CA 階層は組織の構造を反映する必要があります。管理およびセキュリティの役割を委任するのに必要以上の深さ (つまり、CA レベルの数) を目指します。CA を階層に追加すると、証明書パス内の証明書の数が増え、検証時間が長くなります。深さを最小限に抑えることで、信頼を確立するときにサーバーからクライアントに送信される証明書の数も削減されます。深さが小さいほど、エンドエンティティ証明書を検証するためにクライアントが実行する作業量も減少します。

理論的には、path-length パラメータ (p. 47)を持たないルート CA は、下位 CA の任意の深さを許可できます。下位 CA は、内部設定によって許容される数の子下位 CA を持つことができます。ACM PrivateCA マネージド型階層は、最大 5 レベルの CA 認定パスをサポートします。

適切に設計された CA 構造には、いくつかの利点があります。

• 組織単位ごとに個別の管理コントロール• 下位 CA へのアクセスを委任する機能• 追加のセキュリティ制御によって上位レベルの CA を保護する階層構造

これを実現するのは、次の 2 つの共通の CA 構造です。

• 2 つの CA レベル: ルート CA と下位 CA

これは、ルート CA と下位 CA に対して個別の管理、制御、セキュリティポリシーを許可する、最も単純な CA 構造です。ルート CA に対する制限の厳しい制御とポリシーを維持しながら、下位 CA に対するより許可されたアクセスを許可できます。後者は、エンドエンティティ証明書の一括発行に使用されます。

• 3 つの CA レベル: ルート CA と 2 つの下位 CA のレイヤー

上記と同様に、この構造はさらに CA レイヤーを追加し、ルート CA を低レベル CA のオペレーションから分離します。中間の CA レイヤーは、エンドエンティティ証明書の発行を実行する下位 CA に署名するためにのみ使用されます。

あまり一般的ではない CA 構造には、次のようなものがあります。

• 4 以上の CA レベル

3 レベルの階層よりも一般的ではありませんが、4 以上のレベルを持つ CA 階層は可能であり、管理委任を許可するために必要になる場合があります。

• 1 つの CA レベル: ルート CA のみ

この構造は、完全な信頼チェーンが必要ない場合に開発およびテストによく使用されます。生産に使用され、非定型です。さらに、ルート CA とエンドエンティティ証明書を発行する CA に対して個別のセキュリティポリシーを維持するというベストプラクティスに違反します。

Version latest45

Page 51: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 階層構造の計画

ただし、すでにルート CA から直接証明書を発行している場合は、ACM Private CA に移行できます。そうすることで、OpenSSL やその他のソフトウェアで管理されるルート CA を使用するよりもセキュリティと制御の利点が得られます。

製造元のプライベート PKI の例この例では、ある架空のテクノロジー企業が、スマート電球とスマートトースターの 2 つのモノのインターネット (IoT) 製品を製造しています。本番稼働時には、各デバイスにはエンドエンティティ証明書が発行されるため、インターネット経由で製造元と安全に通信できます。また、会社の PKI は、内部ウェブサイトや財務および事業運営を行うさまざまなセルフホスト型コンピュータサービスなど、自社のコンピュータインフラストラクチャを保護しています。

その結果、CA 階層は、ビジネスのこれらの管理面と運用面を密接にモデル化します。

この階層には、内部オペレーション用に 1 つ、および外部オペレーション用に 2 つ (製品ラインごとに 1つのルート CA) の 3 つのルートが含まれます。また、内部オペレーション用の 2 つのレベルの CA と、外部オペレーション用の 3 つのレベルを持つ、複数の証明書の深さについても説明します。

分離されたルート CA の使用と外部運用側のさらなる深さは、ビジネスとセキュリティのニーズを満たす設計上の決定です。複数の CA ツリーがある場合、PKI は企業の再編、売却、買収に対して将来的に証明されます。変更が発生すると、ルート CA 階層全体が、セキュリティで保護されている分割とともに正常に移動できます。また、下位の CA が 2 レベルの場合、ルート CA は、数千または数百万の製造品目の証明書の一括署名を担当するレベル 3 CA から高い分離レベルを持ちます。

内部では、企業のウェブと内部コンピュータの操作は、2 レベルの階層を完了します。これらのレベルにより、ウェブ管理者と運用エンジニアは、各自のワークドメインで証明書発行を個別に管理できます。PKI を個別の機能ドメインに区分化することは、セキュリティのベストプラクティスであり、他方に

Version latest46

Page 52: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド証明書パスでの長さの制約の設定

影響を及ぼす可能性のある侵害からそれぞれを保護します。ウェブ管理者は、社内のウェブブラウザで使用するためのエンドエンティティ証明書を発行し、社内のウェブサイトで通信を認証および暗号化します。運用エンジニアは、データセンターホストとコンピュータサービスを相互に認証するエンドエンティティ証明書を発行します。このシステムは、LAN 上で暗号化することにより、機密データを安全に保ちます。

証明書パスでの長さの制約の設定CA 階層の構造は、各証明書に含まれる基本制約拡張によって定義され、適用されます。拡張では、次の 2つの制約が定義されています。

• cA – 証明書が CA を定義しているかどうか。この値が false (デフォルト) の場合、証明書はエンドエンティティ証明書です。

• pathLenConstraint – 証明書を含む証明書パスの最大の追加の深さ。

ルート CA 証明書には最大限の柔軟性が必要であり、パス長の制約は含まれません。これにより、ルートは任意の深さの証明書パスを定義できます。

Note

ACM Private CA は、認証パスを 5 レベルに制限します。

下位 CA には、階層の配置と目的の機能の位置に応じて、ゼロ以上の pathLenConstraint 値があります。たとえば、3 つの CA を持つ階層では、ルート CA にパスの制約は指定されません。最初の下位 CA のパス長は 1 であるため、子 CA に署名できます。これらのそれぞれの子 CA は、必ずゼロのpathLenConstraint 値を持つ必要があります。つまり、エンドエンティティ証明書に署名することはできますが、追加の CA 証明書を発行することはできません。新しい CA を作成する能力を制限することは、重要なセキュリティ制御です。

次の図は、階層の下に、制限された権限のこの伝播を示しています。

Version latest47

Page 53: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド証明書パスでの長さの制約の設定

この 4 レベルの階層では、ルートは拘束されません (いつものように)。しかし、最初の下位 CA が 2 のpathLenConstraint 値で、子 CA が 3 レベル以上深くなることを制限します。したがって、有効な証明書パスの場合、制約値は次の 2 つのレベルでゼロに減少する必要があります。ウェブブラウザで、パス長が 4 を超えるこのブランチからのエンドエンティティ証明書が検出された場合、検証は失敗します。このような証明書は、誤って作成された CA、誤って設定された CA、または不正な発行が原因である可能性があります。

テンプレートを使用した深さの管理ACM Private CA には、ルート証明書、下位証明書、およびエンドエンティティ証明書を発行するためのテンプレートが用意されています。これらのテンプレートは、パス長を含む基本的な制約値のベストプラクティスをカプセル化します。テンプレートには、次のものがあります。

• RootCACertificate/V1• SubordinateCACertificate_PathLen0/V1• SubordinateCACertificate_PathLen1/V1• SubordinateCACertificate_PathLen2/V1• SubordinateCACertificate_PathLen3/V1• EndEntityCertificate/V1

発行元の CA 証明書のパス長以上のパス長を持つ CA を作成しようとすると、IssueCertificate APIはエラーを返します。

証明書テンプレートの詳細については、「 証明書テンプレート (p. 74)」を参照してください。

Version latest48

Page 54: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA ライフサイクルの管理

AWS CloudFormation を使用したCA 階層設定の自動化CA 階層の設計が決まったら、AWS CloudFormation テンプレートを使用してテストし、運用環境に配置できます。このようなテンプレートの例については、 AWS CloudFormation ユーザーガイドの「プライベート CA 階層の宣言」を参照してください。

プライベート CA ライフサイクルの管理CA 証明書には、一定の有効期限または有効期間があります。CA 証明書の有効期限が切れると、CA 階層の下位の CA によって直接または間接的に発行されたすべての証明書が無効になります。事前に計画することで、CA 証明書の有効期限を回避できます。

有効期間の選択X.509 証明書の有効期間は、必須の基本証明書フィールドです。これにより、発行元の CA が証明書を信頼できることを証明する時間範囲が決定され、取り消しは発生しません。(自己署名されたルート証明書は、独自の有効期間を証明します。)

ACM Private CA と AWS Certificate Manager を使用して、次の制約の対象となる証明書の有効期間の構成を支援します。

• ACM Private CA によって管理される証明書の有効期間は、証明書を発行した CA の有効期間以下である必要があります。つまり、子 CA とエンドエンティティ証明書は、親証明書の有効期間を過ぎることはできません。IssueCertificate API を使用して、親の CA 以上の有効期間を持つ CA 証明書を発行しようとすると、失敗します。

• AWS Certificate Manager によって発行および管理される証明書 (ACM によってプラベートキーが生成される証明書) の有効期間は 13 か月です。ACM は、これらの証明書の更新プロセスを管理します。ACM Private CA を使用して証明書を直接発行する場合は、任意の有効期間を選択できます。

次の図は、ネストされた有効期間の典型的な構成を示しています。ルート証明書は最も有効期間が長く、エンドエンティティ証明書は比較的短く、下位 CA はこれらの極端な範囲にあります。

CA 階層を計画するときは、CA 証明書の最適な有効期間を決定します。発行するエンドエンティティ証明書の必要な有効期間から逆方向に作業します。

エンドエンティティ証明書

エンドエンティティ証明書には、ユースケースに適した有効期間が必要です。有効期間が短いため、プライベートキーが紛失または盗難された場合に証明書が公開される危険性が最小限に抑えられます。ただし、有効期間が短いということは、頻繁に更新されることを意味します。期限が切れる証明書を更新しないと、ダウンタイムが発生する可能性があります。

Version latest49

Page 55: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 承継の管理

エンドエンティティ証明書を分散して使用すると、セキュリティ侵害が発生した場合に物流上の問題が発生する可能性があります。計画では、更新証明書と配布証明書、侵害された証明書の取り消し、および証明書に依存するクライアントに取り消しが伝播する速さについて考慮する必要があります。

ACM から発行されるエンドエンティティ証明書のデフォルトの有効期間は 13 か月です。ACM Private CAでは、IssueCertificate API を使用して、発行元 CA の有効期間を下回っている限り、任意の有効期間を適用できます。

下位 CA 証明書

下位 CA 証明書は、発行する証明書よりもかなり長い有効期間を持つ必要があります。CA 証明書の有効期間は、子 CA 証明書またはエンドエンティティ証明書の発行期間の 2~5 倍です。たとえば、2 レベルのCA 階層 (ルート CA と 1 つの下位 CA) があるとします。エンドエンティティ証明書を 1 年間の有効期間で発行する場合は、下位の発行 CA の有効期間を 3 年に設定できます。これは、ACM Private CA の下位CA 証明書のデフォルトの有効期間です。下位 CA 証明書は、ルート CA 証明書を置き換えることなく変更できます。

ルート証明書

ルート CA 証明書を変更すると、PKI (パブリックキーインフラストラクチャ) 全体に影響するため、依存するすべてのクライアントオペレーティングシステムとブラウザの信頼ストアを更新する必要があります。運用上の影響を最小限に抑えるには、ルート証明書の有効期間を長くする必要があります。ルート証明書の ACM Private CA デフォルトは 10 年です。

CA 承継の管理CA の承継を管理するには、2 つの方法があります。古い CA を置き換えるか、CA を新しい有効期間で再発行します。

古い CA の置換古い CA を置き換えるには、新しい CA を作成し、同じ親 CA にチェーンします。その後、新しい CA から証明書を発行します。

新しい CA から発行された証明書には、新しい CA チェーンがあります。新しい CA が確立されたら、古い CA を無効にして、新しい証明書を発行しないようにできます。無効になっている間、古い CA は CAから発行された古い証明書の取り消しをサポートし、証明書失効リスト (CRL) を生成し続けます。古いCA から発行された最後の証明書の有効期限が切れたら、古い CA を削除できます。CA から発行されたすべての証明書の監査レポートを生成して、発行されたすべての証明書の有効期限が切れていることを確認できます。古い CA に下位の CA がある場合は、下位の CA が同時に期限切れになるか、親 CA よりも前に期限切れになるため、下位の CA も置き換える必要があります。まず、置換が必要な階層内の最上位のCA を置き換えます。次に、後続の下位レベルごとに新しい置換下位 CA を作成します。

AWS では、必要に応じて CA の名前に CA 生成識別子を含めることをお勧めします。たとえば、第 1 世代CA に「コーポレートルート CA」という名前を付けます。 第 2 世代の CA を作成するときは、「コーポレートルート CA G2」という名前を付けます。 この単純な命名規則は、両方の CA が期限切れでない場合の混乱を避けるのに役立ちます。

CA のプライベートキーをローテーションするため、CA の継承方式が優先されます。CA キーでは、プライベートキーのローテーションがベストプラクティスです。ローテーションの頻度は、キーの使用頻度に比例する必要があります。より多くの証明書を発行する CA は、ローテーションの頻度が高くなります。

Note

CA を置き換えると、ACM から発行されたプライベート証明書は更新できません。発行および更新に ACM を使用する場合は、CA 証明書を再発行して、CA の有効期間を延長する必要があります。

Version latest50

Page 56: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA の取り消し

CA の取り消しCA 証明書を取り消すと、CA によって発行されたすべての証明書が事実上失効します。失効情報は、CRLを介してクライアントに配布されます。クライアントは、更新された CRL を受信すると、CA によって発行された証明書の信頼を停止します。CA 証明書を取り消しすのは、すべてのエンドエンティティおよびCA 証明書を事実上失効させる場合だけです。

AWS Certificate Manager Private CertificateAuthority での耐障害性

AWS のグローバルインフラストラクチャは AWS リージョンとアベイラビリティーゾーンを中心として構築されます。AWS リージョンには、低レイテンシー、高いスループット、そして高度の冗長ネットワークで接続されている複数の物理的に独立・隔離されたアベイラビリティーゾーンがあります。アベイラビリティーゾーンでは、ゾーン間で中断することなく自動的にフェイルオーバーするアプリケーションとデータベースを設計および運用することができます。アベイラビリティーゾーンは、従来の単一または複数のデータセンターインフラストラクチャよりも可用性、耐障害性、および拡張性が優れています。

AWSのリージョンやアベイラビリティーゾーンの詳細については、AWSグローバルインフラストラクチャを参照してください。

冗長性と災害対策CA 階層を計画するときは、冗長性と DR を考慮してください。ACM プライベート CA は複数のリージョンで使用できます。これにより、複数のリージョンで冗長 CA を作成できます。この ACM Private CAサービスは、99.9% の可用性の サービスレベルアグリーメント (SLA) で動作します。冗長性と災害対策には、少なくとも 2 つのアプローチを検討できます。冗長性は、ルート CA または最上位の下位 CA で設定できます。各アプローチには長所と短所があります。

1. 冗長性と災害対策のために、2 つの異なる AWS リージョンに 2 つのルート CA を作成できます。この設定では、各ルート CA は AWS リージョン内で独立して動作し、単一リージョンで障害が発生した場合にユーザーを保護します。ただし、冗長ルート CA を作成すると、運用が複雑になります。両方のルート CA 証明書を、使用している環境内のブラウザとオペレーティングシステムのトラストストアに配布する必要があります。

2. また、同じルート CA にチェーンする 2 つの冗長下位 CA を作成することもできます。このアプローチの利点は、1 つのルート CA 証明書のみを環境内の信頼ストアに配布する必要があることです。制限事項は、ルート CA が存在する AWS リージョンに影響する障害が発生した場合に、冗長ルート CA がないことです。

Version latest51

Page 57: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

セットアップ

プライベート CA の作成と管理ACM Private CAを使用して、自社用に AWS が完全にホストするプライベート認証機関 (CA) を作成できます。ルート CA 証明書と下位 CA 証明書の両方が、ACM Private CA によって保存および管理されます。ルート証明機関のプライベートキーは、AWS に安全に保存されます。

ACM Private CA は、AWS マネジメントコンソール、AWS CLI ACM Private CA API を使用してアクセスできます。次のトピックでは、コンソールおよび CLI を使用する方法を示します。API の詳細については、AWS Certificate Manager Private Certificate Authority API Reference を参照してください。API の使用方法を示す Java の例については、「ACM Private CA API の使用 (Java の例) (p. 84)」を参照してください。

トピック• ACM Private CA のセットアップ (p. 52)• プライベート CA の作成 (p. 53)• プライベート CA の証明書の作成とインストール (p. 59)• プライベート CA の更新 (p. 61)• プライベート CA の削除 (p. 66)• プライベート CA の復元 (p. 67)• ACM への証明書の更新アクセス許可の割り当て (p. 69)

ACM Private CA のセットアップACM Private CA を使用する前に、タスクをいくつか実行する必要があります。

(オプション) さらに、組織でAWS を使用する代わりに、プライベートルート CA の認証情報をオンプレミスでホストするかどうかを決定する必要があります。 その場合は、ACM Private CA を使用する前に、セルフマネージドプライベート PKI をセットアップし、セキュリティで保護する必要があります。このシナリオでは、ACM Private CA の外部にの親 CA に認証された ACM Private CA 下位 CA を作成します。詳細については、 ACM プライベート CA 外でのルート権限の使用 を参照してください。

AWS へのサインアップAmazon Web Services (AWS) のアカウントがない場合は、サインアップをして ACM Private CA を使用できるようにする必要があります。このアカウントでは、利用可能なすべてのサービスにアクセスできますが、使用したサービスに対してのみ課金されます。また、AWS を初めて使用する場合は、一定期間にわたり、一部のサービスを無料で使用できます。詳細については、「AWS 無料利用枠」を参照してください。

Note

ACM Private CA は無料利用枠では使用できません。

AWS アカウントをお持ちでない場合は、次に説明する手順に従ってアカウントを作成してください。

AWS にサインアップするには

1. https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。

Version latest52

Page 58: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CLI のインストール (オプション)

2. オンラインの手順に従います。

AWS Command Line Interface のインストール (オプション)AWS CLI を未インストールで、使用を開始する場合は、AWS Command Line Interface の手順に従ってください。

プライベート CA の作成このセクションでは、ACM Private CA を使用してプライベート認証機関 (CA) を作成する方法について説明します。これらの手順に従って、ルート CA と下位 CA の両方を作成し、組織のニーズに合った信頼関係のある監査可能な階層を作成できます。

CA を使用してユーザー、デバイス、アプリケーションの エンドエンティティ 証明書に署名する方法については、「プライベートエンドエンティティ証明書の発行 (p. 71)」を参照してください。

Note

アカウントを作成した時点で、各プライベート CA の月額料金が課金されます。

AWS コンソールを使用してプライベート CA を作成するには

1. AWS アカウントにサインインし、https://console.aws.amazon.com/acm-pca/home の ACMPrivate CA コンソールを開きます。CA を持っていないリージョンでコンソールが開かれた場合、紹介ページが表示されます。[プライベート認証機関] の下にある [今すぐ始める] を選択します。もう一度 [今すぐ始める] を選択します。1 つまたは複数の CA があるリージョンでコンソールが開いた場合、紹介ページは表示されません。[プライベート CA] を選択してから、[CA の作成] を選択します

2. [認証機関 (CA) のタイプの選択]ページで、作成するプライベート認証機関のタイプを選択します。

• [ルート CA] を選択すると、新しい CA 階層が確立されます。この CA は、自己署名証明書によって認証されています。これは、階層内の他の CA および エンドエンティティ 証明書の最終署名機関として機能します。

• [下位 CA] を選択すると、階層の上位にある親 CA による署名を必要とする CA が作成されます。下位 CA は通常、他の下位 CA を作成したり、ユーザー、コンピュータ、アプリケーションに エンドエンティティ 証明書を発行したりするために使用されます。

CA タイプを選択した後、[次へ] を選択します。3. [認証機関 (CA) の情報カテゴリ名の設定] で、プライベート CA の情報カテゴリ名を設定します。次の

値の 1 つ以上を入力する必要があります。

• 組織 (O)• 組織部門 (OU)• 国名 (C)• 州名/都道府県• 市区町村• 共通名 (CN)

認証証明書は自己署名であるため、プライベート CA に提供するカテゴリ情報は、パブリック CAに含まれる情報よりも少ない可能性があります。件名の識別名を構成する各値の詳細については、「X.500 識別名 (p. 140)」を参照してください。

Version latest53

Page 59: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA を作成する

終了したら、[次へ] を選択します。4. [ 認証機関 (CA) のキータイプの設定] ページで、キーアルゴリズムとキーのビットサイズを選択しま

す。デフォルト値は、2048 ビットのキー長の RSA アルゴリズムです。[アドバンスト] オプションを展開すると、次のアルゴリズムから選択できます。

• RSA 2048• RSA 4096• ECDSA P256• ECDSA P384

選択を行い、[続行] を選択します。5. [証明書失効の設定] ページでは、ACM Private CA で管理する証明書失効リスト (CRL) を作成するオ

プションがあります。ウェブブラウザなどのクライアントは、CRL にクエリを実行して、エンドエンティティ または下位 CA 証明書が信頼できるかどうかを判断します。詳細については、「プライベート証明書の取り消し (p. 72)」を参照してください。

ACM Private CA は、指定した Amazon S3 バケットに CRL を自動的に保管し、定期的に更新します。

Note

CRL は、それを参照する証明書が発行された 後にのみ Amazon S3 に保管されます。それ以前は、Amazon S3 バケットに表示される [acm-pca-permission-test-key] ファイルのみが存在します。

CRL に暗号化保護を追加する方法については、「CRL の暗号化 (p. 57)」を参照してください。

各 CRL は、DER でエンコードされたファイルです。ファイルをダウンロードし、OpenSSL を使用して表示するには、次のコマンドを使用します。

openssl crl -inform DER -in path-to-crl-file -text -noout

CRL の形式は次のとおりです。

Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: /C=US/ST=WA/L=Seattle/O=Example Company CA/OU=Corporate/CN=www.example.com Last Update: Feb 26 19:28:25 2018 GMT Next Update: Feb 26 20:28:25 2019 GMT CRL extensions: X509v3 Authority Key Identifier: keyid:AA:6E:C1:8A:EC:2F:8F:21:BC:BE:80:3D:C5:65:93:79:99:E7:71:65

X509v3 CRL Number: 1519676905984Revoked Certificates: Serial Number: E8CBD2BEDB122329F97706BCFEC990F8 Revocation Date: Feb 26 20:00:36 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise Serial Number: F7D7A3FD88B82C6776483467BBF0B38C Revocation Date: Jan 30 21:21:31 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise

Version latest54

Page 60: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA を作成する

Signature Algorithm: sha256WithRSAEncryption 82:9a:40:76:86:a5:f5:4e:1e:43:e2:ea:83:ac:89:07:49:bf: c2:fd:45:7d:15:d0:76:fe:64:ce:7b:3d:bb:4c:a0:6c:4b:4f: 9e:1d:27:f8:69:5e:d1:93:5b:95:da:78:50:6d:a8:59:bb:6f: 49:9b:04:fa:38:f2:fc:4c:0d:97:ac:02:51:26:7d:3e:fe:a6: c6:83:34:b4:84:0b:5d:b1:c4:25:2f:66:0a:2e:30:f6:52:88: e8:d2:05:78:84:09:01:e8:9d:c2:9e:b5:83:bd:8a:3a:e4:94: 62:ed:92:e0:be:ea:d2:59:5b:c7:c3:61:35:dc:a9:98:9d:80: 1c:2a:f7:23:9b:fe:ad:6f:16:7e:22:09:9a:79:8f:44:69:89: 2a:78:ae:92:a4:32:46:8d:76:ee:68:25:63:5c:bd:41:a5:5a: 57:18:d7:71:35:85:5c:cd:20:28:c6:d5:59:88:47:c9:36:44: 53:55:28:4d:6b:f8:6a:00:eb:b4:62:de:15:56:c8:9c:45:d7: 83:83:07:21:84:b4:eb:0b:23:f2:61:dd:95:03:02:df:0d:0f: 97:32:e0:9d:38:de:7c:15:e4:36:66:7a:18:da:ce:a3:34:94: 58:a6:5d:5c:04:90:35:f1:8b:55:a9:3c:dd:72:a2:d7:5f:73: 5a:2c:88:85

CRL を CA に関連付けた場合、ACM Private CA は CA が発行した証明書に CRL 配布ポイント拡張機能を含めます。この拡張機能によって CRL への URL が提供され、クライアントデバイスが証明書失効ステータスをチェックできるようになります。

CRL を作成するには、次のステップを実行します。

1. [CRL ディストリビューションの有効化] を選択します。2. CRL エントリの新しい Amazon S3 バケットを作成するには、[新しい S3 バケットを作成します

か] オプションで [はい] を選択し、一意のバケット名を入力します。(バケットへのパスを含める必要はありません)。 それ以外の場合は、[いいえ] を選択し、リストから既存のバケットを選択します。

[はい] を選択すると、ACM Private CA は必要なバケットポリシーを作成します。[いいえ] を選択した場合、バケットに次のポリシーがアタッチされていることを確認します。詳細については、「バケットポリシーの追加」を参照してください。

{ "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:::your-bucket-name/*", "arn:aws:s3:::your-bucket-name" ] } ]}

Note

[Amazon S3パブリックアクセスブロック] 設定がアカウントに強制されている場合、プライベート CA が CRL バケットを作成できないことがあります。このような場合は、[Amazon S3] 設定を確認してください。詳細については「Amazon S3 ブロックパブリックアクセスを使用する」を参照してください。

Version latest55

Page 61: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA を作成する

3. 追加の設定オプションを表示するには、[アドバンスト] を展開します。• [カスタム CRL 名] を追加して、 Amazon S3 バケットのエイリアスを作成します。この名前

は、RFC 5280 で定義されている “CRL 配布ポイント” 拡張機能で CA が発行した証明書に含まれています。

• CRL が有効になる日数を入力します。デフォルト値は 7 日です。オンライン CRL の場合、有効期間は 2 ~ 7 日が一般的です。ACM Private CA は指定した期間内で CRL の再生成を試みます。

[Next] を選択します。6. [タグの追加] ページでは、必要に応じて証明書にタグを付けることができます。タグとは、AWS

リソースを識別および整理するためのメタデータとして機能するキーと値のペアのことを指します。ACM Private CA タグパラメータのリスト、およびCA 作成後にタグを追加する方法については、「プライベート認証機関へのタグの追加 (p. 65)」を参照してください。

[Next] を選択します。7. CA のアクセス許可の設定

必要に応じて、自動更新のアクセス許可を ACM サービスプリンシパルに委任します。ACM は、この権限が付与されている場合にのみ、この CA が生成したプライベート エンドエンティティ 証明書を自動更新できます。更新の権限は、ACM Private CA API を使用して、いつでも割り当てることができます。

デフォルトでは、これらのアクセス許可が有効になっています。

[Next] を選択します。8. [確認と作成] ページで、設定が正しいことを確認し、料金を確認後チェックボックスをオンにして、

[確認と作成] を選択します。

CA 証明書の作成とインストールを続行する場合は、[成功] ダイアログボックスで [開始] を選択し、プライベート CA の証明書の作成とインストール (p. 59)の手順に従います。それ以外の場合は、[後で完了する] を選択すると、 [プライベート CA] リストが表示されます。

AWS CLI を使用してプライベート CA を作成する

[create-certificate-authority] コマンドを使用して、プライベート CA を作成します。CA 設定、失効設定、および CA タイプを指定する必要があります。必要に応じて、べき等トークンまたはタグを追加できます。CA 設定で、次のように指定します。

• アルゴリズムの名前• CA プライベートキーの作成に使用されるキーサイズ• CA が署名に使用する署名アルゴリズムのタイプ• X.500 件名情報

CRL 設定で、次のように指定します。

• CRL の有効期間の日数 (CRL の有効期間)• CRL を含む Amazon S3 バケット• CA によって発行された証明書に含まれている S3 バケットの CNAME エイリアス

このコマンドで使用するように、次のサンプルファイルを変更できます。

C:\ca_config.txt

{

Version latest56

Page 62: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CRL の暗号化

"KeyAlgorithm": "RSA_2048", "SigningAlgorithm": "SHA256WITHRSA", "Subject": {"Country": "US", "Organization": "Example Corp", "OrganizationalUnit": "Sales", "State": "WA", "Locality": "Seattle", "CommonName": "www.example.com"}}

C:\revoke_config.txt

{ "CrlConfiguration": {"Enabled": true, "ExpirationInDays": 7, "CustomCname": "some_name.crl", "S3BucketName": "your-bucket-name"}}

aws acm-pca create-certificate-authority \ --certificate-authority-configuration file://C:\ca_config.txt \ --revocation-configuration file://C:\revoke_config.txt \ --certificate-authority-type "ROOT" \ --idempotency-token 98256344 \ --tags Key=Name,Value=MyPCA

成功すると、このコマンドは CA の ARN (Amazon リソースネーム) を出力します。

{ "CertificateAuthorityArn": "arn:aws:acm-pca:region:account: certificate-authority/12345678-1234-1234-123456789012"}

AWS CloudFormation を使用してプライベート CA を作成するには

AWS CloudFormation を使用してプライベート CA を作成する方法については、 AWS CloudFormationユーザーガイドの「ACM PCAリソースタイプのリファレンス」を参照してください。

CRL の暗号化必要に応じて、CRL を含む Amazon S3 バケットに暗号化を設定できます。ACM Private CA は、S3 のアセットに対して 2 つの暗号化モードをサポートしています。

• Amazon S3 で管理された AES-256 キーを使用したサーバー側の自動暗号化。• AWS Key Management Service およびお客様の使用に合わせて設定されたカスタマーマスターキー

(CMK) を使用するカスタマー管理の暗号化。

Note

ACM Private CA は、S3 によって自動的に生成されるデフォルトの CMK の使用をサポートしていません。

次の手順では、各暗号化オプションを設定する方法について説明します。

自動暗号化を設定するには

Version latest57

Page 63: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CRL の暗号化

S3 サーバー側の暗号化を有効にするには、以下のステップを実行します。

1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。2. [バケット] テーブルで、ACM Private CA アセットを保持するバケットを選択します。3. バケットのページで、[プロパティ] タブを選択します。4. [デフォルト暗号化] カードを選択します。5. [AES-256] を選択します。6. オプションで、バケットのアクセス許可ポリシーを表示し、[保存する] を選択します。

カスタム暗号化を設定するには

カスタム CMK を使用して暗号化を有効にするには、以下のステップを実行します。

1. (オプション) AWS KMS CMK がない場合は、次の AWS CLI create-key コマンドを使用して作成します。

aws kms create-key

出力には、CMK のキー ID とAmazon リソースネーム (ARN) が含まれます。出力例を次に示します。

{ "KeyMetadata": { "KeyId": "6f815f63-e628-448c-8251-e40cb0d29f59", "Description": "", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012" }}

2. デフォルトでは、すべての AWS KMS CMK がプライベートです。リソース所有者だけが使用してデータを暗号化および復号できます。ただし、リソース所有者は、他のユーザーとリソースに CMKへのアクセス権限を付与することができます。次のステップを使用して、CMK を使用するアクセス許可を ACM Private CA サービスプリンシパルに付与します。このサービスプリンシパルは、CMK が保存されているのと同じリージョンにある必要があります。

a. まず、get-key-policy コマンドを使用して、CMK のデフォルトポリシーを policy.json として保存します。

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

b. policy.json ファイルをテキストエディタで開き、次のステートメントを追加します。

{ "Sid":"Allow ACM-PCA use of the key", "Effect":"Allow", "Principal":{ "Service":"acm-pca.amazonaws.com" }, "Action":[ "kms:GenerateDataKey", "kms:Decrypt" ],

Version latest58

Page 64: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 証明書のインストール

"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/*" ] } }}

c. 最後に、次の put-key-policy コマンドを使用して更新されたポリシーを追加します。

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

プライベート CA の証明書の作成とインストールプライベート CA 証明書を作成してインストールするには、次の手順を実行します。その後、CA を使用できるようになります。

ACM Private CA では、CA 証明書のインストールにおけるシナリオが 3 通りあります。

• ACM Private CA がホストしているルート CA の証明書のインストール• 親機関が ACM Private CA にホストされている下位 CA 証明書のインストール• 親機関が外部でホストされている下位 CA 証明書のインストール

次のセクションでは、各シナリオの手順について説明します。コンソールの手順は、コンソールページの[プライベート CA] から開始します。

ルート CA 証明書をインストールする場合プライベートルート CA の証明書を作成してインストールするには

1. 以前にルート CA を作成し、[成功] ウィンドウで [開始] を選択した場合は、[ルート CA 証明書のインストール] ページが開きました。そこで証明書のインストールの延期を選択した場合は、https://console.aws.amazon.com/acm-pca/hom で ACM Private CA コンソールを開き、ステータスが [保留中の証明書] または [アクティブ] のルート CAを選択し、[アクション] さらに [CA 証明書のインストール] を選択して、インストールを開始します。すると、[ルート CA 証明書のインストール] ページが表示されます。

2. [ルート CA 証明書のパラメータを指定する] セクションで、次の証明書パラメータを指定します。

• [有効期限] — CA 証明書の有効期限を年、月、または日数で指定できます。ACM Private CA デフォルトのルート CA 証明書の有効期間は 10 年です。

• [署名アルゴリズム] — ルート CA が新しい証明書を発行するときに使用する署名アルゴリズムを指定します。

[Next] を選択します。3. [ルート CA 証明書の確認、生成、インストール] ページで、設定が正しいことを確認し、[確認してイ

ンストール] を選択します。ACM Private CA は CA の CSR をエクスポートし、CA とルート CA テンプレートを使用して自己署名ルート CA 証明書を発行し、それをインポートします。

Version latest59

Page 65: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ACM Private CA がホストする下位 CA 証明書をインストールする場合

[プライベート CA] リストページに戻り、インストールのステータス (成功または失敗) が最上部に表示されます。インストールが正常に完了すると、新たに完了したルート CA の [アクティブ] ステータスがリストに表示されます。

ACM Private CA がホストする下位 CA 証明書をインストールする場合ACM Private CAにホストされている下位 CA の証明書を作成してインストールするには

1. 以前に下位 CA を作成し、[成功] ウィンドウから [開始] を選択した場合、 [下位 CA 証明書のインストール] コンソールが開きました。そこで証明書のインストールを延期することを選択した場合は、https://console.aws.amazon.com/acm-pca/hom で ACM Private CA コンソールを開き、ステータスが [保留中の証明書] または [アクティブ] の下位 CAを選択し、[アクション] さらに [CA 証明書のインストール] を選択して、インストールを開始します。すると、 [下位 CA 証明書のインストール] ページが開きます。

2. [プライベート CA] ページには、アカウント内の既存の CA がタイプおよびステータス情報とともに表示されます。ステータスが [保留中の証明書] の CA が選択されている場合は、[必要なアクション ]ボックスが表示され、証明書のインストールを開始するためのリンクが表示されます。

[CA 証明書のインストール] を選択します。3. [下位 CA 証明書のインストール] ページで、次のオプションを選択します。

• ACM プライベート CA — ACM Private CA によって管理される証明書をインストールします。

[Next] を選択します。4. ACM プライベート CAの場合は、[親を選択] セクションで ACM Private CA、[プライベート親 CA] リ

ストから使用可能な CA を選択します。5. [下位 CA 証明書パラメータの指定] セクションで、次の証明書パラメータを指定します。

• [有効期限] — 下位CA 証明書の有効期限を年、月、または日数で指定します。

Note

下位 CA 証明書の有効期限を親 CA 証明書の有効期限より後に設定することはできません。

• [署名アルゴリズム] — 下位 CA が新しい証明書を発行するときに使用する署名アルゴリズムを指定します。

• [パスの長さ] — 新しい証明書に署名するときに下位 CA が追加可能な信頼できるレイヤーの数を指定します。パスの長さが 0 (デフォルト) の場合、 エンドエンティティ 証明書のみが作成され、CA証明書は作成されません。パスの長さが 1 以上の場合は、下位 CA が証明書を発行して、さらに下位の CA を追加作成できます。

• [テンプレート ARN] — この CA 証明書の設定テンプレートの ARN です。指定した [パスの長さ]を変更すると、テンプレートも変更されます。CLI の [issue-certificate] コマンドまたは API[IssueCertificate] アクションを使用して証明書を作成する場合は、ARN を手動で指定する必要があります。使用可能な CA 証明書テンプレートの詳細については、「証明書テンプレート (p. 74)」を参照してください。

[Next] を選択します。6. [確認して生成] ページで、設定が正しいことを確認し、[生成] を選択します。ACM Private CA は、CA

の CSR をエクスポートし、選択した親 CA とテンプレートから CA 証明書を発行し、CA 証明書をインポートします。

Version latest60

Page 66: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

外部の親 CA が署名した下位 CA証明書をインストールする場合

外部の親 CA が署名した下位 CA 証明書をインストールする場合外部の親 CA が署名した下位 CA 証明書を作成してインストールするには

1. 以前に下位 CA を作成し、[成功] ウィンドウから [開始] を選択した場合、 [下位 CA 証明書のインストール] コンソールが開きました。そこで証明書のインストールを延期することを選択した場合は、https://console.aws.amazon.com/acm-pca/hom で ACM Private CA コンソールを開き、ステータスが [保留中の証明書] の下位 CAを選択し、[アクション] さらに [CA 証明書のインストール] を選択して、インストールを開始します。すると、 下位 CA 証明書のインストール コンソールが開きます。

2. [下位 CA 証明書のインストール] ページで、次のオプションを選択します。

• [外部プライベート CA] — 所有する外部プライベート CA が署名した証明書をインストールします。

[Next] を選択します。3. [証明書署名要求 (CSR) のエクスポート] ページで、証明書情報と CSR ACM Private CA を生成して表

示します。CSRをファイルにエクスポートするオプションが必要です。

CSR をファイルにエクスポートし、外部の親 CA がファイルに署名した後、[Next] を選択します。4. [署名証明機関 (CA) 証明書の インポート] ページで、署名された CA 証明書と証明書チェーン (中間証

明書を含む) をインポートします。

[Next] を選択します。5. [確認してインストール] ページで、設定が正しいことを確認し、[確認してインストール] を選択しま

す。

[プライベート CA] リストページに戻り、インストールのステータス (成功または失敗) が最上部に表示されます。インストールが正常に完了すると、新たに完了したルート CA の [アクティブ] ステータスがリストに表示されます。

プライベート CA の更新プライベート CA を作成した後、そのステータスまたは失効設定を更新できます。

CA ステータスの更新ACM Private CA によって管理される CA のステータスは、ユーザーアクション、または時にサービスアクション (CA の有効期限切れなど) の結果です。CA 管理者が使用できるステータスオプションは、CA の現在のステータスによって異なります。

ACM Private CA は、次のステータス値を報告できます。

• CREATING – ACM Private CA はプライベート認証機関を作成中です。• PENDING_CERTIFICATE – CA が作成されましたが、証明書をアクティブにする必要があります。ACM

Private CAがホストまたはオンプレミスのルート CA、 または下位 CA を使用してプライベート CA のCSR に署名し、ACM Private CA にインポートする必要があります。詳細については、「プライベートCA の証明書の作成とインストール (p. 59)」を参照してください。

• ACTIVE – プライベート CA はアクティブで、証明書の署名と発行に使用できます。• DISABLED –プライベート CA が無効になっています。

Version latest61

Page 67: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA ステータスの更新

• EXPIRED –プライベート CA の CA 証明書の有効期限が切れると、ACM Private CAはステータスをEXPIRED に設定します。

考慮事項:• CA 証明書は、デフォルトでは自動的に更新されません。AWS Certificate Manager による更新の自動

化については、ACM への証明書の更新アクセス許可の割り当て (p. 69) を参照してください。• CA は、有効期限が切れた後は CRLを生成しなくなります。• 監査レポートは、有効期限切れの CA に対して引き続き機能します。• 有効期限切れの CA に対して、引き続きアカウントに請求されます。• 有効期限切れ CA のステータスを直接変更することはできません。CA の新しい証明書をインポートす

ると、そのステータスは有効期限が切れる前の状態 (ACTIVE または DISABLED) に戻ります。• プライベート CA の新しい CA 証明書をインポートすると、ACM Private CA はそのステータスをACTIVE にリセットします (ただし、CA 証明書の有効期限切れ後に DISABLED に設定した場合を除きます)。

• 有効期限が切れた CA で新しい証明書を発行しようとすると、 IssueCertificate API はInvalidStateException を返します。有効期限切れのルート CA は、新しい下位証明書を発行する前に、新しいルート CA 証明書に自己署名する必要があります。

• The ListCertificate Authorities および DescribeCertificateAuthority API は、CAのステータスが ACTIVE または DISABLED に設定されているかどうかにかかわらず、CA 証明書の有効期限が切れているときに EXPIRED のステータスを返します。ただし、期限切れ CA が DELETED に設定されている場合、DELETED のステータスを返します。

• UpdateCertificateAuthority API は、有効期限切れの CA のステータスを更新できません。• RevokeCertificate API を使用して、CA 証明書を含む有効期限切れの証明書を取り消すことがで

きます。• FAILED –CreateCertificateAuthorityのアクションを行うことができませんでした。 これは、

ネットワークの停止、バックエンドの AWS 障害、またはその他のエラーによって発生することがあります。

考慮事項:• 障害が生じた CA は回復できません。CA を削除し、新しいCA を作成してください。

• DELETED – プライベート CA は復元期間内です。復元期間は 7 ~ 30 日間です。この期間が過ぎると、完全に削除されます。

考慮事項:• DELETED ステータスで、証明書の有効期限が切れた CA の RestoreCertificateAuthority API

を呼び出すと、CA は EXPIRED に設定されます。• CA の削除の詳細については、「プライベート CA の削除 (p. 66)」を参照してください。

Note

DELATED および FAILED 以外のすべてのステータス値については、CA に対して課金されます。

次の図は、管理アクションと CA ステータスの相互作用としての CA ライフサイクルを示しています。

Version latest62

Page 68: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA ステータスの更新

Version latest63

Page 69: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CRL 設定の更新

図の上部にある管理アクションは、 ACM Private CA コンソール、CLI、または API を介して適用されます。これらのアクションによって、CA の作成、アクティベーション、失効、更新が実行されます。手動操作または自動更新に応じて、CA ステータスが変化します (上記の図では実線で示しています)。ほとんどの場合、新しいステータスによって、CA 管理者は新しいアクション (図では点線で表示) を実行できるようになります。上記の図の右下部分には、削除および復元アクションを許可するステータス値を示しています。

AWS コンソールを使用して CA ステータスを更新するには

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. [アクション] メニューで、現在アクティブなプライベート CA を無効にするには [無効化] を選択しま

す。CA をアクティブにするには、[有効化] を選択します。

AWS CLI を使用してプライベート CA のステータスを更新するには、

update-certificate-authority コマンドを使用します。次のようなファイルを使用して CRL 設定を指定できます。

{ "CrlConfiguration": {"Enabled": true, "ExpirationInDays": 7, "CustomCname": "https://www.somename.crl", "S3BucketName": "your-crl-bucket-name"}}

次のコマンドでは、上のファイルを使用して失効を設定し、プライベート CA のステータスを ACTIVE に設定します。

aws acm-pca update-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-1232456789012 \--revocation-configuration file://C:\revoke_config.txt \--status "ACTIVE"

CRL 設定の更新プライベート CA の証明書失効リスト (CRL) 設定を更新して、次の値を変更できます。

• プライベート CA が証明書失効リスト (CRL) を生成するかどうか• CRL の有効期限が切れるまでの日数。ACM Private CA は、指定した日数の ½ が経過すると、CRL の再

生成の試行を開始することに注意してください。• CRL の保存先の Amazon S3 バケットの名前。• S3 バケット名をパブリックビューから隠すためのエイリアス。

Important

前述のいずれかのパラメータを変更すると、マイナスの影響が生じることがあります。たとえば、プライベート CA を実稼働環境に移行した後で CRL の無効化、有効期間の変更、または S3バケットの変更を行うと、CRL と現在の CRL 設定に依存する既存の証明書が破損される場合が

Version latest64

Page 70: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

タグの追加

あります。エイリアスの変更は、古いエイリアスが正しいバケットにリンクされた状態である限り、安全に実行できます。

AWS コンソールを使用して CRL 設定を更新するには

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. [Actions] メニューで、[Update CA Revocation] を選択し ます。5. [Enable CRL distribution (CRL ディストリビューションの有効化)] を選択し、証明書失効リスト (CRL)

を生成します。6. [Create a new S3 bucket] で [Yes] または [No] を選択して一意のバケット名 を入力し 、リストから既

存のバケットを選択します。7. [Custom CRL Name (カスタム CRL 名)] に、パブリックビューから S3 バケット名を隠すためのエイ

リアスを入力します。8. [有効期間:] に、有効期間の日数を入力します。9. [Update] を選択します。

プライベート認証機関へのタグの追加タグとは、AWS リソースを識別および整理するためのメタデータとして使用される単語やフレーズのことを指します。各タグは、キーと値で構成されます。ACM Private CA コンソール、AWS Command LineInterface (AWS CLI)、または PCA API を使用して、プライベート CA のタグを追加、表示、削除できます。

必要に応じたカスタムタグを作成できます。たとえば、 Environment=Prod またはEnvironment=Beta のキーと値のペアでプライベート CA にタグを付けると、CA の対象となる環境を特定することができます。タグは、作成時または作成後にいつでも追加できます。詳細については、「 プライベート CA の作成 (p. 53)」を参照してください。

その他の AWS リソースもタグ付けをサポートしています。同じタグを異なるリソースに割り当てて、それらのリソースが関連しているかどうかを確認すことができます。 たとえば、CA、Elastic LoadBalancing ロードバランサー、その他の関連リソースに Website=example.com のようなタグを割り当てることができます。AWS リソースのタグ付けの詳細については、Linux インスタンス用 Amazon EC2ユーザーガイド の「Amazon EC2 リソースのタグ付け」を参照してください。

ACM Private CA タグには以下のような基本制限があります。

• プライベート CA あたりのタグの最大数は 50 です。• タグキーの最大長は 128 文字です。• タグ値の最大長は 256 文字です。• タグキーと値には、A-Z、a-z の文字と次の記号を使用できます。+、=、 @、_、%、- (ハイフン)• タグのキーと値は大文字と小文字が区別されます。• aws: と rds: プレフィックスは、 AWS 用に予約されています。キーが aws: または rds: で始まるタ

グを追加、編集、削除することはできません。 aws: で始まるデフォルトのタグと rds: は、リソースあたりのタグのクォータに含まれません。

• 複数のサービス間およびリソース間でタグ付けスキーマを使用する場合、他のサービスで許可される文字の制限が異なることがあるのでご注意ください。該当するサービスのドキュメントを参照してください。

• ACM Private CA タグは、AWS マネジメントコンソール の リソースグループとタグエディタ内で使用することはできません。

Version latest65

Page 71: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA の削除

プライベート CA には、 ACM Private CA コンソール、 AWS Command Line Interface(AWS CLI)、または ACM Private CA APIからタグ付けできます。

プライベート CA にタグを付けるには (コンソール)

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. [Tags] タブを選択します。5. [Edit] を選択します。6. キーと値のペアを入力します。7. [Add Tag] を選択します。

プライベート CA にタグを付けるには (AWS CLI)

tag-certificate-authority コマンドを使用して、プライベート CA にタグを追加します。

aws acm-pca tag-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--tags Key=Admin,Value=Alice

list-tags コマンドを使用して、プライベート CA のタグを一覧表示します。

aws acm-pca list-tags \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/123455678-1234-1234-1234-123456789012 \--max-results 10

untag-certificate-authority コマンドを使用して、プライベート CA からタグを削除します。

aws acm-pca untag-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--tags Key=Purpose,Value=Website

プライベート CA の削除プライベート CA を完全に削除できます。たとえば、ある CA を 1 つ削除して、新しいプライベートキー持つ新しい CA に置き換えることができます。 CA を安全に削除するには、次のステップを実行します。

1. 代替 CA を作成します。2. 新しいプライベート CA の稼働後、古いプライベート CA を無効にします。ただし、すぐには削除しな

いでください。3. 古い CA によって発行されたすべての証明書が期限切れになるまで、その古い CA は無効のままにしま

す。4. 古い CA を削除します。

ACM Private CA では、削除リクエストを処理する前に、発行済みの証明書すべてにおいて有効期限切れの確認が行われません。監査報告書 (p. 33)を生成し、期限切れになっている証明書を確認できます。CA が無効になっている間、証明書を取り消すことができますが、新しい証明書を発行することはできません。

Version latest66

Page 72: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA の復元

発行されたすべての証明書が期限切れになる前にプライベート CA を削除する必要がある場合は、CA 証明書を取り消すこともお勧めします。CA 証明書は親 CA の CRL に一覧表示され、プライベート CA はクライアントによって信頼されなくなります。

Important

プライベート CA は、PENDING_CERTIFICATE、CREATING、EXPIRED、 DISABLED、または FAILED 状態である場合に削除できます。ACTIVE 状態の CA を削除するためには、まずその CA を削除する必要があります。さもないと、削除リクエストで例外が発生します。PENDING_CERTIFICATE または DISABLED 状態にあるプライベート CA を削除する場合、復元期間を 7 ~ 30 日に設定することができます。デフォルトは 30 日です。この期間中、ステータスは DELETED に設定され、CA は復元可能です。CREATING または FAILED の状態で削除されたプライベート CA は、復元期間が割り当てられていないため、復元できません。詳細については、「プライベート CA の復元 (p. 67)」を参照してください。プライベート CA が削除された後は、それに対して課金されません。ただし、削除された CA が復元されると、削除と復元の間の料金が課金されます。詳細については、「料金 (p. 5)」を参照してください。

AWS マネジメントコンソール または AWS CLI からプライベート CA を削除できます。

プライベート CA を削除するには (コンソール)

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. CA が ACTIVE 状態にある場合、無効にする必要があります。[アクション] メニューで、[無効化] を選

択します。5. [Actions] メニューで、[Delete] を選択します。6. CA が PENDING_CERTIFICATE、EXPIRED、または DISABLED 状態の場合は、復元期間を 7 ~ 30

日に指定します。その後、[Delete] を選択します。Note

プライベート CA がこれらの状態のいずれかではない場合、後で復元することはできません。

7. プライベート CA を完全に削除する場合、確認のプロンプトが表示されたら、[完全に削除] を選択します。プライベート CA のステータスが DELETED に変わります。ただし、復元期間の終了前には、プライベート CA を復元することができます。DELETED 状態にあるプライベート CA の復元期間を確認するには、DescribeCerticateAuthority または ListCertificateAuthorities オペレーションを呼び出します。

プライベート CA を削除するには (AWS CLI)

delete-certificate-authority コマンドを使用して、プライベート CA を削除します。

aws acm-pca delete-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--permanent-deletion-time-in-days 16

プライベート CA の復元CA を削除したときに指定した復元期間の間は、削除されたプライベート CA を復元できます。復元期間は、プライベート CA が復元可能な日数 (7 〜 30 日) を示します。プライベート CA は、復元期間の最後に

Version latest67

Page 73: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA の復元 (コンソール)

完全に削除されます。詳細については、「プライベート CA の削除 (p. 66)」を参照してください。完全に削除されたプライベート CA を復元することはできません。

Note

プライベート CA が削除された後は、それに対して課金されません。ただし、削除された CA が復元されると、削除と復元の間の料金が課金されます。詳細については、「料金 (p. 5)」を参照してください。

トピック• プライベート CA の復元 (コンソール) (p. 68)• プライベート CA の復元 (AWS CLI) (p. 68)

プライベート CA の復元 (コンソール)プライベート CA を復元するには、AWS マネジメントコンソール を使用します。

プライベート CA を復元するには (コンソール)

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. プライベート CA の現在のステータスが DELETED の場合には、復元することができます。[アクショ

ン] メニューで、[復元] を選択します。5. ダイアログボックスで、もう一度 [復元] を選択します。6. 成功すると、プライベート CA のステータスは、削除前の状態に戻ります。[アクション] メ

ニューで [有効化] を選択し、ステータスを ACTIVE に変更します。削除時にプライベート CAがPENDING_CERTIFICATE 状態だった場合は、CA 証明書をアクティブ化する前に、プライベートCA に CA 証明書をインポートする必要があります。

プライベート CA の復元 (AWS CLI)DELETED 状態にある削除されたプライベート CA を復元するには、restore-certificate-authority コマンドを使用します。次の手順では、プライベート CA の削除、復元、および再アクティブ化に必要なプロセス全体について説明します。

プライベート CA を削除、復元、および再アクティブ化するには (AWS CLI)

1. プライベート CA を削除します。

delete-certificate-authority コマンドを実行して、プライベート CA を削除します。プライベートCA のステータスが DISABLED または PENDING_CERTIFICATE である場合、--permanent-deletion-time-in-days パラメータを設定して、プライベート CA の復元期間を 7 ~ 30 日の間で指定することができます。復元期間を指定しない場合、デフォルトは 30 日です。成功すると、このコマンドによりプライベート CA の状態は DELETED に設定されます。

Note

復元可能であるためには、削除の時点でのプライベート CA のステータスは DISABLED または PENDING_CERTIFICATE である必要があります。

aws acm-pca delete-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \

Version latest68

Page 74: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

更新アクセス許可の割り当て

--permanent-deletion-time-in-days 16

2. プライベート CA を復元します。

restore-certificate-authority コマンドを実行して、プライベート CA を復元します。delete-certificate-authority コマンドで設定した復元期間が終了する前に、このコマンドを実行する必要があります。成功すると、このコマンドにより、プライベート CA のステータスは、削除前のステータスに設定されます。

aws acm-pca restore-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012

3. プライベート CA を ACTIVE に設定します。

update-certificate-authority コマンドを実行して、プライベート CA のステータスを ACTIVE に変更します。

aws acm-pca update-certificate-authority \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--status ACTIVE

ACM への証明書の更新アクセス許可の割り当てAWS Certificate Manager (ACM) の マネージド型更新 を使用すると、パブリック認証機関とプライベート認証機関の両方で証明書の更新プロセスを自動化できます。プライベート CA が生成した証明書をACM が自動的に更新されるようにするには、CA 自体が ACM サービスプリンシパルに可能なすべてのアクセス許可を付与する必要があります。これらの更新アクセス許可が ACM に与えられていない場合は、CA の所有者 (または権限のある担当者) は、各プライベート証明書を手動で更新する必要があります。

更新のアクセス許可は、 プライベート CA の作成 (p. 53) 中に委任することができ、CA が ACTIVE 状態である限り、いつでも変更できます。

プライベート CA のアクセス許可は、ACM Private CA コンソール、AWS Command Line Interface (AWSCLI) 、または ACM Private CA API で管理できます。

プライベート CA のアクセス許可を割り当てるには (コンソール)

1. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

2. プライベート CA を選択し ます。3. リストからプライベート CA を選択します。4. [アクセス許可] タブを選択します。5. 更新の際にこの CA を使用するには、[ACM の承認] を選択します。6. [保存] を選択します。

ACM Private CA でアクセス許可 を管理するには (AWS CLI)

アクセス許可を ACM に割り当てるには、[create-permission] コマンドを使用します。ACM が証明書を自動的に更新するようにするには、可能なすべてのアクセス許可(IssueCertificate、GetCertificate、ListPermissions) を割り当てる必要があります。

aws acm-pca create-permission \

Version latest69

Page 75: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

更新アクセス許可の割り当て

--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--actions IssueCertificate, GetCertificate, ListPermissions \--principal acm.amazonaws.com

CA によって委任されたアクセス許可 を一覧表示するには、[list-permissions] コマンドを使用します。

aws acm-pca list-permissions \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/123455678-1234-1234-1234-123456789012

CA が AWS サービスプリンシパルに割り当てたアクセス許可 を取り消すには、delete-permission コマンドを使用します。

aws acm-pca delete-permission \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--principal acm.amazonaws.com

Version latest70

Page 76: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

エンドエンティティ証明書を発行する

エンドエンティティ証明書の発行と取り消し

プライベート認証機関 (CA) を作成したら、これを使用して以下のタスクを実行できます。

トピック• プライベートエンドエンティティ証明書の発行 (p. 71)• プライベート証明書の取り消し (p. 72)• 証明書テンプレート (p. 74)

プライベートエンドエンティティ証明書の発行プライベート エンドエンティティ 証明書は、 AWS Certificate Manager (ACM) または ACM Private CA から作成できます。次の表では、両方の機能を比較します。

機能 ACM ACM Private CA

プライベート CA 証明書を作成する

サポート外 ✓ (IssueCertificate の使用)

証明書は、サポートされているインターネット向け AWS サービスと統合される

✓ サポート外

プライベート CA 認定をインポートする

✓ ✓

エンドエンティティ 証明書を作成する

✓ (RequestCertificate +GetCertificate の使用)

✓ (IssueCertificate の使用)

コンソールのサポート ✓ ✓ (CA 認定のみ)

API サポート ✓ ✓

CLI サポート ✓ ✓

ユーザー設定可能なテンプレート

サポート外 ✓

したがって、ACM Private CA API と AWS CLI は、任意の証明書タイプを発行できます。ACM Private CAコンソールは CA 認定を発行できます。また、ACM サービスは、コンソール、API、または AWS CLI を使って エンドエンティティ 証明書を発行できます。ACM の使用の詳細については、「プライベート証明書のリクエスト」を参照してください。

ACM Private CA が証明書を作成するとき、証明書の種類とパスの長さを指定するユーザー定義可能なテンプレートを適用します。証明書を作成する API または CLI ステートメントにテンプレート ARN が指定されていない場合、デフォルトで エンドエンティティ テンプレートが適用されます。使用可能な証明書テンプレートの詳細については、「証明書テンプレート (p. 74)」を参照してください。

ACM Private CA API または AWS CLI から発行するプライベート証明書には、ACM が発行するプライベート証明書と同じ制限は適用されません。ACM Private CA を使用して、以下を行うことができます。

Version latest71

Page 77: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

証明書の発行 (AWS CLI)

• 任意の件名を持つ証明書を作成する。• サポートされている任意のプライベートキーアルゴリズムとキー長を使用する。• 現在サポートされているいずれかの署名アルゴリズムを使用する。• プライベート CA とプライベート証明書の有効期間を指定する。• プライベート証明書を ACM および IAM にインポートする。

証明書の発行 (AWS CLI)issue-certificate コマンドを使用してプライベート証明書をリクエストできます。このコマンドでは、証明書の発行に使用するプライベート CA の Amazon リソースネーム (ARN) が必要です。また、発行する証明書の証明書署名リクエスト (CSR) も必要です。IssueCertificate オペレーションを使用することもできます。

Note

ACM Private CA API または AWS CLI を使用して、プライベート証明書を発行します。ただし、ACM コンソール、CLI、または API を使用して表示またはエクスポートすることはできません。CSR の作成のために必要であったため、すでにプライベートキーを持っています (前の説明を参照)。get-certificate コマンドを使用して証明書の詳細を取得できます。監査報告書 (p. 33)を作成して、証明書が発行されたことを確認することもできます。

aws acm-pca issue-certificate \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--csr file://C:\cert_1.csr \--signing-algorithm "SHA256WITHRSA" \--validity Value=365,Type="DAYS" \--idempotency-token 1234

このコマンドは、発行された証明書の ARN を出力します。

{ "CertificateArn": "arn:aws:acm-pca:region:account:\ certificate-authority/12345678-1234-1234-1234-123456789012/certificate/a2b95975ec6e1cd85a21c2104c5be129"}

プライベート証明書の取り消しAWS CLI または ACM Private CA API を使用して、発行された証明書を取り消します。証明書はプライベートの CA 発行元の証明書失効リスト (CRL) に含まれています (存在する場合)。取り消された証明書は常に監査レポートに記録されます。

トピック• CRL で取り消された証明書 (p. 72)• 監査報告書の取り消された証明書 (p. 73)• AWS CLI を使用して証明書を取り消す (p. 74)

CRL で取り消された証明書以下の例には、証明書失効リスト (CRL) の取り消された証明書を示しています。CRL は通常、証明書が取り消された約 30 分後に更新されます。なんらかの理由で CRL の更新が失敗した場合、15 分ご

Version latest72

Page 78: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド監査報告書の取り消された証明書

とに ACM PCA 試行が行われます。Amazon CloudWatch を使用すると、メトリクス CRLGeneratedと MisconfiguredCRLBucket のアラームを作成できます。詳細については、「サポートされるCloudWatch メトリクス」を参照してください。CRL の作成と設定の詳細については、「??? (p. 54)」を参照してください。

Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: /C=US/ST=WA/L=Seattle/O=Examples LLC/OU=Corporate Office/CN=www.example.com Last Update: Jan 10 19:28:47 2018 GMT Next Update: Jan 8 20:28:47 2028 GMT CRL extensions: X509v3 Authority Key Identifier: keyid:3B:F0:04:6B:51:54:1F:C9:AE:4A:C0:2F:11:E6:13:85:D8:84:74:67

X509v3 CRL Number: 1515616127629Revoked Certificates: Serial Number: B17B6F9AE9309C51D5573BCA78764C23 Revocation Date: Jan 9 17:19:17 2018 GMT CRL entry extensions: X509v3 CRL Reason Code: Key Compromise Signature Algorithm: sha256WithRSAEncryption 21:2f:86:46:6e:0a:9c:0d:85:f6:b6:b6:db:50:ce:32:d4:76: 99:3e:df:ec:6f:c7:3b:7e:a3:6b:66:a7:b2:83:e8:3b:53:42: f0:7a:bc:ba:0f:81:4d:9b:71:ee:14:c3:db:ad:a0:91:c4:9f: 98:f1:4a:69:9a:3f:e3:61:36:cf:93:0a:1b:7d:f7:8d:53:1f: 2e:f8:bd:3c:7d:72:91:4c:36:38:06:bf:f9:c7:d1:47:6e:8e: 54:eb:87:02:33:14:10:7f:b2:81:65:a1:62:f5:fb:e1:79:d5: 1d:4c:0e:95:0d:84:31:f8:5d:59:5d:f9:2b:6f:e4:e6:60:8b: 58:7d:b2:a9:70:fd:72:4f:e7:5b:e4:06:fc:e7:23:e7:08:28: f7:06:09:2a:a1:73:31:ec:1c:32:f8:dc:03:ea:33:a8:8e:d9: d4:78:c1:90:4c:08:ca:ba:ec:55:c3:00:f4:2e:03:b2:dd:8a: 43:13:fd:c8:31:c9:cd:8d:b3:5e:06:c6:cc:15:41:12:5d:51: a2:84:61:16:a0:cf:f5:38:10:da:a5:3b:69:7f:9c:b0:aa:29: 5f:fc:42:68:b8:fb:88:19:af:d9:ef:76:19:db:24:1f:eb:87: 65:b2:05:44:86:21:e0:b4:11:5c:db:f6:a2:f9:7c:a6:16:85: 0e:81:b2:76

監査報告書の取り消された証明書取り消した証明書を含むすべての証明書には、プライベート CA の監査レポートが含まれます。次の例では、1 つの発行証明書および 1 つの取り消した証明書の監査レポートを示しています。詳細については、「プライベート CA の監査報告書の作成 (p. 33)」を参照してください。

[{ "awsAccountId": "123456789012", "certificateArn": "arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/e8cbd2bedb122329f97706bcfec990f8", "serial": "e8:cb:d2:be:db:12:23:29:f9:77:06:bc:fe:c9:90:f8", "subject": "1.2.840.113549.1.9.1=#161173616c6573406578616d706c652e636f6d,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US", "notBefore": "2018-02-26T18:39:57+0000", "notAfter": "2019-02-26T19:39:57+0000", "issuedAt": "2018-02-26T19:39:58+0000", "revokedAt": "2018-02-26T20:00:36+0000", "revocationReason": "KEY_COMPROMISE"},{ "awsAccountId": "123456789012",

Version latest73

Page 79: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

AWS CLI を使用して証明書を取り消す

"certificateArn": "arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/2bae9a75d71b42b4e41e36f8b4b488fc", "serial": "2b:ae:9a:75:d7:1b:42:b4:e4:1e:36:f8:b4:b4:88:fc", "subject": "1.2.840.113549.1.9.1=#161970726f64407777772e70616c6f75736573616c65732e636f6d,CN=www.example3.com.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US", "notBefore": "2018-01-22T20:10:49+0000", "notAfter": "2019-01-17T21:10:49+0000", "issuedAt": "2018-01-22T21:10:49+0000"}]

AWS CLI を使用して証明書を取り消すrevoke-certificate コマンドを使用して、プライベート証明書を取り消します。また、RevokeCertificate コマンドを使用することもできます。シリアル番号は 16 進形式である必要があります。get-certificate コマンドを呼び出して、シリアル番号を取得できます。revoke-certificate コマンドはレスポンスを返しません。

aws acm-pca revoke-certificate \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \ --certificate-serial 67:07:44:76:83:a9:b7:f4:05:56:27:ff:d5:5c:eb:cc \ --revocation-reason "KEY_COMPROMISE"

証明書テンプレートACM Private CA では、テンプレートを使用して、ユーザー、ホスト、リソース、デバイスを識別する CA認定と エンドエンティティ 証明書の両方を交付します。コンソールで証明書を作成すると、テンプレートが自動的に適用されます。適用されるテンプレートは、選択した証明書の種類と指定したパスの長さに基づきます。CLI または API を使用して証明書を作成する場合、適用するテンプレートの ARN を手動で入力します。(EndEntityCertificate テンプレートは、ARN を指定しない場合に適用されます。)

次のリンクは、ACM Private CA で証明書を作成する方法に関する情報を提供します。

• コンソールの使用: プライベート証明書を発行します。• コマンドラインの使用: issue-certificate。• APIの使用: IssueCertificate。

次の表に、ACM Private CA によってサポートされるテンプレートタイプとその定義へのリンクを示します。

テンプレート名 テンプレート ARN 証明書タイプ パスの長さ

CodeSigningCertificate/V1 (p. 76)

arn:aws:acm-pca:::template/CodeSigningCertificate/V1

コード署名 該当しません

CodeSigningCertificate_CSRPassthrough/V1 (p. 76)

arn:aws:acm-pca:::template/CodeSigningCertificate_CSRPassthrough/V1

コード署名 該当しません

EndEntityCertificate/V1 (p. 77)

arn:aws:acm-pca:::template/

エンドエンティティ

該当しません

Version latest74

Page 80: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

証明書テンプレート

テンプレート名 テンプレート ARN 証明書タイプ パスの長さEndEntityCertificate/V1

EndEntityCertificate_CSRPassthrough/V1 (p. 77)

arn:aws:acm-pca:::template/EndEntityCertificate_CSRPassthrough/V1

エンドエンティティ/パススルー

該当しません

EndEntityClientAuthCertificate/V1 (p. 78)

arn:aws:acm-pca:::template/EndEntityClientAuthCertificate/V1

エンドエンティティ

該当しません

EndEntityClientAuthCertificate_CSRPassthrough/V1 (p. 78)

arn:aws:acm-pca:::template/EndEntityClientAuthCertificate_CSRPassthrough/V1

エンドエンティティ/パススルー

該当しません

EndEntityServerAuthCertificate/V1 (p. 79)

arn:aws:acm-pca:::template/EndEntityServerAuthCertificate/V1

エンドエンティティ

該当しません

EndEntityServerAuthCertificate_CSRPassthrough/V1 (p. 79)

arn:aws:acm-pca:::template/EndEntityServerAuthCertificate_CSRPassthrough/V1

エンドエンティティ/パススルー

該当しません

OCSPSigningCertificate/V1 (p. 80)

arn:aws:acm-pca:::template/OCSPSigningCertificate/V1

OCSP 署名 該当しません

OCSPSigningCertificate_CSRPassthrough/V1 (p. 80)

arn:aws:acm-pca:::template/OCSPSigningCertificate_CSRPassthrough/V1

OCSP 署名 該当しません

RootCACertificate/V1 (p. 81)

arn:aws:acm-pca:::template/RootCACertificate/V1

CA 拘束されない

SubordinateCACertificate_PathLen0/V1 (p. 81)

arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1

CA 0

SubordinateCACertificate_PathLen1/V1 (p. 82)

arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen1/V1

CA 1

SubordinateCACertificate_PathLen2/V1 (p. 82)

arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen2/V1

CA 2

Version latest75

Page 81: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CodeSigningCertificate/V1 定義

テンプレート名 テンプレート ARN 証明書タイプ パスの長さ

SubordinateCACertificate_PathLen3/V1 (p. 82)

arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen3/V1

CA 3

GovCloud リージョンのテンプレート ARN の詳細については、AWS GovCloud (US) User Guide の「AWSCertificate Manager のプライベート認証機関」を参照してください。

CodeSigningCertificate/V1 定義このテンプレートは、コード署名用の証明書を作成するために使用されます。ACM Private CA のコード署名証明書は、プライベート CA インフラストラクチャに基づくコード署名ソリューションで使用できます。たとえば、ACM Private CA のコード署名を使用している顧客は、AWS IoT でコード署名証明書を生成し、AWS Certificate Manager にインポートできます。詳細については、「AWS IoT のコード署名とは何ですか?」および「コード署名証明書を取得およびインポートする」を参照してください。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名

X509v3 拡張キーの使用法 重要、コード署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

CodeSigningCertificate_CSRPassthrough/V1 定義このテンプレートは CodeSigningCertificate テンプレートと同じですが、違いが 1 つあります。このテンプレートでは、拡張機能がテンプレートで指定されていない場合、ACM Private CA は証明書署名リクエスト (CSR) から証明書に追加の拡張機能を渡します。テンプレートで指定された拡張機能は、常にCSR 内の拡張機能を上書きします。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

Version latest76

Page 82: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

EndEntityCertificate/V1 定義

パラメータ 値

X509v3 キーの使用法 重要、デジタル署名

X509v3 拡張キーの使用法 重要、コード署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityCertificate/V1 定義このテンプレートは、オペレーティングシステムやウェブサーバーなどのエンドエンティティの証明書を作成するために使用されます。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

X509v3 拡張キーの使用法 TLS ウェブサーバー認証、TLS ウェブクライアント認証

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityCertificate_CSRPassthrough/V1 定義このテンプレートは EndEntityCertificate テンプレートと同じですが、違いが 1 つあります。このテンプレートでは、拡張機能がテンプレートで指定されていない場合、ACM Private CA は証明書署名リクエスト (CSR) から証明書に追加の拡張機能を渡します。テンプレートで指定された拡張機能は、常にCSR 内の拡張機能を上書きします。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

Version latest77

Page 83: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

EndEntityClientAuthCertificate/V1 定義

パラメータ 値

X509v3 拡張キーの使用法 TLS ウェブサーバー認証、TLS ウェブクライアント認証

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityClientAuthCertificate/V1 定義このテンプレートはEndEntityCertificate と同じですが、唯一違う点は拡張キー使用法の値で、TLSウェブクライアント認証に制限されます。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

X509v3 拡張キーの使用法 TLS ウェブクライアント認証

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityClientAuthCertificate_CSRPassthrough/V1定義このテンプレートは EndEntityClientAuthCertificate テンプレートと同じですが、 違いが 1 つあります。このテンプレートでは、拡張機能がテンプレートで指定されていない場合、ACM Private CA は証明書署名リクエスト (CSR) から証明書に追加の拡張機能を渡します。テンプレートで指定された拡張機能は、常に CSR 内の拡張機能を上書きします。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

Version latest78

Page 84: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

EndEntityServerAuthCertificate/V1 定義

パラメータ 値

X509v3 拡張キーの使用法 TLS ウェブクライアント認証

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityServerAuthCertificate/V1 定義このテンプレートはEndEntityCertificate と同じですが、唯一違う点は拡張キー使用法の値で、TLSウェブサーバー認証に制限されます。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

X509v3 拡張キーの使用法 TLS ウェブサーバー認証

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

EndEntityServerAuthCertificate_CSRPassthrough/V1定義このテンプレートは EndEntityServerAuthCertificate テンプレートと同じですが、 違いが 1 つあります。このテンプレートでは、拡張機能がテンプレートで指定されていない場合、ACM Private CA は証明書署名リクエスト (CSR) から証明書に追加の拡張機能を渡します。テンプレートで指定された拡張機能は、常に CSR 内の拡張機能を上書きします。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、キー暗号化

X509v3 拡張キーの使用法 TLS ウェブサーバー認証

Version latest79

Page 85: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

OCSPSigningCertificate/V1 定義

パラメータ 値

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

OCSPSigningCertificate/V1 定義このテンプレートは、OCSP 応答に署名するための証明書を作成するために使用されます。テンプレートは CodeSigningCertificate テンプレートと同じですが、拡張キー使用法の値がコード署名ではなくOCSP 署名を指定している点が異なります。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名

X509v3 拡張キーの使用法 重要、OCSP 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

OCSPSigningCertificate_CSRPassthrough/V1 定義このテンプレートは OCSPSigningCertificate テンプレートと同じですが、 違いが 1 つあります。このテンプレートでは、拡張機能がテンプレートで指定されていない場合、ACM Private CA は証明書署名リクエスト (CSR) から証明書に追加の拡張機能を渡します。テンプレートで指定された拡張機能は、常にCSR 内の拡張機能を上書きします。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 CA:FALSE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名

X509v3 拡張キーの使用法 重要、OCSP 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

Version latest80

Page 86: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

RootCACertificate/V1 定義

*CRL ディストリビューションポイントは、CA で CRL 生成が有効に設定されている場合にのみテンプレートに含まれます。

RootCACertificate/V1 定義このテンプレートは、自己署名ルート CA 認定を交付するために使用されます。CA 認定には、証明書がCA 認定の交付に使用できることを指定するために、[CA] フィールドが TRUE に設定された、重要な基本制約拡張機能が含まれています。このテンプレートでは、パスの長さは指定されません。これは、パスの長さによって CA チェーンの最大長 (CA 認定の深さ) が制限されるためです。拘束されたチェーンの長さは、階層の今後の拡大を阻害する可能性があります。CA 認定を TLS クライアントまたはサーバー証明書として使用できないようにするため、拡張キーの使用は除外されます。自己署名証明書を取り消すことができないため、CRL 情報は指定されません。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 重要、CA:TRUE

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、keyCertSign、CRL 署名

X509v3 CRL ディストリビューションポイント 該当なし

SubordinateCACertificate_PathLen0/V1 定義このテンプレートは、パスの長さが 0 の下位 CA 認定を交付するために使用されます。CA 認定には、証明書が CA 認定の交付に使用できることを指定するために、[CA] フィールドが TRUE に設定された、重要な基本制約拡張機能が含まれています。拡張キーの使用法が含まれていないため、CA 認定が TLS クライアントまたはサーバー証明書として使用されなくなります。

証明パスの詳細については、「証明パスに長さの制約を設定する」を参照してください。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 重要、CA:TRUE、pathlen: 0

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、keyCertSign、CRL 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA が CRL 生成を有効にして構成されている場合にのみ、このテンプレートで発行された証明書に含まれます。

Version latest81

Page 87: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

SubordinateCACertificate_PathLen1/V1 定義

SubordinateCACertificate_PathLen1/V1 定義このテンプレートは、パスの長さが 1 の下位 CA 認定を交付するために使用されます。CA 認定には、証明書が CA 認定の交付に使用できることを指定するために、[CA] フィールドが TRUE に設定された、重要な基本制約拡張機能が含まれています。拡張キーの使用法が含まれていないため、CA 認定が TLS クライアントまたはサーバー証明書として使用されなくなります。

証明パスの詳細については、「証明パスに長さの制約を設定する」を参照してください。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 重要、CA:TRUE、pathlen: 1

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、keyCertSign、CRL 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA が CRL 生成を有効にして構成されている場合にのみ、このテンプレートで発行された証明書に含まれます。

SubordinateCACertificate_PathLen2/V1 定義このテンプレートは、パスの長さが 2 の下位 CA 認定を交付するために使用されます。CA 認定には、証明書が CA 認定の交付に使用できることを指定するために、[CA] フィールドが TRUE に設定された、重要な基本制約拡張機能が含まれています。拡張キーの使用法が含まれていないため、CA 認定が TLS クライアントまたはサーバー証明書として使用されなくなります。

証明パスの詳細については、「証明パスに長さの制約を設定する」を参照してください。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 重要、CA:TRUE、pathlen: 2

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクト ky 識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、keyCertSign、CRL 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA が CRL 生成を有効にして構成されている場合にのみ、このテンプレートで発行された証明書に含まれます。

SubordinateCACertificate_PathLen3/V1 定義このテンプレートは、パスの長さが 3 の下位 CA 認定を交付するために使用されます。CA 認定には、証明書が CA 認定の交付に使用できることを指定するために、[CA] フィールドが TRUE に設定された、重要

Version latest82

Page 88: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

SubordinateCACertificate_PathLen3/V1 定義

な基本制約拡張機能が含まれています。拡張キーの使用法が含まれていないため、CA 認定が TLS クライアントまたはサーバー証明書として使用されなくなります。

証明パスの詳細については、「証明パスに長さの制約を設定する」を参照してください。

パラメータ 値

X509v3 サブジェクトの別名 [CSR からコピー]

X509v3 基本制約 重要、CA:TRUE、pathlen: 3

X509v3 権限キー識別子 [AKI]

X509v3 サブジェクトキー識別子 [SKI]

X509v3 キーの使用法 重要、デジタル署名、keyCertSign、CRL 署名

X509v3 CRL ディストリビューションポイント* [CRL ディストリビューションポイント]

*CRL ディストリビューションポイントは、CA が CRL 生成を有効にして構成されている場合にのみ、このテンプレートで発行された証明書に含まれます。

Version latest83

Page 89: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreateCertificateAuthority

ACM Private CA API の使用 (Java の例)

HTTP リクエストを送信してサービスをプログラムでインタラクティブに操作するために AWS CertificateManager Private Certificate Authority API を使用できます。サービスは HTTP レスポンスを返します。詳細については、「AWS Certificate Manager Private Certificate Authority API Reference」を参照してください。

HTTP API に加えて、AWS SDK とコマンドラインツールを使用して ACM Private CA を操作できます。これは HTTP API で推奨されています。詳細については、「Amazon Web Services ツール」を参照してください。次のトピックでは、ACM PCA API をプログラミングするために AWS SDK for Java を使用する方法を説明します。

GetCertificateAuthorityCsr (p. 100)、GetCertificate (p. 97)、DescribeCertificateAuthorityCsr (p. 95)コマンドでは、ウェイターがサポートされています。ウェイターを使用して、特定のリソースの存在または状態に基づいてコードの進行を制御できます。詳細については、以下のトピックと、AWS デベロッパーブログの AWS SDK for Java のウェイターを参照してください。

トピック• CreateCertificateAuthority (p. 84)• CreateCertificateAuthorityAuditReport (p. 87)• CreatePermission (p. 89)• DeleteCertificateAuthority (p. 91)• DeletePermission (p. 92)• DescribeCertificateAuthority (p. 94)• DescribeCertificateAuthorityAuditReport (p. 95)• GetCertificate (p. 97)• GetCertificateAuthorityCertificate (p. 99)• GetCertificateAuthorityCsr (p. 100)• ImportCertificateAuthorityCertificate (p. 102)• IssueCertificate (p. 104)• ListCertificateAuthorities (p. 106)• ListPermissions (p. 109)• ListTags (p. 111)• RestoreCertificateAuthority (p. 112)• RevokeCertificate (p. 113)• TagCertificateAuthorities (p. 115)• UntagCertificateAuthority (p. 117)• UpdateCertificateAuthority (p. 118)

CreateCertificateAuthority次の Java サンプル例は、CreateCertificateAuthority オペレーションを使用する方法を示しています。

Version latest84

Page 90: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreateCertificateAuthority

このオペレーションはプライベートの下位証明書認証機関 (CA) を作成します。CA 設定、失効設定を指定する必要があり、CA タイプ、およびオプションの冪等性トークン。

CA 設定で、次のように指定します。

• CA プライベートキーの作成に使用されるアルゴリズム名とキーサイズ• CA が署名に使用する署名アルゴリズムのタイプ• X.500 件名情報

CRL 設定で、次のように指定します。

• CRL の有効期間の日数 (CRL の有効期間)• CRL を含む Amazon S3 バケット• CA によって発行された証明書に含まれている S3 バケットの CNAME エイリアス

成功すると、この関数は CA の Amazon リソースネーム (ARN) を返します。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.ASN1Subject;import com.amazonaws.services.acmpca.model.CertificateAuthorityConfiguration;import com.amazonaws.services.acmpca.model.CertificateAuthorityType;import com.amazonaws.services.acmpca.model.CreateCertificateAuthorityResult;import com.amazonaws.services.acmpca.model.CreateCertificateAuthorityRequest;import com.amazonaws.services.acmpca.model.CrlConfiguration;import com.amazonaws.services.acmpca.model.KeyAlgorithm;import com.amazonaws.services.acmpca.model.SigningAlgorithm;import com.amazonaws.services.acmpca.model.Tag;

import java.util.ArrayList;import java.util.Objects;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.LimitExceededException;import com.amazonaws.services.acmpca.model.InvalidArgsException;import com.amazonaws.services.acmpca.model.InvalidPolicyException;import com.amazonaws.services.acmpca.model.RevocationConfiguration;

public class CreateCertificateAuthority {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try { credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load the credentials from the credential profiles file. " +

Version latest85

Page 91: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreateCertificateAuthority

"Please make sure that your credentials file is at the correct " + "location (C:\\Users\\joneps\\.aws\\credentials), and is in valid format.", e); } // Define the endpoint for your sample. String endpointProtocol = "acm-pca.us-west-2.amazonaws.com"; String endpointRegion = "us-west-2"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion); // Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build(); // Define a CA subject. ASN1Subject subject = new ASN1Subject(); subject.setOrganization("Amazon"); subject.setOrganizationalUnit("AWS"); subject.setCountry("US"); subject.setState("Washington"); subject.setLocality("Seattle"); subject.setCommonName("www.amazon.com");

// Define the CA configuration. CertificateAuthorityConfiguration configCA = new CertificateAuthorityConfiguration(); configCA.withKeyAlgorithm(KeyAlgorithm.RSA_2048); configCA.withSigningAlgorithm(SigningAlgorithm.SHA256WITHRSA); configCA.withSubject(subject);

// Define a certificate revocation list configuration. CrlConfiguration crlConfigure = new CrlConfiguration(); crlConfigure.withEnabled(true); crlConfigure.withExpirationInDays(365); crlConfigure.withCustomCname(null); crlConfigure.withS3BucketName("your-bucket-name");

RevocationConfiguration revokeConfig = new RevocationConfiguration(); revokeConfig.setCrlConfiguration(crlConfigure); // Define a certificate authority type CertificateAuthorityType CAtype = CertificateAuthorityType.SUBORDINATE; // Create a tag - method 1 Tag tag1 = new Tag(); tag1.withKey("PrivateCA"); tag1.withValue("Sample"); // Create a tag - method 2 Tag tag2 = new Tag() .withKey("Purpose") .withValue("WebServices"); // Add the tags to a collection. ArrayList<Tag> tags = new ArrayList<Tag>(); tags.add(tag1); tags.add(tag2); // Create the request object. CreateCertificateAuthorityRequest req = new CreateCertificateAuthorityRequest(); req.withCertificateAuthorityConfiguration(configCA); req.withRevocationConfiguration(revokeConfig); req.withIdempotencyToken("123987");

Version latest86

Page 92: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreateCertificateAuthorityAuditReport

req.withCertificateAuthorityType(CAtype); req.withTags(tags);

// Create the private CA. CreateCertificateAuthorityResult result = null; try { result = client.createCertificateAuthority(req); } catch (InvalidArgsException ex) { throw ex; } catch (InvalidPolicyException ex) { throw ex; } catch (LimitExceededException ex) { throw ex; }

// Retrieve the ARN of the private CA. String arn = result.getCertificateAuthorityArn(); System.out.println(arn);

}}

出力は次のようになります。

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

CreateCertificateAuthorityAuditReport次の Java サンプル例は、CreateCertificateAuthorityAuditReport オペレーションを使用する方法を示しています。

この関数は、証明書が発行または取り消されるたびにそれを一覧表示する監査報告書を作成します。この報告書は、入力時に指定する Amazon S3 バケットに保存されます。30 分に 1 回新しいレポートを生成できます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.CreateCertificateAuthorityAuditReportRequest;import com.amazonaws.services.acmpca.model.CreateCertificateAuthorityAuditReportResult;

import com.amazonaws.services.acmpca.model.RequestInProgressException;import com.amazonaws.services.acmpca.model.RequestFailedException;import com.amazonaws.services.acmpca.model.InvalidArgsException;

Version latest87

Page 93: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreateCertificateAuthorityAuditReport

import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidStateException;

public class CreateCertificateAuthorityAuditReport {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object and set the certificate authority ARN. CreateCertificateAuthorityAuditReportRequest req = new CreateCertificateAuthorityAuditReportRequest();

req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Specify the S3 bucket name for your report. req.setS3BucketName("your-bucket-name");

// Specify the audit response format. req.setAuditReportResponseFormat("JSON");

// Create a result object. CreateCertificateAuthorityAuditReportResult result = null; try { result = client.createCertificateAuthorityAuditReport(req); } catch(RequestInProgressException ex) { throw ex; } catch(RequestFailedException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch(InvalidArnException ex) { throw ex; } catch(InvalidArgsException ex) {

Version latest88

Page 94: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreatePermission

throw ex; } catch(InvalidStateException ex) { throw ex; }

String ID = result.getAuditReportId(); String S3Key = result.getS3Key();

System.out.println(ID); System.out.println(S3Key);

}}

出力は次のようになります。

58904752-7de3-4bdf-ba89-6953e48c3cc7audit-report/16075838-061c-4f7a-b54b-49bbc111bcff/58904752-7de3-4bdf-ba89-6953e48c3cc7.json

CreatePermission次の Java サンプルは、CreatePermission オペレーションの使用方法を示しています。

このオペレーションは、プライベート CA から指定された AWS サービスプリンシパルにアクセス許可を割り当てます。サービスには、プライベート CA から証明書を作成および取得するアクセス許可を与えることができます。また、プライベート CA が付与したアクティブなアクセス許可を一覧表示することもできます。ACM から証明書を自動的に更新するには 、CA から ACM サービスプリンシパル (acm.amazonaws.com) に可能なすべてのアクセス許可 (IssueCertificate,GetCertificate, and ListPermissions) を割り当てる必要があります。CA の ARN を見つけるには、ListCertificateAuthorities 関数を呼び出します。

アクセス許可が作成されたら、ListPermissions 関数を使用してアクセス許可を検査するか、DeletePermission 関数を使用してアクセス許可を削除できます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.CreatePermissionRequest;import com.amazonaws.services.acmpca.model.CreatePermissionResult;

import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.LimitExceededException;import com.amazonaws.services.acmpca.model.PermissionAlreadyExistsException;import com.amazonaws.services.acmpca.model.RequestFailedException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;

public class CreatePermission {

Version latest89

Page 95: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CreatePermission

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. CreatePermissionRequest req = new CreatePermissionRequest(); // Set the certificate authority ARN. req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012"); // Set the permissions to give the user. req.setActions(["IssueCertificate", "GetCertificate", "ListPermissions"]); // Set the AWS principal. req.setPrincipal("acm.amazonaws.com");

// Create a result object. CreatePermissionsResult result = null; try { result = client.createPermission(req); } catch(InvalidArnException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(LimitExceededException ex) { throw ex; } catch(PermissionAlreadyExistsException ex) { throw ex; } catch(RequestFailedException ex) { throw ex; } catch(ResourceNotFoundException ex) {

Version latest90

Page 96: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DeleteCertificateAuthority

throw ex; } }}

DeleteCertificateAuthority次の Java サンプル例では、DeleteCertificateAuthority オペレーションを使用する方法を示します。

このオペレーションは、CreateCertificateAuthority オペレーションを使用して作成したプライベート認証機関 (CA) を削除します。DeleteCertificateAuthority オペレーションでは、削除する CA のARN を指定する必要があります。ARN は、ListCertificateAuthorities オペレーションを呼び出して見つけることができます。プライベート CA のステータスが CREATING または PENDING_CERTIFICATEである場合は、即座に削除できます。ただし、証明書を既にインポートしている場合は、すぐに削除することはできません。まず UpdateCertificateAuthority オペレーションを呼び出して CA を無効にしてから、Status パラメータを DISABLED に設定します。その後、DeleteCertificateAuthorityオペレーションで PermanentDeletionTimeInDays パラメータを使用して、7~30 の日数を指定できます。その期間中、プライベート CA は disabled ステータスに復元できます。デフォルトでは、PermanentDeletionTimeInDays パラメータを設定しない場合、復元期間は 30 日です。この期間が経過すると、プライベート CA は完全に削除され、復元できなくなります。詳細については、「CA の復元 (p. 67)」を参照してください。

RestoreCertificateAuthority オペレーションの使用方法を示す Java のサンプルについては、「RestoreCertificateAuthority (p. 112)」を参照してください。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.DeleteCertificateAuthorityRequest;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.RequestFailedException;

public class DeleteCertificateAuthority {

public static void main(String[] args) throws Exception{

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

Version latest91

Page 97: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DeletePermission

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a requrest object and set the ARN of the private CA to delete. DeleteCertificateAuthorityRequest req = new DeleteCertificateAuthorityRequest();

// Set the certificate ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/11111111-2222-3333-4444-555555555555"); // Set the recovery period. req.withPermanentDeletionTimeInDays(12);

// Delete the CA. try { client.deleteCertificateAuthority(req); } catch(ResourceNotFoundException ex) { throw ex; } catch(InvalidArnException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(RequestFailedException ex) { throw ex; } }}

DeletePermission次の Java サンプルは、DeletePermission オペレーションの使用方法を示しています。

この操作は、 CreatePermissions オペレーションを使用してプライベート CA が AWS サービスプリンシパルに委任したアクセス許可 を削除します。CA の ARN を見つけるには、ListCertificateAuthorities 関数を呼び出します。ListPermissions 関数を呼び出して、CA から付与されたアクセス許可を調べることができます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.AmazonClientException;

Version latest92

Page 98: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DeletePermission

import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.CreatePermissionRequest;import com.amazonaws.services.acmpca.model.CreatePermissionResult;

import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.RequestFailedException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;

public class DeletePermission {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. DeletePermissionRequest req = new DeletePermissionRequest(); // Set the certificate authority ARN. req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012"); // Set the AWS service principal. req.setPrincipal("acm.amazonaws.com");

// Create a result object. DeletePermissionsResult result = null; try { result = client.createPermission(req); } catch(InvalidArnException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(RequestFailedException ex) { throw ex;

Version latest93

Page 99: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DescribeCertificateAuthority

} catch(ResourceNotFoundException ex) { throw ex; } }}

DescribeCertificateAuthority次の Java サンプル例は、DescribeCertificateAuthority オペレーションを使用する方法を示しています。

このオペレーションは、プライベート認証機関 (CA) に関する情報をリストします。プライベート CA のARN (Amazon リソースネーム) を指定する必要があります。出力には、CA のステータスが含まれます。これは、次のいずれかとなります。

• CREATING – ACM Private CA はプライベート認証機関を作成中です。• PENDING_CERTIFICATE – 証明書は保留中です。オンプレミスルート CA または下位 CA を使用してプ

ライベート CA CSR に署名し、PCA にインポートする必要があります。• ACTIVE – プライベート CA がアクティブです。• DISABLED – プライベート CA が無効になっています。• EXPIRED – プライベート CA 証明書の有効期限が切れています。• FAILED – プライベート CA を作成することはできません。• DELETED – プライベート CA は復元期間内にあります。その後は完全に削除されます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.CertificateAuthority;import com.amazonaws.services.acmpca.model.DescribeCertificateAuthorityRequest;import com.amazonaws.services.acmpca.model.DescribeCertificateAuthorityResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;

public class DescribeCertificateAuthority {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e);

Version latest94

Page 100: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DescribeCertificateAuthorityAuditReport

}

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object and set the certificate authority ARN. DescribeCertificateAuthorityRequest req = new DescribeCertificateAuthorityRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:"+ "certificate-authority/12345678-1234-1234-1234-123456789012");

// Create a result object. DescribeCertificateAuthorityResult result = null; try { result = client.describeCertificateAuthority(req); } catch(ResourceNotFoundException ex) { throw ex; } catch(InvalidArnException ex) { throw ex; }

// Retrieve and display information about the CA. CertificateAuthority PCA = result.getCertificateAuthority(); String strPCA = PCA.toString(); System.out.println(strPCA);

}}

DescribeCertificateAuthorityAuditReport次の Java サンプル例は、DescribeCertificateAuthorityAuditReport オペレーションを使用する方法を示しています。

このオペレーションでは、CreateCertificateAuthorityAuditReport オペレーションを呼び出して作成した特定の監査報告書に関する情報がリストされます。監査情報は、認証機関 (CA) プライベートキーが使用されるたびに作成されます。プライベートキーは、証明書を発行、CRL に署名、または証明書を取り消すときに使用されます。

package com.amazonaws.samples;

import java.util.Date;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

Version latest95

Page 101: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

DescribeCertificateAuthorityAuditReport

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.DescribeCertificateAuthorityAuditReportRequest;import com.amazonaws.services.acmpca.model.DescribeCertificateAuthorityAuditReportResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.InvalidArgsException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;

public class DescribeCertificateAuthorityAuditReport {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. DescribeCertificateAuthorityAuditReportRequest req = new DescribeCertificateAuthorityAuditReportRequest();

// Set the certificate authority ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Set the audit report ID. req.withAuditReportId("11111111-2222-3333-4444-555555555555"); // Create waiter to wait on successful creation of the audit repor filet. Waiter<DescribeCertificateAuthorityAuditReportRequest> waiter = client.waiters().auditReportCreated(); try { waiter.run(new WaiterParameters<>(req)); } catch(WaiterUnrecoverableException e) { //Explicit short circuit when the recourse transitions into //an undesired state. } catch(WaiterTimedOutException e) { //Failed to transition into desired state even after polling. } catch(AWSACMPCAException e) { //Unexpected service exception. }

// Create a result object. DescribeCertificateAuthorityAuditReportResult result = null; try { result = client.describeCertificateAuthorityAuditReport(req); } catch(ResourceNotFoundException ex) { throw ex;

Version latest96

Page 102: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

GetCertificate

} catch(InvalidArgsException ex) { throw ex; }

String status = result.getAuditReportStatus(); String S3Bucket = result.getS3BucketName(); String S3Key = result.getS3Key(); Date createdAt = result.getCreatedAt();

System.out.println(status); System.out.println(S3Bucket); System.out.println(S3Key); System.out.println(createdAt);

}}

出力は次のようになります。

SUCCESSyour-audit-report-bucket-nameaudit-report/a4119411-8153-498a-a607-2cb77b858043/25211c3d-f2fe-479f-b437-fe2b3612bc45.jsonTue Jan 16 13:07:58 PST 2018

GetCertificate次の Java サンプル例は、GetCertificate オペレーションを使用する方法を示しています。

このオペレーションは、プライベート CA から証明書を取得します。IssueCertificate オペレーションを呼び出すと、証明書の ARN が返されます。GetCertificate オペレーションを呼び出すときは、プライベート CA の ARN と、発行済み証明書の ARN の両方を指定する必要があります。ISSUED 状態の場合は、証明書を取得できます。CreateCertificateAuthorityAuditReport オペレーションを呼び出して、プライベート CA が発行および取り消したすべての証明書に関する情報を含むレポートを作成できます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.GetCertificateRequest;import com.amazonaws.services.acmpca.model.GetCertificateResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.RequestInProgressException;import com.amazonaws.services.acmpca.model.RequestFailedException ;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidStateException;

public class GetCertificate {

public static void main(String[] args) throws Exception{

Version latest97

Page 103: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

GetCertificate

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try { credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build(); // Create a request object. GetCertificateRequest req = new GetCertificateRequest();

// Set the certificate ARN. req.withCertificateArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012" + "/certificate/793f0d5b6a04125e2c9cfb52373598fe");

// Set the certificate authority ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012"); // Create waiter to wait on successful creation of the certificate file. Waiter<GetCertificateRequest> waiter = client.waiters().certificateIssued(); try { waiter.run(new WaiterParameters<>(req)); } catch(WaiterUnrecoverableException e) { //Explicit short circuit when the recourse transitions into //an undesired state. } catch(WaiterTimedOutException e) { //Failed to transition into desired state even after polling. } catch(AWSACMPCAException e) { //Unexpected service exception. }

// Retrieve the certificate and certificate chain. GetCertificateResult result = null; try { result = client.getCertificate(req); } catch (RequestInProgressException ex) { throw ex; } catch (RequestFailedException ex) { throw ex; } catch (ResourceNotFoundException ex) { throw ex; } catch (InvalidArnException ex) { throw ex; } catch (InvalidStateException ex) { throw ex; }

// Get the certificate and certificate chain and display the result. String strCert = result.getCertificate(); System.out.println(strCert); }

Version latest98

Page 104: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

GetCertificateAuthorityCertificate

}

出力は、指定した認証機関 (CA) および証明書について、以下に類似した証明書チェーンになります。

-----BEGIN CERTIFICATE----- base64-encoded certificate -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- base64-encoded certificate -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- base64-encoded certificate -----END CERTIFICATE-----

GetCertificateAuthorityCertificate次の Java サンプル例は、GetCertificateAuthorityCertificate オペレーションを使用する方法を示しています。

このオペレーションは、プライベート認証機関 (CA) の証明書と証明書チェーンを取得します。証明書とチェーンのどちらも、base64 PEM でエンコードされます。このチェーンには CA 証明書は含まれません。チェーンの各証明書は、前の証明書に署名します。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.GetCertificateAuthorityCertificateRequest;import com.amazonaws.services.acmpca.model.GetCertificateAuthorityCertificateResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.InvalidArnException;

public class GetCertificateAuthorityCertificate {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard()

Version latest99

Page 105: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

GetCertificateAuthorityCsr

.withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object and set the certificate authority ARN, GetCertificateAuthorityCertificateRequest req = new GetCertificateAuthorityCertificateRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Create a result object. GetCertificateAuthorityCertificateResult result = null; try{ result = client.getCertificateAuthorityCertificate(req); } catch(ResourceNotFoundException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(InvalidArnException ex) { throw ex; }

// Retrieve and display the certificate information. String strPcaCert = result.getCertificate(); System.out.println(strPcaCert); String strPCACChain = result.getCertificateChain(); System.out.println(strPCACChain); }}

出力は、指定した次の証明書チェーン (CA) に類似した証明書およびチェーンになります。

-----BEGIN CERTIFICATE----- base64-encoded certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- base64-encoded certificate -----END CERTIFICATE-----

GetCertificateAuthorityCsr次の Java サンプル例は、GetCertificateAuthorityCsr オペレーションを使用する方法を示しています。

このオペレーションは、プライベート認証機関 (CA) の証明書署名リクエスト (CSR) を取得します。CreateCertificateAuthority オペレーションを呼び出すときに、CSR が作成されます。CSR をオンプレミスの X.509 インフラストラクチャに持ち込み、ルート CA または下位 CA を使用して署名します。次に、ImportCertificateAuthorityCertificate オペレーションを呼び出して、署名証明書を ACM PCA にもう一度インポートします。CSR は base64 PEM エンコード文字列として返されます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

Version latest100

Page 106: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

GetCertificateAuthorityCsr

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.GetCertificateAuthorityCsrRequest;import com.amazonaws.services.acmpca.model.GetCertificateAuthorityCsrResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.RequestInProgressException;import com.amazonaws.services.acmpca.model.RequestFailedException;

public class GetCertificateAuthorityCsr {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build(); // Create waiter to wait on successful creation of the CSR file. Waiter<GetCertificateAuthorityCsrRequest> waiter = client.waiters().certificateAuthorityCSRCreated(); try { waiter.run(new WaiterParameters<>(req)); } catch(WaiterUnrecoverableException e) { //Explicit short circuit when the recourse transitions into //an undesired state. } catch(WaiterTimedOutException e) { //Failed to transition into desired state even after polling. } catch(PrivateCAException e) { //Unexpected service exception. }

// Create the request object and set the CA ARN. GetCertificateAuthorityCsrRequest req = new GetCertificateAuthorityCsrRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account: " + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Retrieve the CSR. GetCertificateAuthorityCsrResult result = null; try { result = client.getCertificateAuthorityCsr(req); } catch (RequestInProgressException ex) { throw ex; } catch (ResourceNotFoundException ex) { throw ex; } catch (InvalidArnException ex) {

Version latest101

Page 107: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイドImportCertificateAuthorityCertificate

throw ex; } catch (RequestFailedException ex) { throw ex; }

// Retrieve and display the CSR; String Csr = result.getCsr(); System.out.println(Csr);

}}

指定する認証機関 (CA) に対して、出力は次のようになります。証明書署名リクエスト (CSR) は base64でエンコードされた PEM 形式です。これをローカルファイルに保存し、オンプレミスの X.509 インフラストラクチャに持ち込み、ルート CA または下位 CA を使用して署名します。

-----BEGIN CERTIFICATE REQUEST----- base64-encoded request -----END CERTIFICATE REQUEST-----

ImportCertificateAuthorityCertificate次の Java サンプル例は、ImportCertificateAuthorityCertificate オペレーションを使用する方法を示しています。

このオペレーションは、署名されたプライベート CA 認定を ACM Private CA にインポートします。このオペレーションを呼び出す前に、CreateCertificateAuthority オペレーションを呼び出してプライベート認証機関を作成する必要があります。次に、GetCertificateAuthorityCsr オペレーションを呼び出して証明書署名リクエスト (CSR) を生成します。CSR をオンプレミスの CA に持ち込み、ルート証明書または下位の証明書を使用して署名します。証明書チェーンを作成し、署名証明書および証明書チェーンを作業ディレクトリにコピーします。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.ImportCertificateAuthorityCertificateRequest;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.RequestInProgressException;import com.amazonaws.services.acmpca.model.MalformedCertificateException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.ConcurrentModificationException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.CertificateMismatchException;import com.amazonaws.services.acmpca.model.RequestFailedException;

import java.nio.ByteBuffer;import java.nio.charset.StandardCharsets;import java.util.Objects;

public class ImportCertificateAuthorityCertificate {

public static ByteBuffer stringToByteBuffer(final String string) {

Version latest102

Page 108: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイドImportCertificateAuthorityCertificate

if (Objects.isNull(string)) { return null; } byte[] bytes = string.getBytes(StandardCharsets.UTF_8); return ByteBuffer.wrap(bytes); }

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create the request object and set the signed certificate, chain and CA ARN. ImportCertificateAuthorityCertificateRequest req = new ImportCertificateAuthorityCertificateRequest();

// Set the signed certificate. String strCertificate = "-----BEGIN CERTIFICATE-----" + "base64-encoded certificate" + "-----END CERTIFICATE-----"; ByteBuffer certByteBuffer = stringToByteBuffer(strCertificate); req.setCertificate(certByteBuffer);

// Set the certificate chain. String strCertificateChain = "-----BEGIN CERTIFICATE-----" + "base64-encoded certificate" + "-----END CERTIFICATE-----"; ByteBuffer chainByteBuffer = stringToByteBuffer(strCertificateChain); req.setCertificateChain(chainByteBuffer);

// Set the certificate ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account: " + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Import the certificate. try { client.importCertificateAuthorityCertificate(req); } catch(CertificateMismatchException ex) { throw ex; } catch(MalformedCertificateException ex) { throw ex;

Version latest103

Page 109: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

IssueCertificate

} catch(InvalidArnException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch(RequestInProgressException ex) { throw ex; } catch(ConcurrentModificationException ex) { throw ex; } catch(RequestFailedException ex) { throw ex; } }}

IssueCertificate次の Java サンプル例は、IssueCertificate オペレーションを使用する方法を示しています。

このオペレーションでは、プライベート認証局 (CA) を使用して エンドエンティティ 証明書を発行します。このオペレーションは、証明書の Amazon リソースネーム (ARN) を返します。GetCertificate を呼び出し、ARN を指定することにより、証明書を取得できます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import java.nio.ByteBuffer;import java.nio.charset.StandardCharsets;import java.util.Objects;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.IssueCertificateRequest;import com.amazonaws.services.acmpca.model.IssueCertificateResult;import com.amazonaws.services.acmpca.model.SigningAlgorithm;import com.amazonaws.services.acmpca.model.Validity;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.LimitExceededException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidArgsException;import com.amazonaws.services.acmpca.model.MalformedCSRException;

public class IssueCertificate { public static ByteBuffer stringToByteBuffer(final String string) {

Version latest104

Page 110: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

IssueCertificate

if (Objects.isNull(string)) { return null; } byte[] bytes = string.getBytes(StandardCharsets.UTF_8); return ByteBuffer.wrap(bytes); }

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a certificate request: IssueCertificateRequest req = new IssueCertificateRequest();

// Set the CA ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Specify the certificate signing request (CSR) for the certificate to be signed and issued. String strCSR = "-----BEGIN CERTIFICATE REQUEST-----" + " base64-encoded certificate " + "------END CERTIFICATE REQUEST------"; ByteBuffer csrByteBuffer = stringToByteBuffer(strCSR); req.setCsr(csrByteBuffer);

// Set the signing algorithm. req.withSigningAlgorithm(SigningAlgorithm.SHA256WITHRSA);

// Set the validity period for the certificate to be issued. Validity validity = new Validity(); validity.withValue(3650L); validity.withType("DAYS"); req.withValidity(validity);

// Set the idempotency token. req.setIdempotencyToken("1234");

// Issue the certificate. IssueCertificateResult result = null; try{ result = client.issueCertificate(req); } catch(LimitExceededException ex) {

Version latest105

Page 111: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListCertificateAuthorities

throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch (InvalidArnException ex) { throw ex; } catch (InvalidArgsException ex) { throw ex; } catch (MalformedCSRException ex) { throw ex; }

// Retrieve and display the certificate ARN. String arn = result.getCertificateArn(); System.out.println(arn); }}

出力は次のようになります。

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/2669d5cacb539c0830998c23babab8dc

ListCertificateAuthorities次の Java サンプル例は、ListCertificateAuthorities オペレーションを使用する方法を示しています。

このオペレーションは、CreateCertificateAuthority オペレーションを使用して作成したプライベート証明書機関 (CA) を一覧表示します。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ListCertificateAuthoritiesRequest;import com.amazonaws.services.acmpca.model.ListCertificateAuthoritiesResult;import com.amazonaws.services.acmpca.model.InvalidNextTokenException;

public class ListCertificateAuthorities {

public static void main(String[] args) throws Exception {

Version latest106

Page 112: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListCertificateAuthorities

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create the request object. ListCertificateAuthoritiesRequest req = new ListCertificateAuthoritiesRequest(); req.withMaxResults(10);

// Retrieve a list of your CAs. ListCertificateAuthoritiesResult result= null; try{ result = client.listCertificateAuthorities(req); } catch (InvalidNextTokenException ex){ throw ex; }

// Display the CA list. System.out.println(result.getCertificateAuthorities()); }}

一覧表示する証明書機関がある場合、出力は次のようになります。

[{ Arn: arn: aws: acm-pca: region: account: certificate-authority/12345678-1234-1234-1234-123456789012, CreatedAt: TueNov0712: 05: 39PST2017, LastStateChangeAt: WedJan1012: 35: 39PST2018, Type: SUBORDINATE, Serial: 4109, Status: DISABLED, NotBefore: TueNov0712: 19: 15PST2017, NotAfter: FriNov0513: 19: 15PDT2027, CertificateAuthorityConfiguration: { KeyType: RSA2048, SigningAlgorithm: SHA256WITHRSA, Subject: { Organization: ExampleCorp, OrganizationalUnit: HR, State: Washington, CommonName: www.example.com, Locality: Seattle, } }, RevocationConfiguration: {

Version latest107

Page 113: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListCertificateAuthorities

CrlConfiguration: { Enabled: true, ExpirationInDays: 3650, CustomCname: your-custom-name, S3BucketName: your-bucket-name } }},{ Arn: arn: aws: acm-pca: region: account>: certificate-authority/12345678-1234-1234-1234-123456789012, CreatedAt: WedSep1312: 54: 52PDT2017, LastStateChangeAt: WedSep1312: 54: 52PDT2017, Type: SUBORDINATE, Serial: 4100, Status: ACTIVE, NotBefore: WedSep1314: 11: 19PDT2017, NotAfter: SatSep1114: 11: 19PDT2027, CertificateAuthorityConfiguration: { KeyType: RSA2048, SigningAlgorithm: SHA256WITHRSA, Subject: { Country: US, Organization: ExampleCompany, OrganizationalUnit: Sales, State: Washington, CommonName: www.example.com, Locality: Seattle, } }, RevocationConfiguration: { CrlConfiguration: { Enabled: false, ExpirationInDays: 5, CustomCname: your-custom-name, S3BucketName: your-bucket-name } }},{ Arn: arn: aws: acm-pca: region: account>: certificate-authority/12345678-1234-1234-1234-123456789012, CreatedAt: FriJan1213: 57: 11PST2018, LastStateChangeAt: FriJan1213: 57: 11PST2018, Type: SUBORDINATE, Status: PENDING_CERTIFICATE, CertificateAuthorityConfiguration: { KeyType: RSA2048, SigningAlgorithm: SHA256WITHRSA, Subject: { Country: US, Organization: Examples-R-Us Ltd., OrganizationalUnit: corporate, State: WA, CommonName: www.examplesrus.com, Locality: Seattle, } }, RevocationConfiguration: { CrlConfiguration: { Enabled: true, ExpirationInDays: 365, CustomCname: your-custom-name, S3BucketName: your-bucket-name

Version latest108

Page 114: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListPermissions

} }},{ Arn: arn: aws: acm-pca: region: account>: certificate-authority/12345678-1234-1234-1234-123456789012, CreatedAt: FriJan0511: 14: 21PST2018, LastStateChangeAt: FriJan0511: 14: 21PST2018, Type: SUBORDINATE, Serial: 4116, Status: ACTIVE, NotBefore: FriJan0512: 12: 56PST2018, NotAfter: MonJan0312: 12: 56PST2028, CertificateAuthorityConfiguration: { KeyType: RSA2048, SigningAlgorithm: SHA256WITHRSA, Subject: { Country: US, Organization: ExamplesLLC, OrganizationalUnit: CorporateOffice, State: WA, CommonName: www.example.com, Locality: Seattle, } }, RevocationConfiguration: { CrlConfiguration: { Enabled: true, ExpirationInDays: 3650, CustomCname: your-custom-name, S3BucketName: your-bucket-name } }}]

ListPermissions次の Java サンプル例は、ListPermissions オペレーションを使用する方法を示しています。

このオペレーションでは、プライベート CA が割り当てた権限があれば、その権限が一覧表示されます。IssueCertificate、GetCertificate、 ListPermissions などのアクセス許可は、CreatePermission オペレーションで AWS サービスプリンシパルに割り当てられ、DeletePermissionsオペレーションで取り消すことができます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.ListPermissionsRequest;import com.amazonaws.services.acmpca.model.ListPermissionsResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.InvalidArnException;

Version latest109

Page 115: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListPermissions

import com.amazonaws.services.acmpca.model.InvalidNextTokenException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.RequestFailedException;

public class ListPermissions {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. ListPermissionsRequest req = new ListPermissionsRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// List the tags. ListPermissionsResult result = null; try { result = client.listPermissions(req); } catch (InvalidArnException ex) { throw ex; } catch (InvalidStateException ex) { throw ex; } catch(RequestFailedException ex) { throw ex; } catch (ResourceNotFoundException ex) { throw ex; }

// Retrieve and display the permissions. System.out.println(result); }}

指定されたプライベート CA がサービスプリンシパルにアクセス許可を割り当てている場合、出力は次のようになります。

Version latest110

Page 116: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ListTags

[{ Arn: arn:aws:acm-pca:region:account:permission/12345678-1234-1234-1234-123456789012, CreatedAt: WedFeb0317: 05: 39PST2019, Prinicpal: acm.amazonaws.com, Permissions: { ISSUE_CERTIFICATE, GET_CERTIFICATE, DELETE,CERTIFICATE }, SourceAccount: 012345678901}]

ListTags次の Java サンプル例は、ListTags オペレーションを使用する方法を示しています。

このオペレーションは、プライベート CA に関連付けられたタグ (ある場合) を一覧表示します。タグは、CA を特定し、整理するのに使用できるラベルです。各タグはキーとオプションの値で構成されます。1 つ以上のタグを CA に追加するには、TagCertificateAuthority オペレーションを呼び出します。タグを削除するには、UntagCertificateAuthority オペレーションを呼び出します。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.ListTagsRequest;import com.amazonaws.services.acmpca.model.ListTagsResult;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;

public class ListTags {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests.

Version latest111

Page 117: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

RestoreCertificateAuthority

AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. ListTagsRequest req = new ListTagsRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// List the tags ListTagsResult result = null; try { result = client.listTags(req); } catch (InvalidArnException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; }

// Retrieve and display the tags. System.out.println(result); }}

リストするタグがある場合、出力は次のようになります。

{Tags: [{Key: Admin,Value: Alice}, {Key: Purpose,Value: WebServices}],}

RestoreCertificateAuthority次の Java サンプル例では、RestoreCertificateAuthority オペレーションを使用する方法を示します。プライベート CA は、復元期間の間は、いつでも復元できます。現在、この期間は削除の日から 7 ~ 30 日間で設定でき、CA を削除するときに定義できます。詳細については、「CA の復元 (p. 67)」を参照してください。DeleteCertificateAuthority (p. 91) の Java の例も参照してください。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.RestoreCertificateAuthorityRequest;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;

public class RestoreCertificateAuthority {

Version latest112

Page 118: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

RevokeCertificate

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSPrivateCA client = AWSPrivateCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create the request object. RestoreCertificateAuthorityRequest req = new RestoreCertificateAuthorityRequest();

// Set the certificate ARN. req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Restore the CA. try { client.restoreCertificateAuthority(req); } catch(InvalidArnException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } }}

RevokeCertificate次の Java サンプルは、RevokeCertificate オペレーションを使用する方法を示しています。

このオペレーションは、IssueCertificate オペレーションを呼び出して発行した証明書を取り消しにします。プライベート CA の作成時あるいは更新時に証明書失効リスト (CRL) を有効にすると、証明書の取り消しに関する情報が CRL に含まれます。ACM Private CA は、指定する Amazon S3 バケットに CRL を書き込みます。詳細については、「CrlConfiguration」構造を参照してください。

package com.amazonaws.samples;

Version latest113

Page 119: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

RevokeCertificate

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.AmazonClientException;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.RevokeCertificateRequest;import com.amazonaws.services.acmpca.model.RevocationReason;

import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.RequestFailedException;import com.amazonaws.services.acmpca.model.RequestAlreadyProcessedException;import com.amazonaws.services.acmpca.model.RequestInProgressException;

public class RevokeCertificate {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a request object. RevokeCertificateRequest req = new RevokeCertificateRequest();

// Set the certificate authority ARN. req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Set the certificate serial number. req.setCertificateSerial("79:3f:0d:5b:6a:04:12:5e:2c:9c:fb:52:37:35:98:fe");

// Set the RevocationReason. req.withRevocationReason(RevocationReason.KEY_COMPROMISE);

// Revoke the certificate. try{ client.revokeCertificate(req); } catch (InvalidArnException ex) { throw ex;

Version latest114

Page 120: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

TagCertificateAuthorities

} catch(InvalidStateException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch (RequestAlreadyProcessedException ex) { throw ex; } catch (RequestInProgressException ex) { throw ex; } catch (RequestFailedException ex) { throw ex; } }}

TagCertificateAuthorities次の Java サンプル例は、TagCertificateAuthority オペレーションを使用する方法を示しています。

このオペレーションは、1 つまたは複数のタグをプライベート CA に追加します。タグは、AWS リソースを特定し、整理するのに使用できるラベルです。各タグはキーとオプションの値で構成されます。このオペレーションを呼び出すときは、Amazon リソースネーム (ARN) でプライベート CA を指定します。キーと値のペアを使用してタグを指定します。その CA の特定の特性を識別するために、1 つのプライベート CA だけにタグを適用できます。または、これらの CA 間で共通のリレーションシップをフィルタリングするには、同じタグを複数のプライベート CA に適用できます。1 つ以上のタグを削除するには、UntagCertificateAuthority オペレーションを使用します。ListTags オペレーションを呼び出して、どのタグが CA に関連付けられているかを確認してください。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.TagCertificateAuthorityRequest;import com.amazonaws.services.acmpca.model.Tag;

import java.util.ArrayList;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidTagException;import com.amazonaws.services.acmpca.model.TooManyTagsException;

public class TagCertificateAuthorities {

Version latest115

Page 121: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

TagCertificateAuthorities

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a tag - method 1 Tag tag1 = new Tag(); tag1.withKey("Administrator"); tag1.withValue("Bob");

// Create a tag - method 2 Tag tag2 = new Tag() .withKey("Purpose") .withValue("WebServices");

// Add the tags to a collection. ArrayList<Tag> tags = new ArrayList<Tag>(); tags.add(tag1); tags.add(tag2);

// Create a request object and specify the ARN of the certificate. TagCertificateAuthorityRequest req = new TagCertificateAuthorityRequest(); req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012"); req.setTags(tags);

// Add a tag try{ client.tagCertificateAuthority(req); } catch (InvalidArnException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch (InvalidTagException ex) { throw ex; } catch (TooManyTagsException ex) { throw ex; } }

Version latest116

Page 122: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

UntagCertificateAuthority

}

UntagCertificateAuthority次の Java サンプルは、UntagCertificateAuthority オペレーションを使用する方法を示しています。

このオペレーションは、1 つまたは複数のタグをプライベート CA から削除します。タグは、キーと値のペアから構成されます。このオペレーションを呼び出すときにタグの値部分を指定しない場合、このタグは値にかかわらず削除されます。値を指定する場合、タグは指定された値に関連付けられている場合にのみ削除されます。プライベート CA にタグを追加するには、TagCertificateAuthority オペレーションを使用します。ListTags オペレーションを呼び出して、どのタグが CA に関連付けられているかを確認してください。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import java.util.ArrayList;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.UntagCertificateAuthorityRequest;import com.amazonaws.services.acmpca.model.Tag;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArnException;import com.amazonaws.services.acmpca.model.InvalidTagException;

public class UntagCertificateAuthority {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from disk", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create a Tag object with the tag to delete.

Version latest117

Page 123: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

UpdateCertificateAuthority

Tag tag = new Tag(); tag.withKey("Administrator"); tag.withValue("Bob");

// Add the tags to a collection. ArrayList<Tag> tags = new ArrayList<Tag>(); tags.add(tag); tags.add(tag);

// Create a request object and specify the ARN of the certificate. UntagCertificateAuthorityRequest req = new UntagCertificateAuthorityRequest(); req.withCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012"); req.withTags(tags);

// Delete the tag try{ client.untagCertificateAuthority(req); } catch (InvalidArnException ex) { throw ex; } catch(ResourceNotFoundException ex) { throw ex; } catch (InvalidTagException ex) { throw ex; } }}

UpdateCertificateAuthority次の Java サンプル例では、UpdateCertificateAuthority オペレーションを使用する方法を示します。

このオペレーションでは、プライベート認証機関 (CA) のステータスまたは設定を更新します。プライベート CA を更新するには、そのステータスが ACTIVE または DISABLED であることが必要です。ACTIVE 状態のプライベート CA は無効化できます。DISABLED 状態の CA は再有効化できます。

package com.amazonaws.samples;

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.profile.ProfileCredentialsProvider;import com.amazonaws.client.builder.AwsClientBuilder;import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;import com.amazonaws.auth.AWSStaticCredentialsProvider;

import com.amazonaws.services.acmpca.AWSACMPCA;import com.amazonaws.services.acmpca.AWSACMPCAClientBuilder;

import com.amazonaws.services.acmpca.model.UpdateCertificateAuthorityRequest;import com.amazonaws.services.acmpca.model.CertificateAuthorityStatus;

import com.amazonaws.AmazonClientException;import com.amazonaws.services.acmpca.model.ConcurrentModificationException;import com.amazonaws.services.acmpca.model.ResourceNotFoundException;import com.amazonaws.services.acmpca.model.InvalidArgsException;import com.amazonaws.services.acmpca.model.InvalidArnException;

Version latest118

Page 124: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

UpdateCertificateAuthority

import com.amazonaws.services.acmpca.model.InvalidStateException;import com.amazonaws.services.acmpca.model.InvalidPolicyException;import com.amazonaws.services.acmpca.model.CrlConfiguration;import com.amazonaws.services.acmpca.model.RevocationConfiguration;

public class UpdateCertificateAuthority {

public static void main(String[] args) throws Exception {

// Retrieve your credentials from the C:\Users\name\.aws\credentials file // in Windows or the .aws/credentials file in Linux. AWSCredentials credentials = null; try{ credentials = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load your credentials from file.", e); }

// Define the endpoint for your sample. String endpointProtocol = "https://acm-pca.region.amazonaws.com/"; String endpointRegion = "region"; EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointProtocol, endpointRegion);

// Create a client that you can use to make requests. AWSACMPCA client = AWSACMPCAClientBuilder.standard() .withEndpointConfiguration(endpoint) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build();

// Create the request object. UpdateCertificateAuthorityRequest req = new UpdateCertificateAuthorityRequest();

// Set the ARN of the private CA that you want to update. req.setCertificateAuthorityArn("arn:aws:acm-pca:region:account:" + "certificate-authority/12345678-1234-1234-1234-123456789012");

// Define the certificate revocation list configuration. If you do not want to // update the CRL configuration, leave the CrlConfiguration structure alone and // do not set it on your UpdateCertificateAuthorityRequest object. CrlConfiguration crlConfigure = new CrlConfiguration(); crlConfigure.withEnabled(true); crlConfigure.withExpirationInDays(365); crlConfigure.withCustomCname("your-custom-name"); crlConfigure.withS3BucketName("your-bucket-name");

// Set the CRL configuration onto your UpdateCertificateAuthorityRequest object. // If you do not want to change your CRL configuration, do not use the // setCrlConfiguration method. RevocationConfiguration revokeConfig = new RevocationConfiguration(); revokeConfig.setCrlConfiguration(crlConfigure); req.setRevocationConfiguration(revokeConfig);

// Set the status. req.withStatus(CertificateAuthorityStatus.ACTIVE);

// Create the result object. try { client.updateCertificateAuthority(req); } catch(ConcurrentModificationException ex) { throw ex; } catch(ResourceNotFoundException ex)

Version latest119

Page 125: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

UpdateCertificateAuthority

{ throw ex; } catch(InvalidArgsException ex) { throw ex; } catch(InvalidArnException ex) { throw ex; } catch(InvalidStateException ex) { throw ex; } catch(InvalidPolicyException ex) { throw ex; } }}

Version latest120

Page 126: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CSR を取得する

外部 CA とのプライベート CA 証明書の署名

プライベート CA 階層の信頼ルートが ACM Private CA の外部の CA でなければならない場合は、独自のルート CA を作成して自己署名できます。または、組織が運営する外部のプライベート CA によって署名されたプライベート CA 証明書を取得することもできます。この外部から取得した CA を使用して、ACMPrivate CA が管理するプライベートの下位 CA 証明書に署名します。

Note

外部 CA の作成または取得の手順については、このガイドの対象外です。

ACM Private CA で外部の親 CA を使用すると、CA 名の制約を適用することもできます。名前の制約は、インターネットパブリックキーインフラストラクチャ (PKI) 標準 RFC 5280 で定義されています。この制約により、CA 管理者は証明書のサブジェクト名を制限できます。詳細については、RFC 5280 の「名前の制約」セクションを参照してください。

ACM Private CA は、名前の制約を持つ CA 証明書を直接発行することはできません。ただし、外部の親CA から名前の制約を含む CA 証明書を発行できます。ACM Private CA は、下位の CA 証明書とエンドエンティティ証明書を発行するときにこれらの制約を適用します。詳細については、「プライベート CA での名前制約の適用 (p. 127)」を参照してください。

トピック• 証明書署名リクエスト (CSR) を取得する (p. 121)• プライベート CA 証明書に署名する (p. 123)• プライベート CA 証明書を ACM Private CA 内にインポートする (p. 125)• ACM Private CA によって作成されたプライベート証明書の取得 (p. 126)• 認証機関 (CA) 証明書の取得 (p. 127)• プライベート CA での名前制約の適用 (p. 127)

証明書署名リクエスト (CSR) を取得する外部 CA で署名するプライベートの下位 CA を作成した場合は、証明書署名リクエスト (CSR) を取得する必要があります。その後、ファイルに保存します。これを実行するには、以下の手順で説明するように、AWS マネジメントコンソール または AWS CLI を使用します。CSR を検査するには、次の OpenSSLコマンドを使用します。

openssl req -in path_to_CSR_file -text -noout

このコマンドを処理すると、次のような出力が生成されます。CA 拡張機能は TRUE であり、CSR が CA証明書用であることを示しています。

Certificate Request: Data: Version: 0 (0x0) Subject: O=ExampleCompany, OU=Corporate Office, CN=Example CA 1 Subject Public Key Info: Public Key Algorithm: rsaEncryption

Version latest121

Page 127: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CSR を取得する (コンソール): メソッド 1

Public-Key: (2048 bit) Modulus: 00:d4:23:51:b3:dd:01:09:01:0b:4c:59:e4:ea:81: 1d:7f:48:36:ef:2a:e9:45:82:ec:95:1d:c6:d7:c9: 7f:19:06:73:c5:cd:63:43:14:eb:c8:03:82:f8:7b: c7:89:e6:8d:03:eb:b6:76:58:70:f2:cb:c3:4c:67: ea:50:fd:b9:17:84:b8:60:2c:64:9d:2e:d5:7d:da: 46:56:38:34:a9:0d:57:77:85:f1:6f:b8:ce:73:eb: f7:62:a7:8e:e6:35:f5:df:0c:f7:3b:f5:7f:bd:f4: 38:0b:95:50:2c:be:7d:bf:d9:ad:91:c3:81:29:23: b2:5e:a6:83:79:53:f3:06:12:20:7e:a8:fa:18:d6: a8:f3:a3:89:a5:a3:6a:76:da:d0:97:e5:13:bc:84: a6:5c:d6:54:1a:f0:80:16:dd:4e:79:7b:ff:6d:39: b5:67:56:cb:02:6b:14:c3:17:06:0e:7d:fb:d2:7e: 1c:b8:7d:1d:83:13:59:b2:76:75:5e:d1:e3:23:6d: 8a:5e:f5:85:ca:d7:e9:a3:f1:9b:42:9f:ed:8a:3c: 14:4d:1f:fc:95:2b:51:6c:de:8f:ee:02:8c:0c:b6: 3e:2d:68:e5:f8:86:3f:4f:52:ec:a6:f0:01:c4:7d: 68:f3:09:ae:b9:97:d6:fc:e4:de:58:58:37:09:9a: f6:27 Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha256WithRSAEncryption c5:64:0e:6c:cf:11:03:0b:b7:b8:9e:48:e1:04:45:a0:7f:cc: a7:fd:e9:4d:c9:00:26:c5:6e:d0:7e:69:7a:fb:17:1f:f3:5d: ac:f3:65:0a:96:5a:47:3c:c1:ee:45:84:46:e3:e6:05:73:0c: ce:c9:a0:5e:af:55:bb:89:46:21:92:7b:10:96:92:1b:e6:75: de:02:13:2d:98:72:47:bd:b1:13:1a:3d:bb:71:ae:62:86:1a: ee:ae:4e:f4:29:2e:d6:fc:70:06:ac:ca:cf:bb:ee:63:68:14: 8e:b2:8f:e3:8d:e8:8f:e0:33:74:d6:cf:e2:e9:41:ad:b6:47: f8:2e:7d:0a:82:af:c6:d8:53:c2:88:a0:32:05:09:e0:04:8f: 79:1c:ac:0d:d4:77:8e:a6:b2:5f:07:f8:1b:e3:98:d4:12:3d: 28:32:82:b5:50:92:a4:b2:4c:28:fc:d2:73:75:75:ff:10:33: 2c:c0:67:4b:de:fd:e6:69:1c:a8:bb:e8:31:93:07:35:69:b7: d6:53:37:53:d5:07:dd:54:35:74:50:50:f9:99:7d:38:b7:b6: 7f:bd:6c:b8:e4:2a:38:e5:04:00:a8:a3:d9:e5:06:38:e0:38: 4c:ca:a9:3c:37:6d:ba:58:38:11:9c:30:08:93:a5:62:00:18: d1:83:66:40

CSR を取得する (コンソール): メソッド 1ACM Private CA の プライベート CA を作成する (p. 53)ステップに従い、[成功] ダイアログボックスを開いたままにした場合には、この手順を使用します。

CSR を取得するには (コンソール): メソッド 1

1. ACM Private CA がプライベート CA の作成に成功したらすぐに、[今すぐ始める] を選択します。ACMPrivate CA コンソールは CSR を返します。後でこのステップに戻ることができます。

2. [ファイルへの CSR のエクスポート] を選択し、これをローカルに保存します。3. [次へ] を選択します。4. プライベート CA 証明書に署名する (p. 123)の手順に従います。

CSR を取得する (コンソール): メソッド 2ACM Private CA の プライベート CA を作成する (p. 53)のステップに従い、[成功] ダイアログボックスを閉じた場合には、この手順を使用します。

Version latest122

Page 128: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CSR の取得 (AWS CLI)

CSR を取得するには (コンソール): メソッド 2

1. 続行する準備ができたら、AWS Certificate Manager コンソールを開き、左側のナビゲーションペインで [プライベート CA] を選択します。

2. リストからプライベート CA を選択します。3. [アクション] メニューで [CA 証明書のインポート] を選択します。ACM Private CA コンソールは CSR

を返します。4. [ファイルへの CSR のエクスポート] を選択し、これをローカルに保存します。5. [次へ] を選択します。6. プライベート CA 証明書に署名する (p. 123)の手順に従います。

CSR の取得 (AWS CLI)AWS Command Line Interface を使用して CSR を取得するには、この手順を使用します。

CSR を取得するには (AWS CLI)

1. get-certificate-authority-csr コマンドを使用して、プライベート CA に証明書署名リクエスト (CSR) を取得します。CSR を画面に送信するには、--output text オプションを使用して各行の末尾からCR/LF 文字を削除します。CSR をファイルに送信するには、リダイレクトオプション (>) を使用して、ファイル名を指定します。

aws acm-pca get-certificate-authority-csr \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--output text

2. プライベート CA 証明書に署名する (p. 123)の手順に従います。

プライベート CA 証明書に署名するACM Private CA を使用してプライベート CA を作成 (p. 53)し、証明書署名リクエスト (CSR) を取得 (p. 121)した後で、CSR を外部 X.509 インフラストラクチャにインポートする必要があります。プライベート CA 証明書を作成して署名するには、中間 CA またはルート CA を使用します。署名することで、組織内のプライベート CA のアイデンティティを確認します。このプロセスが完了したら、「プライベート CA 証明書を ACM Private CA 内にインポートする (p. 125)」の手順に従います。

Important

• X.509 インフラストラクチャおよびその中の CA 階層の詳細は、このドキュメントでは扱いません。詳細については、「プライベート CA 証明書の作成と署名 (p. 130)」を参照してください。

• プライベート CA の有効期間は、プライベート CA 証明書の作成時に指定した有効期間によって決まります。[有効期間の開始時刻] フィールドと [有効期間の終了時刻] フィールドを設定します。ACM Private CA は、定義した期間を強制する以外には CA の有効期間を制限しません。

• 実質的に失効しない CA 証明書を作成する必要がある場合は、[有効期間の終了時刻] フィールドに特殊な値 99991231235959Z を設定します。これは一般的なプラクティスとしてはお勧めしません。

通常、署名済み証明書は base64 でエンコードされた PEM ファイルまたは文字列として返されます。その例は以下のとおりです。証明書が別の形式でエンコードされている場合は、PEM に変換する必要があります。形式を変換するには、さまざまな OpenSSL コマンドを使用できます。

Version latest123

Page 129: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 証明書に署名する

-----BEGIN CERTIFICATE-----MIIDRzCCA............................9YFbLXtPgZooy2IgZ------END CERTIFICATE------

OpenSSL x509 コマンドを使用すると、PEM 形式の署名済み証明書のコンテンツを表示できます。

openssl x509 -in path_to_certificate_file -text -noout

このコマンドで出力される証明書は、次の例のようになります。

Certificate: Data: Version: 3 (0x2) Serial Number: 4122 (0x101a) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Washington, L=Seattle, O=Example Company, OU=Corp, CN=www.example.com/[email protected] Validity Not Before: Mar 29 19:28:43 2018 GMT Not After : Mar 26 19:28:43 2028 GMT Subject: O=Example Company, OU=Corporate Office, CN=Example Company CA 1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:d4:23:51:b3:dd:01:09:01:0b:4c:59:e4:ea:81: 1d:7f:48:36:ef:2a:e9:45:82:ec:95:1d:c6:d7:c9: 7f:19:06:73:c5:cd:63:43:14:eb:c8:03:82:f8:7b: c7:89:e6:8d:03:eb:b6:76:58:70:f2:cb:c3:4c:67: ea:50:fd:b9:17:84:b8:60:2c:64:9d:2e:d5:7d:da: 46:56:38:34:a9:0d:57:77:85:f1:6f:b8:ce:73:eb: f7:62:a7:8e:e6:35:f5:df:0c:f7:3b:f5:7f:bd:f4: 38:0b:95:50:2c:be:7d:bf:d9:ad:91:c3:81:29:23: b2:5e:a6:83:79:53:f3:06:12:20:7e:a8:fa:18:d6: a8:f3:a3:89:a5:a3:6a:76:da:d0:97:e5:13:bc:84: a6:5c:d6:54:1a:f0:80:16:dd:4e:79:7b:ff:6d:39: b5:67:56:cb:02:6b:14:c3:17:06:0e:7d:fb:d2:7e: 1c:b8:7d:1d:83:13:59:b2:76:75:5e:d1:e3:23:6d: 8a:5e:f5:85:ca:d7:e9:a3:f1:9b:42:9f:ed:8a:3c: 14:4d:1f:fc:95:2b:51:6c:de:8f:ee:02:8c:0c:b6: 3e:2d:68:e5:f8:86:3f:4f:52:ec:a6:f0:01:c4:7d: 68:f3:09:ae:b9:97:d6:fc:e4:de:58:58:37:09:9a: f6:27 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 3D:5B:CC:96:FA:A5:91:37:2A:C9:97:22:F8:AF:10:A7:4E:E1:A0:6A X509v3 Authority Key Identifier: keyid:0D:CE:76:F2:E3:3B:93:2D:36:05:41:41:16:36:C8:82:BC:CB:F8:A0

X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Digital Signature, Certificate Sign, CRL Sign Signature Algorithm: sha256WithRSAEncryption 7e:4b:7c:ca:31:b2:66:25:eb:99:26:91:e2:77:1b:7c:2c:a5: d5:e4:ab:c3:98:2a:a2:d7:d9:3b:4a:89:27:cd:94:5c:50:fb: 59:00:9b:13:56:08:da:87:3c:50:e4:eb:f9:b3:35:92:f8:72: d9:11:f0:1e:f3:3b:2e:f5:42:12:de:46:ce:36:ab:f7:b9:2f: 7e:dd:50:47:49:ad:a6:ee:f6:67:b3:c6:2f:6c:7a:fe:16:9c: 47:41:81:18:cd:ff:4e:b9:66:8b:ed:04:7a:d0:ce:cb:f3:88: c8:89:20:68:6a:2f:6c:3d:60:56:cb:5e:d3:e0:66:8a:32:d8:

Version latest124

Page 130: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 証明書をインポートする

88:19

プライベート CA 証明書を ACM Private CA 内にインポートする

プライベート CA を作成 (p. 53)し、証明書署名リクエスト (CSR) を取得 (p. 121)して CA 証明書に署名 (p. 123)した後で、証明書を ACM Private CA 内にインポートする必要があります。証明書の署名とインポートが終了したら、プライベート CA を使用して信頼済み SSL/TLS 証明書の発行と取り消しができます。これにより、組織内部のユーザー、アプリケーション、コンピュータ、およびその他のデバイス間で信頼できる通信が可能になります。証明書はパブリックには信頼されません。

プライベート CA 証明書の署名に使用した中間 CA またはルート CA の証明書と、以前の証明書が含まれている証明書チェーンも取得する必要があります。チェーンを作成するには、ルート証明書 (ある場合) と下位証明書を連結して 1 つのファイルにします。これには cat コマンド (Linux) を使用できます。各証明書は、先行する 1 つの証明書を直接認証する必要があります。この例には 3 つの証明書が含まれていますが、PKI インフラストラクチャ内の証明書の数はこれより増加または減少する場合があります。

Note

チェーンは PEM 形式にする必要があります。

-----BEGIN CERTIFICATE----- Base64-encoded intermediate CA certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded intermediate CA certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Base64-encoded root or intermediate CA certificate -----END CERTIFICATE-----

プライベート CA 証明書のインポート (コンソール)AWS マネジメントコンソール を使用して、プライベート CA 証明書をインポートできます。

CA 証明書をインポートするには (コンソール)

1. コンソールで [Import a signed certificate authority (CA) certificate (署名済み認証期間 (CA) 証明書をインポートする)] ページがまだ開いている場合は、ステップ 7 にジャンプしてください。それ以外の場合は、次のステップを続行します。

2. AWS アカウントにサインインし、ACM Private CA コンソール (https://console.aws.amazon.com/acm-pca/home) を開きます。

3. プライベート CA を選択し ます。4. リストからプライベート CA を選択します。5. [アクション] メニューで、[CA 証明書のインポート] を選択します。6. [次へ] を選択します。7. [証明書本文] で、署名済みプライベート CA 証明書をテキストボックス内にコピーするか、ファイル

からインポートします。8. [証明書チェーン] で、証明書チェーンをテキストボックス内にコピーするか、ファイルからインポー

トします。

Version latest125

Page 131: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA 証明書のインポート (AWS CLI)

9. [次へ] を選択します。10. [Confirm and Import (確認してインポート)] を選択し、プライベート CA 証明書をインポートします。

プライベート CA 証明書のインポート (AWS CLI)開始する前に、署名済み CA 証明書と証明書チェーンが PEM 形式ファイル内にあることを確認します。

CA 証明書をインポートするには (AWS CLI)

import-certificate-authority-certificate コマンドを使用して、プライベート CA 証明書を ACM Private CA にインポートします。

aws acm-pca import-certificate-authority-certificate \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--certificate file://C:\example_ca_cert.pem \--certificate-chain file://C:\example_ca_cert_chain.pem

ACM Private CA によって作成されたプライベート証明書の取得

ACM Private CA API と AWS CLI を使用して、プライベート証明書を発行できます。その場合は、AWSCLI または ACM Private CA API を使用して証明書を取得できます。ACM を使用してプライベート CA を作成し、証明書をリクエストした場合、ACM を使用して証明書および暗号化されたプライベートキーをエクスポートできます。詳細については「プライベート証明書のエクスポート」を参照してください。

get-certificate コマンドを使用してプライベート証明書を取得します。また、GetCertificate オペレーションを使用することもできます。<CR><LF> ペアを使用せずに証明書を出力するには、--output text オプションを使用します。

Note

証明書を取り消す場合は、get-certificate コマンドを使用して 16 進数形式のシリアル番号を取得します。また、監査レポートを作成して 16 進数シリアル番号を取得することもできます。詳細については、「プライベート CA の監査報告書の作成 (p. 33)」を参照してください。

aws acm-pca get-certificate \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--certificate-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012/\certificate/6707447683a9b7f4055627ffd55cebcc \--output text

このコマンドは、base64 でエンコードされた PEM 形式の証明書と証明書チェーンを出力します。

-----BEGIN CERTIFICATE-----...Base64-encoded certificate...-----END CERTIFICATE---------BEGIN CERTIFICATE-----...Base64-encoded certificate...-----END CERTIFICATE---------BEGIN CERTIFICATE-----

Version latest126

Page 132: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA 証明書の取得

...Base64-encoded certificate...-----END CERTIFICATE----

認証機関 (CA) 証明書の取得ACM Private CA API および AWS CLI を使用してプライベート認証機関 (CA) の CA 証明書を取得できます。get-certificate-authority-certificate コマンドを実行します。また、GetCertificateAuthorityCertificate オペレーションを呼び出すこともできます。<CR><LF>ペアを使用せずに証明書を出力するには、--output text オプションを使用します。

aws acm-pca get-certificate-authority-certificate \--certificate-authority-arn arn:aws:acm-pca:region:account:\certificate-authority/12345678-1234-1234-1234-123456789012 \--output text

このコマンドは、base64 でエンコードされた PEM 形式の証明書と証明書チェーンを出力します。

-----BEGIN CERTIFICATE-----...Base64-encoded certificate...-----END CERTIFICATE---------BEGIN CERTIFICATE-----...Base64-encoded certificate...-----END CERTIFICATE----

プライベート CA での名前制約の適用名前の制約は、インターネットパブリックキーインフラストラクチャ (PKI) 標準 RFC 5280 で定義されています。これらの制約により、CA 管理者は証明書のサブジェクト名を制限できます。管理者は、プライベート CA から発行された証明書で許可または禁止する名前を制御できます。たとえば、「project1.corp」などのプライベートドメイン名が許可される場合があります。しかし、「project2.corp」などの別のプライベートドメイン名は、別の内部プロジェクト用に予約されている可能性があります。同様に、「example.com」や「*.com」などのパブリック DNS 名は拒否できます。詳細については、RFC5280 の「名前の制約」セクションを参照してください。

ACM Private CA は、CA 証明書に含まれる名前制約を適用します。ただし、ACM Private CA によって 発行された CA 証明書には、名前の制約を含めることはできません。プライベート CA 階層に名前制約を適用するには、名前制約を持つ CA 証明書の発行をサポートする外部 CA を使用して、AWS マネージド型CA 証明書に署名します。次に、その証明書を ACM Private CA にインポートします。名前制約は、プライベート CA が発行する証明書によって継承されるようになりました。

Note

外部 CA の作成または取得の手順については、このガイドの対象外です。

名前制約は、ダウンストリーム証明書サブツリーで許可または除外できる名前を定義します。名前制約を適用すると、下位の CA 管理者が許可されたスコープ外のドメインまたはホストの証明書を発行できなくなります。

ACM Private CA では、次の名前形式の名前制約がサポートされています。

• IPAddress

• DirectoryName

• UniformResourceIdentifier

Version latest127

Page 133: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

名前制約ポリシーの例

• EmailAddress

• DNSName

ACM Private CA は、次のサポートされていない名前フォームのいずれかに名前の制約を適用するように構成された証明書をインポートしません。

• OtherName

• X400Address

• RegisteredID

• EDIPartyName

名前制約ポリシーの例次の各例には、名前制約のセットを定義するスタブ証明書ポリシーが含まれています。例には、証明書の発行に関する結果の制限事項の説明も含まれています。次の一般的なルールが適用されます。

• 名前の制約は、許可されたサブツリー、除外されたサブツリー、またはその両方として記述されます。• 許可されたサブツリーおよび除外されたサブツリーには、一致するパターンが含まれており、空であ

る可能性があります。permitted サブツリーが空の場合、そのフォームのすべての名前が拒否されます。同様に、excluded サブツリーが空の場合、そのフォームのすべての名前が許可されます。

• 名前フォームがリストされていない場合は、そのフォーム内のすべての名前を使用できます。• 1 つの名前フォームに制約を配置しても、他の名前フォームには影響しません。

許可されたサブツリーのみ

nameConstraints=critical,permitted;DNSName:.privateDNSName:.localDNSName:.corpUniformResourceIdentifier:

結果: DNS 名は、「.private」、「.local」、「.corp」に一致する場合にのみ許可されます。一致するパターンがないため、UniformResourceIdentifier フォームの名前は拒否されます。サポートされているリストに記載されていないフォームのすべての名前を使用できます。

除外されたサブツリーのみ

nameConstraints=critical,excluded;DNSName:.example.comDNSName:.local

結果: DNS 名は「.example.com」または「.local」に一致する場合に拒否されます。サポートされているリストに記載されていないフォームのすべての名前を使用できます。

許可されたサブツリー および除外されたサブツリー

nameConstraints=critical,permitted;DNSName:.privateDNSName:.localDNSName:.corpnameConstraints=critical,excluded;

Version latest128

Page 134: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

名前制約ポリシーの例

DNSName:.secret.corpDNSName:.example.com

結果: 「.private」または「.local」に一致する DNS 名が許可されます。「.corp」に一致する DNS 名は、「.secret.corp」とも一致しない限り許可されます。「.example.com」に一致する DNS 名が拒否されます。サポートされているリストに記載されていないフォームのすべての名前を使用できます。

チェーン内の 2 つの CA 証明書で指定される、許可されたサブツリーのみRoot CA:nameConstraints=critical,permitted;DNSName:.privateDNSName:.localDNSName:.corp

Subordinate CA:nameConstraints=critical,permitted;DNSName:sub.privateDNSName:a.b.local

結果: DNS 名は「sub.private」または「a.b.local」に一致する場合に許可されます。「.corp」に一致するDNS 名は拒否されます。サポートされているリストに記載されていないフォームのすべての名前を使用できます。

チェーン内の 2 つの CA 証明書で指定される、除外されたサブツリーのみRoot CA:nameConstraints=critical,excluded;DNSName:foo.privateDNSName:foo.exampleSubordinate CA:nameConstraints=critical,excluded;DNSName:bar.privateDNSName:.exampleIPAddress:0.0.0.0/0

結果: DNS 名は、「foo.private」、「bar.private」、「.example」に一致しない限り許可されます。一致するパターンがすべての IP アドレスと一致するため、IPAddress フォームの名前は拒否されます。サポートされているリストに記載されていないフォームのすべての名前を使用できます。

Version latest129

Page 135: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CSR の署名

トラブルシューティングAWS Certificate Manager Private Certificate Authority を使用する際に問題がある場合は、以下のトピックを参照してください。

トピック• プライベート CA 証明書の作成と署名 (p. 130)• CRL バケットの作成を許可するように Amazon S3 を設定する (p. 130)• 自己署名 CA 認定の取り消し (p. 130)• Amazon S3 アクセス許可と CRL バケット (p. 130)• 例外処理 (p. 131)

プライベート CA 証明書の作成と署名プライベート CA を作成したら、CSR を取得し、X.509 インフラストラクチャで中間 CA またはルートCA に送信する必要があります。お客様の CA は、CSR を使用してプライベート CA 証明書を作成し、その証明書に署名してからお客様に返します。

残念ながら、プライベート CA 証明書の作成と署名に関連する問題について具体的なアドバイスをすることはできません。X.509 インフラストラクチャおよびその中の CA 階層の詳細は、このドキュメントでは扱いません。

CRL バケットの作成を許可するように Amazon S3を設定する

Amazon S3 ブロックパブリックアクセス (バケット設定) がアカウントで強制されている場合、プライベート CA が CRL バケットを作成できないことがあります。このような場合は、[Amazon S3] 設定を確認してください。詳細については、「Amazon S3 ブロックパブリックアクセスを使用する」を参照してください。

自己署名 CA 認定の取り消し自己署名 CA 認定を取り消すことはできません。代わりに、CA を削除する必要があります。

Amazon S3 アクセス許可と CRL バケットACM Private CA と IAM プリンシパルの両方に、CRL に指定する Amazon S3 バケットへの書き込みアクセス許可が必要です。呼び出しを行う IAM プリンシパルにバケットへの書き込みアクセス許可がない場合、例外がスローされます。これを通知するには、Amazon CloudWatch で MisconfiguredCRLBucketメトリクスのアラームを設定します。詳細については、「ACM プライベート CA へのアクセス権を設定する」および「サポートされる CloudWatch メトリクス」をを参照してください。

Version latest130

Page 136: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

例外処理

この例外が発生した場合は、Amazon S3 アカウントで [新しいアクセスコントロールリスト (ACL) によって付与されたバケットおよびオブジェクトへのパブリックアクセスをブロックする] 設定オプションが選択されていないことを確認します。詳細については、「S3 バケットのパブリックアクセス設定を編集する方法」を参照してください。また、CRL が作成された後に S3 アクセス許可を誤って変更した場合、CRL を予想どおりに更新できないことがあります。

例外処理ACM Private CA コマンドは、いくつかの原因で失敗する場合があります。各例外とその解決に関する推奨事項については、以下の表を参照してください。

ACM Private CA の例外

ACM Private CA によって返された例外

説明 推奨事項

AccessDeniedException 指定されたコマンドを使用するために必要なアクセス許可が、プライベート CA によって呼び出し側アカウントに委任されていません。

ACM Private CA でのアクセス許可の委任については、「ACM への証明書の更新アクセス許可の割り当て (p. 69)」を参照してください。

InvalidArgsException 証明書の作成または更新リクエストが、無効なパラメータを使用して行われました。

コマンドの各マニュアルを参照して、入力パラメータが有効であることを確認します。新しい証明書を作成する場合は、リクエストされた署名アルゴリズムが CA のキータイプで使用できることを確認してください。

InvalidStateException 関連付けられたプライベート CAが ACTIVE 状態ではないため、証明書を更新できません。

[プライベート CA を復元します (p. 67)] を試みます。プライベート CA が復元期間外にある場合、CA を復元できないため、証明書を更新できません。

LimitExceededException 各認証機関 (CA) には、発行できる証明書のクォータがあります。指定された証明書に関連付けられているプライベート CA がクォータに達しました。詳細については、「クォータ (p. 2)」を参照してください。

AWS サポートセンターに連絡して、クォータの引き上げをリクエストしてください。

MalformedCSRException ACM Private CA に送信された証明書署名要求 (CSR) を、検証または検証できません。

CSR が正しく生成され、設定されていることを確認します。

OtherException 内部エラーにより、リクエストに失敗しました。

コマンドを再度実行してみます。問題が解決しない場合は、AWS サポートセンターに連絡してください。

RequestFailedException AWS 環境内のネットワークの問題により、リクエストが失敗しました。

リクエストを再実行してください。問題が解決しない場合は、Amazon VPC (VPC) 設定を確認してください。

Version latest131

Page 137: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

例外処理

ACM Private CA によって返された例外

説明 推奨事項

ResourceNotFoundException 証明書を発行したプライベートCA は削除済みであり、存在しません。

別のアクティブ CA に新しい証明書をリクエストします。

ThrottlingException リクエストされた API アクションは、クォータを超過したため、失敗しました。

発行するコールが、ACMPrivate CA サービスクォータ (p. 2)で許可された数を超えていないことを確認します。ThrottlingExceptionエラーは、クォータを超過した状態ではなく、一時的な状態が発生したためにも発生することがあります。このエラーが発生し、発行したコールがクォータを超過していない場合、リクエストを再試行してください。

クォータに達した場合、増加をリクエストすることができます。詳細については、「API リクエストのクォータ (p. 3)」を参照してください。

ValidationException リクエストの入力パラメータが正しくフォーマットされていないか、ルート証明書の有効期間が、リクエストされた証明書の有効期間より前に終了します。

コマンドの入力パラメータの構文要件と、CA のルート証明書の有効期間を確認します。有効期間の変更については、「プライベート CA の更新 (p. 61)」を参照してください 。

Version latest132

Page 138: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

非対称キー暗号

用語と概念次の用語と概念は、AWS Certificate Manager Private Certificate Authority (ACM Private CA) で作業する際に役立ちます。

トピック• 非対称キー暗号 (p. 133)• 基本制約のパス長 (p. 133)• 認証機関 (p. 134)• 認証機関証明書 (p. 134)• CA の深さ (p. 135)• CA 証明書 (p. 135)• 証明書の署名 (p. 135)• 証明書のパス (p. 135)• ドメインネームシステム (p. 135)• ドメイン名 (p. 136)• エンドエンティティ証明書 (p. 136)• プライベート CA (p. 137)• プライベート証明書 (p. 137)• パブリックキーインフラストラクチャ (PKI) のセットアップ (p. 138)• ルート CA (p. 138)• ルート証明書 (p. 138)• Secure Sockets Layer (SSL) (p. 139)• 安全な HTTPS (p. 139)• 自己署名証明書 (p. 139)• SSL サーバー証明書 (p. 139)• Transport Layer Security (TLS) (p. 139)• 信頼 (p. 139)• X.500 識別名 (p. 140)

非対称キー暗号非対称暗号化では、異なっていても数学的に関連しているキーを使用して、コンテンツの暗号化と復号を行います。キーの 1 つはパブリックで、X.509 v3 証明書で使用できます。もう 1 つのキーはプライベートで、安全に保存されます。X.509 証明書は、ユーザー、コンピュータ、その他のリソース (証明書件名) のアイデンティティをパブリックキーにバインドします。

プライベート CA 証明書とプライベート CA から発行された証明書は X.509 SSL/TLS 証明書です。これらの証明書は、ユーザー、サービス、アプリケーション、コンピュータ、またはその他のデバイスのアイデンティティを、証明書に埋め込まれているパブリックキーにバインドします。バインドされたプライベートキーは、AWS により安全に保存されます。

基本制約のパス長基本制約のパス長は、CA の下に存在する CA 階層の最大 CA の深さ (p. 135) を定義する CA 証明書の証明書拡張です。たとえば、パス長の制約が 0 の CA は、下位 CA を持つことはできませんパス長の制約が

Version latest133

Page 139: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

認証機関

1 の CA は、その下に最大 1 つのレベルの下位 CA を持つことができます。RFC 5280 では、これを「有効な証明書パスでこの証明書に続く自己発行でない中間証明書の最大数」と定義しています。

認証機関認証機関 (CA) は、デジタル証明書を発行し、必要に応じて、取り消します。最も一般的なタイプの証明書は ISO X.509 規格に基づくものです。X.509 証明書は、証明書のサブジェクトのアイデンティティを確認し、そのアイデンティティをパブリックキーにバインドします。サブジェクトは、ユーザー、アプリケーション、コンピュータ、またはその他のデバイスです。CA は証明書に署名するために、コンテンツをハッシュし、そのハッシュを証明書のパブリックキーに関連するプライベートキーで暗号化します。サブジェクトのアイデンティティを確認する必要があるクライアントアプリケーション (ウェブブラウザなど) は、パブリックキーを使用して証明書の署名を復号します。次に証明書のコンテンツをハッシュし、ハッシュした値と復号した署名を比較して一致するかどうかを確認します。キーペアの詳細については、「非対称キー暗号 (p. 133)」を参照してください。証明書の署名の詳細については、「証明書の署名 (p. 135)」を参照してください。

ACM Private CA を使用してプライベート CA を作成し、このプライベート CA を使用して証明書を発行できます。プライベート CA は、組織内で使用するプライベート SSL/TLS 証明書のみを発行します。詳細については、「プライベート証明書 (p. 137)」を参照してください。プライベート CA を使用するには、事前に証明書が必要です。詳細については、「認証機関証明書 (p. 134)」を参照してください。

認証機関証明書認証機関 (CA) 証明書では、CA のアイデンティティを確認し、これを証明書内のパブリックキーにバインドします。

ACM Private CA を使用して、プライベートルート CA またはプライベート下位 CA を作成し、それぞれがCA 証明書によって裏付けられます。下位 CA 証明書は、信頼のチェーンの上位の別の CA 証明書によって署名されます。ただし、ルート CA の場合、証明書は自己署名です。また、外部ルート権限 (オンプレミスでホストされているなど) を確立することもできます。その後、ルート権限を使用して、ACM Private CAによってホストされる下位ルート CA 証明書に署名できます。

次の例では、ACM Private CA X.509 CA 証明書内の一般的なフィールドを示します。CA 証明書の場合、CA: フィールドの Basic Constraints 値は TRUE に設定します。

Certificate: Data: Version: 3 (0x2) Serial Number: 4121 (0x1019) Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Washington, L=Seattle, O=Example Company Root CA, OU=Corp, CN=www.example.com/[email protected] Validity Not Before: Feb 26 20:27:56 2018 GMT Not After : Feb 24 20:27:56 2028 GMT Subject: C=US, ST=WA, L=Seattle, O=Examples Company Subordinate CA, OU=Corporate Office, CN=www.example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c0: ... a3:4a:51 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: F8:84:EE:37:21:F2:5E:0B:6C:40:C2:9D:C6:FE:7E:49:53:67:34:D9 X509v3 Authority Key Identifier:

Version latest134

Page 140: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

CA の深さ

keyid:0D:CE:76:F2:E3:3B:93:2D:36:05:41:41:16:36:C8:82:BC:CB:F8:A0

X509v3 Basic Constraints: critical CA:TRUE X509v3 Key Usage: critical Digital Signature, CRL Sign Signature Algorithm: sha256WithRSAEncryption 6:bb:94: ... 80:d8

CA の深さCA 階層内の証明書の数は、ルート CA から始まり、下位 CA に移動します。ルートは 1 つとしてカウントされ、各レベルの親 CA から子へのステップごとに、追加の証明書がカウントされます。たとえば、ルート CA とルートから直接発行された エンドエンティティ 証明書のみを持つ信頼チェーンの深さ (パス長) は 2 です。信頼チェーンの下位 CA ごとに、深さが 1 つ増加します。1 つの下位 CA と エンドエンティティ 証明書を持つルート CA の深さは 3 です。

CA 証明書認証機関を識別します。CA 証明書には、基本制約フラグと呼ばれる特別な拡張が含まれている必要があります。証明書を発行するために証明書を使用できるようにするには、このフラグを true に設定する必要があります。

証明書の署名デジタル署名は、証明書上の暗号化されたハッシュです。署名は、証明書データの整合性を確認するために使用します。プライベート CA は、可変サイズの証明書コンテンツに SHA256 などの暗号化ハッシュ関数を使用して署名を作成します。このハッシュ関数は、効果的に偽造不可能な固定サイズのデータ文字列を生成します。この文字列はハッシュと呼ばれます。次に CA は、プライベートキーを使用してハッシュ値を暗号化し、暗号化したハッシュを証明書に連結します。

クライアントアプリケーションは、署名済みの証明書を検証するために、CA パブリックキーを使用して署名を復号します。次に、クライアントは CA で使用したのと同じ署名アルゴリズムを使用して、証明書の残りに対してハッシュを計算します。CA で使用する署名アルゴリズムが証明書に表示されていることを確認してください。計算したハッシュ値と復号したハッシュ値が同じであれば、証明書は改ざんされていません。

証明書のパス証明書に依存するクライアントは、エンドエンティティ 証明書から信頼されたルートへのパスが存在することを検証します。クライアントは、パス上の各証明書が有効である (失効していない) ことを確認します。また、証明書の有効期限が切れていない、整合性 (改ざんまたは変更されていない)、証明書の制約が適用されているかどうかも確認します。

ドメインネームシステムドメインネームシステム (DNS) は、コンピュータおよびインターネットやプライベートネットワークに接続するその他のリソースの階層的な分散命名方式です。DNS では、主に aws.amazon.com などの文字形式のドメイン名を、192.0.2.0 形式の数値 IP (インターネットプロトコル) アドレスに変換します。

Version latest135

Page 141: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ドメイン名

ドメイン名ドメイン名は、ドメインネームシステム (DNS) により IP アドレスに変換できる、www.example.com などのテキスト文字列です。インターネットを含むコンピュータネットワークでは、テキスト名ではなく IPアドレスが使用されます。ドメイン名は、個別のラベルをピリオドで区切って構成します。

TLD

1 番右のラベルは最上位ドメイン (TLD) と呼ばれます。一般的な例には、.com、.net、.edu などがあります。また、一部の国で登録されたエンティティの TLD は国名の略であり、国コードと呼ばれます。たとえば、英国は .uk、ロシアは .ru、フランスは .fr です。国コードを使用する場合、登録されたエンティティの種類を識別するために、TLD の第 2 レベルの階層がよく使用されます。たとえば、.co.uk というTLD は、英国の営利事業を識別します。

Apex ドメイン

apex ドメイン名には最上位ドメインが含まれ、そこで拡張されます。国コードを含むドメイン名の場合、apex ドメインには、登録されたエンティティのタイプを識別するコードとラベル (ある場合) が含まれます。apex ドメインには、サブドメインは含まれません (次の段落を参照)。www.example.com では、apex ドメインの名前は example.com です。www.example.co.uk では、apex ドメインの名前は example.co.uk です。apex の代わりによく使用されるその他の名前には、base、bare、root、rootapex、zone apex があります。

サブドメイン

サブドメイン名は apex ドメイン名の前に付き、ピリオドでドメイン名から区切られるとともに、相互にも区切られます。最も一般的なサブドメイン名は www ですが、任意の名前を付けることができます。また、サブドメイン名には複数のレベルを含めることができます。たとえば、jake.dog.animals.example.com で、サブドメインは jake、dog、animals の順になります。

FQDN

完全修飾ドメイン名 (FQDN) は、ネットワークまたはインターネットに接続されるコンピュータ、ウェブサイト、またはその他のリソースの完全な DNS 名です。たとえば、aws.amazon.com は Amazon WebServices の FQDN です。FQDN には、最上位ドメインまでのすべてのドメインが含まれます。たとえば、[subdomain1].[subdomain2]...[subdomainn].[apex domain].[top–level domain] はFQDN の一般的な形式を表します。

PQDN

完全修飾されていないドメイン名は、部分修飾ドメイン名 (PQDN) と呼ばれ、あいまいです。[subdomain1.subdomain2.] などの名前は、ルートドメインを特定できないため、PQDN です。

登録

ドメイン名を使用する権限は、ドメイン名レジストラによって委任されます。通常、レジストラは、Internet Corporation for Assigned Names and Numbers (ICANN) によって認定されます。さらに、レジストリと呼ばれる他の組織が TLD データベースを維持します。ドメイン名をリクエストすると、レジストラは適切な TLD レジストリに情報を送信します。レジストリはドメイン名を割り当て、TLD データベースを更新して、情報を WHOIS に公開します。通常は、ドメイン名を購入する必要があります。

エンドエンティティ証明書エンドエンティティ 証明書は、サーバー、インスタンス、コンテナ、デバイスなどのリソースを識別します。CA 証明書とは異なり、エンドエンティティ 証明書は証明書の発行に使用できません。エンドエン

Version latest136

Page 142: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

プライベート CA

ティティ 証明書に関するその他の一般的な用語は、「クライアント」または「サブスクライバー」証明書です。ACM Private CA ドキュメントでは エンドエンティティ 証明書という用語を使用します。

プライベート CAプライベートネットワーク内または組織内 (パブリックインターネットではない) で使用する証明書を作成(発行) します。

プライベート証明書ACM Private CA 証明書は、組織内で使用できるプライベート SSL/TLS 証明書です。これらの証明書を使用して、クライアント、サーバー、アプリケーション、サービス、デバイス、ユーザーなどのリソースを識別します。安全な暗号化された通信チャネルを確立する場合、各リソースは次のような証明書と暗号化手法を使用してそのアイデンティティを別のリソースに対して証明します。内部の API エンドポイント、ウェブサーバー、VPN ユーザー、IoT デバイス、およびその他多くのアプリケーションでは、プライベート証明書を使用して、安全なオペレーションに必要な暗号化された通信チャネルを確立します。デフォルトでは、プライベート証明書はパブリックに信頼されません。内部管理者は、プライベート証明書を信頼するように明示的にアプリケーションを設定し、証明書を配布する必要があります。

Certificate: Data: Version: 3 (0x2) Serial Number: e8:cb:d2:be:db:12:23:29:f9:77:06:bc:fe:c9:90:f8 Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=WA, L=Seattle, O=Example Company CA, OU=Corporate, CN=www.example.com Validity Not Before: Feb 26 18:39:57 2018 GMT Not After : Feb 26 19:39:57 2019 GMT Subject: C=US, ST=Washington, L=Seattle, O=Example Company, OU=Sales, CN=www.example.com/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00...c7 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Authority Key Identifier: keyid:AA:6E:C1:8A:EC:2F:8F:21:BC:BE:80:3D:C5:65:93:79:99:E7:71:65

X509v3 Subject Key Identifier: C6:6B:3C:6F:0A:49:9E:CC:4B:80:B2:8A:AB:81:22:AB:89:A8:DA:19 X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 CRL Distribution Points:

Full Name: URI:http://NA/crl/12345678-1234-1234-1234-123456789012.crl

Signature Algorithm: sha256WithRSAEncryption 58:32:...:53

Version latest137

Page 143: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

パブリックキーインフラストラクチャ (PKI) のセットアップ

パブリックキーインフラストラクチャ (PKI) のセットアップ

パブリックキーインフラストラクチャ (PKI) は、デジタル証明書の作成、発行、管理、配布、使用、保存、および取り消しができる包括的なシステムです。PKI は、ユーザー、ハードウェア、ソフトウェア、ポリシー、ドキュメント、および手順で構成されます。ACM Private CA の場合、PKI の目的はプライベート証明書を管理することです。ACM Private CA は以下を実装します。

パブリックキー証明書

プライベート CA は、組織内のユーザー、サービス、アプリケーション、コンピュータ、およびその他のデバイスのアイデンティティを確認するための証明書を発行します。詳細については、「プライベート証明書 (p. 137)」を参照してください。

証明書リポジトリ

プライベート CA は、それが発行したすべての証明書を保存します。証明書は、当然のことながら、ACMPrivate CA リポジトリから削除することができます。

証明書の取り消し

ACM Private CA では、証明書を取り消すことができます。信頼できなくなった証明書は、認証機関から取り消す必要があります。証明書は、いくつかの理由で有効期間が終了する前に取り消すことができます。一般的な理由としては、キーの侵害、オペレーションの終了、所属の変更、権限の取り消しなどが挙げられます。プライベート CA の作成時に、CA で証明書の取り消しをサポートするかどうかを指定します。CA で取り消しをサポートする場合は、監査レポートをリクエストして、取り消した証明書を確認できます。

キーの保管

CA プライベートキーは、Amazon が所有して管理するハードウェアセキュリティモジュール (HSM) に安全に保管できます。

ルート CAルート CA とは暗号構築ブロックで、証明書を発行できる信頼のルートのことです。証明書に署名 (発行)するためのプライベートキーと、ルート CA を識別し、プライベートキーを CA 名にバインドするルート証明書で構成されています。ルート証明書は、環境内の各エンティティの信頼ストアに配布されます。管理者は、信頼する CA のみを含めるように信頼ストアを構築します。管理者は、信頼ストアをオペレーティングシステム、インスタンス、および環境内のエンティティのホストマシンイメージに更新または構築します。リソースが互いに接続しようとシた場合、各エンティティが提示する証明書を確認します。クライアントは、証明書の有効性、および証明書から信頼ストアにインストールされているルート証明書へのチェーンが存在するかどうかを確認します。これらの条件が満たされると、リソース間で「ハンドシェイク」が実行されます。このハンドシェイクは、各エンティティのアイデンティティを暗号的に証明し、それらの間に暗号化された通信チャネル (TLS/SSL) を作成します。

ルート証明書通常、認証機関 (CA) は他の複数の CA と共に階層構造内に存在し、CA 間の親子関係は明確に定義されています。子または下位の CA はその親 CA に証明され、証明書チェーンを造り上げます。階層の最上部にある CA はルート CA とされ、その証明書はルート証明書と呼ばれます。この証明書は通常、自己署名されています。

Version latest138

Page 144: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

Secure Sockets Layer (SSL)

Secure Sockets Layer (SSL)Secure Sockets Layer (SSL) と Transport Layer Security (TLS) は、コンピュータのネットワークにおける通信の安全性を提供する暗号化プロトコルです。TLS は SSL の後続です。両方とも X.509 証明書を使用してサーバーを認証します。どちらのプロトコルも、対称キーのネゴシエーションを使用して、クライアントとサーバー間でやり取りされるデータを暗号化します。

安全な HTTPSHTTPS とは、SSL/TLS 経由の HTTP であり、すべての主要なブラウザとサーバーにサポートされるHTTP の安全な形式です。すべての HTTP リクエストとレスポンスは、ネットワーク経由で送信される前に暗号化されます。HTTPS は、HTTP プロトコルに対称、非対称、および X.509 証明書ベースの暗号化を組み合わせた手法を採用しています。HTTPS は、開放型システム間相互接続 (OSI) モデルで HTTP アプリケーション層の下位と TCP トランスポート層の上位に暗号化されたセキュリティ層を挿入することで動作します。このセキュリティ層は、Secure Sockets Layer (SSL) プロトコルまたは Transport LayerSecurity (TLS) プロトコルを使用します。

自己署名証明書上位の CA ではなく、発行者によって署名された証明書。CA が維持する安全なルートから発行された証明書とは異なり、自己署名証明書は自身のルートで動作するため、大きな制限があります。自己署名証明書はワイヤー暗号化での提供には使用できるものの、アイデンティティの確認はできず、取り消しもできません。セキュリティの観点からは受け入れられません。しかし、生成が容易で、専門知識やインフラストラクチャを必要とせず、多くのアプリケーションがそれらを受け入れるために、組織により使用されます。自己署名証明書の発行には、何の制御もありません。有効期限の日付を確認する方法が無いため、これを使う組織は、証明書の有効期限切れによって使用不能に陥るリスクが大きくなります。

SSL サーバー証明書HTTPS トランザクションは、サーバーを認証するためにサーバー証明書を要求します。サーバー証明書とは、証明書のパブリックキーを証明書の件名にバインドする X.509 v3 データ構造です。SSL/TLS 証明書は、認証機関 (CA) によって署名されています。これには、サーバーの名前、有効期間、パブリックキー、署名アルゴリズムなどが含まれます。

Transport Layer Security (TLS)「Secure Sockets Layer (SSL) (p. 139)」を参照してください。

信頼ウェブブラウザがウェブサイトのアイデンティティを信頼するために、ウェブサイトの証明書がブラウザによって検証できる必要があります。しかし、ブラウザは CA ルート証明書と呼ばれるほんのわずかな証明書のみを信頼します。認証機関 (CA) と呼ばれる信頼されるサードパーティは、ウェブサイトのアイデンティティを検証し、ウェブサイト運営者に署名されたデジタル証明書を発行します。こうしてブラウザはデジタル署名を確認して、ウェブサイトのアイデンティティを検証します。検証に成功した場合は、ブラウザのアドレスバーにロックアイコンが表示されます。

Version latest139

Page 145: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

X.500 識別名

X.500 識別名X.500 識別名 (DN) は、ACM Private CA が作成した X.509 パブリックキー証明書で、ユーザー、コンピュータ、アプリケーション、サービス、サーバー、その他のデバイスを識別するために使用されます。これには、プライベート証明書とプライベート CA 証明書が含まれます。一般的なフィールドは以下のとおりです。

• organizationName (O) – 証明書を発行した組織または証明書のサブジェクトである組織の名前• organiztionUnit (OU) – 組織内の部署• country (C) – 2 文字の国コード• stateName (S) – カンザスなどの州または県の名前• localityName (L) – シアトルなどの市区町村• commonName (CN) – 証明書のサブジェクトまたは発行者の一般名

Version latest140

Page 146: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

ドキュメント履歴以下の表は、このドキュメントの 2018 年 1 月以降の大きな変更点をまとめたものです。ここに表示されている主要な変更に加えて、その内容の説明と例を向上し、ユーザーから寄せられるフィードバックにも応える目的で、このドキュメントは頻繁に更新されます。重要な変更についての通知を受け取るには、右上隅にあるリンクを使用して、RSS フィードをサブスクライブします。

update-history-change update-history-description update-history-date

専用セキュリティセクションが追加されました (p. 141)

AWS のセキュリティドキュメントは、専用のセキュリティセクションに統合されました。セキュリティの詳細については、「AWS Certificate Manager プライベート認証機関のセキュリティ」を参照してください。

March 26, 2020

VPC エンドポイント(PrivateLink) のサポート (p. 141)

ネットワークセキュリティを強化するために VPC エンドポイント (AWSPrivateLink) の使用に対するサポートが追加されました。詳細については、「ACM プライベート CA VPC エンドポイント(AWS PrivateLink)」を参照してください。

March 26, 2020

テンプレート ARN が監査報告書に追加されました。 (p. 141)

詳細については、「プライベートCA の監査報告書の作成」を参照してください。

March 6, 2020

CloudFormation のサポート (p. 141)

AWS CloudFormation のサポートが追加されました。詳細については、AWS CloudFormation ユーザーガイドの「ACMPCA リソースタイプのリファレンス」を参照してください。

January 22, 2020

CloudWatch イベントの統合 (p. 141)

CA の作成、証明書発行、CRL の作成など、非同期イベント用のCloudWatch イベントとの統合。詳細については、「CloudWatchイベントの使用」を参照してください。

December 23, 2019

FIPS エンドポイント (p. 141) AWS GovCloud (米国東部) および AWS GovCloud (米国西部)に追加された FIPS エンドポイント。ACM PCA エンドポイントの詳しいリストについては、「AWS Certificate Manager プライベート認証機関のエンドポイントとクォータ」を参照してください。

December 13, 2019

タグベースのアクセス許可。 (p. 141)

新しい APITagResource、UntagResource、

November 5, 2019

Version latest141

Page 147: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

および ListTagsForResourceを使用してサポートされるタグベースのアクセス許可。タグベースのコントロールに関する一般的な情報については、「IAM リソースタグを使用した IAM ユーザーおよびロールへのアクセス制御」を参照してください。

名前制約の強制 (p. 141) インポートされた CA 認定にサブジェクト名の制約を適用するためのサポートが追加されました。詳細については、「プライベートCA に名前制約を適用する」を参照してください。

October 28, 2019

新しい証明書テンプレート (p. 141)

AWS Signer によるコード署名用のテンプレートなど、新しい証明書テンプレートが追加されました。詳細については、「テンプレートの使用」を参照してください。

October 1, 2019

CA の計画 (p. 141) ACM PCA を使用した PKI の計画に関する新しいセクションが追加されました。詳細については、「ACM プライベート CA デプロイの計画」を参照してください。

September 30, 2019

リージョンサポートの追加 (p. 141)

AWS アジアパシフィック (香港)リージョンのリージョンサポートが追加されました。サポートされているリージョンの完全なリストについては、「AWS CertificateManager プライベート認証機関のエンドポイントとクォータ」を参照してください。

July 24, 2019

完全プライベート CA 階層のサポートを追加 (p. 141)

ルート CA の作成とホストのサポートにより、外部の親が不要になります。

June 20, 2019

リージョンサポートの追加 (p. 141)

AWS GovCloud (米国西部および米国東部) リージョンに対するリージョンサポートが追加されました。サポートされているリージョンの完全なリストについては、「AWS Certificate Managerプライベート認証機関のエンドポイントとクォータ」を参照してください。

May 8, 2019

Version latest142

Page 148: AWS Certificate Manager Private Certificate …...• プライベート認証機関のセキュリティ (p. 10) • ベストプラクティス (p. 10) • サポートされる

AWS Certificate Manager PrivateCertificate Authority ユーザーガイド

以前の更新

リージョンサポートの追加 (p. 141)

AWS アジアパシフィック (ムンバイとソウル)、米国西部 (北カリフォルニア)、欧州 (パリとストックホルム) 各リージョンのサポートが追加されました。サポートされているリージョンの完全なリストについては、「AWSCertificate Manager プライベート認証機関のエンドポイントとクォータ」を参照してください。

April 4, 2019

証明書の更新ワークフローのテスト (p. 141)

ACM マネージド更新ワークフローの設定を手動でテストできるようになりました。詳細については、「ACM のマネージド更新設定のテスト」を参照してください。

March 14, 2019

リージョンサポートの追加 (p. 141)

AWS 欧州 (ロンドン) リージョンのサポートを追加しました。サポートされているリージョンの完全なリストについては、「AWSCertificate Manager プライベート認証機関のエンドポイントとクォータ」を参照してください。

August 1, 2018

削除された CA を復元する (p. 141)

プライベート CA の復元を使用すると、認証機関 (CA) が削除されてから最大 30 日間、その CA を復元できます。詳細については、「プライベート CA の復元」を参照してください。

June 20, 2018

以前の更新次の表は、2018 年 6 月以前の AWS Certificate Manager Private Certificate Authority ドキュメントのリリース履歴をまとめたものです。

変更 説明 更新日

新規ガイド このリリースで AWS CertificateManager Private CertificateAuthority が導入されました。

2018 年 04 月 4 日

Version latest143