

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CA 証明書の有効期限が切れる Amazon RDS および Aurora データベースのインスタンスを検出する
<a name="detect-rds-instances-expiring-certificates"></a>

*Amazon Web Services、Stephen DiCato、Eugene Shifer*

## 概要
<a name="detect-rds-instances-expiring-certificates-summary"></a>

セキュリティのベストプラクティスとして、アプリケーションサーバーとリレーショナルデータベース間で転送中のデータを暗号化することをお勧めします。SSL または TLS を使用して、データベース (DB) インスタンスまたはクラスターへの接続を暗号化できます。これらのプロトコルは、アプリケーションとデータベース間の機密性、完全性、信頼性を確保するのに役立ちます。データベースでは、[認証局 (CA)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificateAuthorities) によって発行され、サーバー ID 検証を実行するために使用されるサーバー証明書を使用します。SSL または TLS は、デジタル署名を検証し、証明書の有効期限が切れていないことを確認することにより、証明書の信頼性を検証します。

では AWS マネジメントコンソール、[Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) と [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) は、証明書の更新を必要とする DB インスタンスに関する通知を提供します。ただし、これらの通知を確認するには、それぞれにログイン AWS アカウント し、それぞれの のサービスコンソールに移動する必要があります AWS リージョン。で組織として管理 AWS アカウント されている多くの で証明書の有効性を評価する必要がある場合、このタスクはより複雑になります[AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)。

このパターンで提供される Infrastructure as Code (IaC) をプロビジョニングすることで、 AWS アカウント または AWS 組織内のすべての Amazon RDS および Aurora DB インスタンスの期限切れの CA 証明書を検出できます。[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) テンプレートは、 AWS Config ルール、 AWS Lambda 関数、および必要なアクセス許可をプロビジョニングします。[スタック](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)として単一のアカウントにデプロイすることも、[スタックセット](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)として AWS 組織全体にデプロイすることもできます。

## 前提条件と制限
<a name="detect-rds-instances-expiring-certificates-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ 単一の AWS アカウントにデプロイする場合:
  + CloudFormation スタックを作成する[アクセス許可](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)があることを確認します。
  + ターゲットアカウントで [を有効にします](https://docs.aws.amazon.com/config/latest/developerguide/getting-started.html) AWS Config 。
  + (オプション) ターゲットアカウントで [を有効にします](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html#securityhub-manual-setup-overview) AWS Security Hub CSPM 。
+  AWS 組織にデプロイする場合:
  + CloudFormation スタックセットを作成する[アクセス許可](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)があることを確認します。
  +  AWS Organizations 統合で Security Hub CSPM [を有効にします](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html#securityhub-orgs-setup-overview)。
  + このソリューションをデプロイするアカウントで [を有効にします](https://docs.aws.amazon.com/config/latest/developerguide/getting-started.html) AWS Config 。
  + を AWS Config および Security Hub CSPM の委任管理者 AWS アカウント として指定します。

**制限事項**
+ Security Hub CSPM が有効になっていない個々のアカウントにデプロイする場合は、 AWS Config を使用して検出結果を評価できます。
+  AWS Config および Security Hub CSPM の委任管理者を持たない組織にデプロイする場合は、個々のメンバーアカウントにログインして結果を表示する必要があります。
+  AWS Control Tower を使用して組織内のアカウントを管理および管理する場合は、 [AWS Control Tower (CfCT) のカスタマイズ](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-overview.html)を使用して、このパターンで IaC をデプロイします。CloudFormation AWS Control Tower コンソールを使用すると、ガードレールから設定ドリフトが作成され、組織単位 (OUs) またはマネージドアカウントを再登録する必要があります。
+ 一部の AWS のサービス は では使用できません AWS リージョン。サービスを利用できるリージョンを確認するには、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」ページを参照し、サービスのリンクを選択してください。

## アーキテクチャ
<a name="detect-rds-instances-expiring-certificates-architecture"></a>

**個人へのデプロイ AWS アカウント**

次のアーキテクチャ図は、単一の 内の AWS リソースのデプロイを示しています AWS アカウント。これは、CloudFormation コンソールから直接 CloudFormation テンプレートを使用して実装されます。Security Hub CSPM が有効になっている場合は、 AWS Config または Security Hub CSPM のいずれかで結果を表示できます。Security Hub CSPM が有効になっていない場合は、 AWS Config コンソールでのみ結果を表示できます。

![\[提供された CloudFormation テンプレートを 1 つのアカウントでデプロイ。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/d34fe1f1-6764-4485-b7a7-04e5861f1e9b/images/0b07133a-d4f8-4d87-8d00-2b5e2c453ece.png)


図表に示す内容は以下のステップです。

1. CloudFormation スタックを作成します。これにより、Lambda 関数と AWS Config ルールがデプロイされます。ルールと関数の両方が、 AWS Config および ログでリソース評価を発行するために必要な AWS Identity and Access Management (IAM) アクセス許可で設定されます。

1. この AWS Config ルールは[検出評価モードで](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config-rules.html#aws-config-rules-evaluation-modes)動作し、24 時間ごとに実行されます。

1. Security Hub CSPM はすべての AWS Config 検出結果を受け取ります。

1. 検出結果は、アカウントの設定に応じて AWS Config、Security Hub CSPM または で表示できます。

** AWS 組織にデプロイする**

次の図は、 AWS Organizations および を通じて管理される複数のアカウントにわたる証明書の有効期限の評価を示しています AWS Control Tower。CfCT を使用して CloudFormation テンプレートをデプロイします。評価結果は、委任管理者アカウントの Security Hub CSPM に一元化されます。図に示す AWS CodePipeline ワークフローは、CfCT デプロイ中に発生するバックグラウンドステップを示しています。

![\[AWS Organizations 内の複数のアカウントに提供された CloudFormation テンプレートのデプロイ。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/d34fe1f1-6764-4485-b7a7-04e5861f1e9b/images/8d870cbb-54cf-43ec-96f2-00730e0134af.png)


図表に示す内容は以下のステップです。

1. CfCT の設定に応じて、管理アカウントで IaC を リポジトリにプッシュするか、IaC の圧縮 (ZIP) ファイルを Amazon Simple Storage Service (Amazon S3) バケットにアップロードします。 AWS CodeCommit 

1. CfCT パイプラインはファイルを解凍し、[cfn-nag](https://github.com/stelligent/cfn_nag) (GitHub) チェックを実行し、CloudFormation スタックセットとしてデプロイします。

1. CfCT マニフェストファイルで指定された設定に応じて、CloudFormation StackSets はスタックを個々のアカウントまたは指定の OU にデプロイします。これにより、Lambda 関数と AWS Config ルールがターゲットアカウントにデプロイされます。ルールと関数の両方が、 AWS Config および ログでリソース評価を発行するために必要な IAM アクセス許可で設定されます。

1. この AWS Config ルールは[検出評価モードで](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config-rules.html#aws-config-rules-evaluation-modes)動作し、24 時間ごとに実行されます。

1. AWS Config は、すべての検出結果を Security Hub CSPM に転送します。

1. Security Hub CSPM の検出結果は、委任管理者アカウントに集約されます。

1. 結果は、委任管理者アカウントの Security Hub CSPM で表示できます。

## ツール
<a name="detect-rds-instances-expiring-certificates-tools"></a>

**AWS のサービス**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および リージョン全体のライフサイクルを通じてリソースを管理するのに役立ちます。
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) は、 内のリソースの詳細ビュー AWS アカウント と設定方法を提供します。リソースがどのように相互に関連しているか、またそれらの構成が時間の経過とともにどのように変化したかを特定するのに役立ちます。An AWS Config [rule](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) は、リソースの理想的な構成設定を定義し、 AWS リソースがルールの条件に準拠しているかどうかを評価 AWS Config できます。
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) は、規範的なベストプラクティスに従って、 AWS マルチアカウント環境のセットアップと管理に役立ちます。[AWS Control Tower (CfCT) のカスタマイズ](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-overview.html)は、 AWS Control Tower ランディングゾーンをカスタマイズし、 AWS ベストプラクティスとの整合性を保つのに役立ちます。カスタマイズは、CloudFormation テンプレートとサービスコントロールポリシー (SCP) で実装されます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) は、作成して一元管理する AWS アカウント 組織に複数の を統合するのに役立つアカウント管理サービスです。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) は、 のセキュリティ状態の包括的なビューを提供します AWS。また、セキュリティ業界標準とベストプラクティスに照らして AWS 環境を確認するのにも役立ちます。

**その他のツール**
+ 「[Python](https://www.python.org/)」は汎用のコンピュータープログラミング言語です。

**コードリポジトリ**

このパターンのコードは、GitHub の「[Detect Amazon RDS instances with expiring CA certificates](https://github.com/aws-samples/config-rds-ca-expiry)」リポジトリで入手できます。

## ベストプラクティス
<a name="detect-rds-instances-expiring-certificates-best-practices"></a>

次のリソースのベストプラクティスに従うことをお勧めします。
+ [を使用した組織単位のベストプラクティス AWS Organizations](https://aws.amazon.com/blogs/mt/best-practices-for-organizational-units-with-aws-organizations/) (AWS クラウド運用と移行ブログ)
+ [AWS Control Tower で を使用して初期基盤を確立するためのガイダンス AWS](https://aws.amazon.com/solutions/guidance/establishing-an-initial-foundation-using-control-tower-on-aws/) (AWS ソリューションライブラリ)
+ [AWS Control Tower リソースの作成と変更に関するガイダンス](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-guidance.html) (AWS Control Tower ドキュメント)
+ [CfCT デプロイに関する考慮事項 ](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-considerations.html)(AWS Control Tower ドキュメント)

## エピック
<a name="detect-rds-instances-expiring-certificates-epics"></a>

### ソリューションとコードを確認する
<a name="review-the-solution-and-code"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| デプロイ戦略を決定します。 | ソリューションとコードを確認して、 AWS 環境にデプロイする方法を決定します。単一のアカウントまたは AWS 組織にデプロイするかどうかを決定します。 | アプリ所有者、AWS 全般 | 
| リポジトリをクローンする。 | 次のコマンドを入力して、「[Detect Amazon RDS instances with expiring CA certificates](https://github.com/aws-samples/config-rds-ca-expiry)」リポジトリのクローンを作成します。<pre>git clone https://github.com/aws-samples/config-rds-ca-expiry.git</pre> | アプリ開発者、アプリオーナー | 
| Python バージョンを検証する。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/detect-rds-instances-expiring-certificates.html) | アプリ開発者、アプリオーナー | 

### 解決策をデプロイする
<a name="deploy-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudFormation のテンプレートをデプロイします。 | CloudFormation テンプレートを AWS 環境にデプロイします。次のいずれかを行います。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/detect-rds-instances-expiring-certificates.html) | アプリ開発者、AWS 管理者、AWS 全般 | 
| デプロイメントを確認する。 | [CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)で、スタックまたはスタックセットが正常にデプロイされていることを確認します。 | AWS 管理者、アプリ所有者 | 

### 検出結果を確認する
<a name="review-the-findings"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  AWS Config ルールの検出結果を表示します。 | Security Hub CSPM で、次の操作を実行して個々の検出結果のリストを表示します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/detect-rds-instances-expiring-certificates.html)Security Hub CSPM で、以下を実行して、グループ化された検出結果の合計のリストを表示します AWS アカウント。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/detect-rds-instances-expiring-certificates.html)結果のリスト AWS Configを表示するには、 AWS Config ドキュメントの[「コンプライアンス情報と評価結果の表示](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_view-compliance.html#evaluate-config_view-compliance-console)」の手順に従います。 | AWS 管理者、AWS システム管理者、クラウド管理者 | 

## トラブルシューティング
<a name="detect-rds-instances-expiring-certificates-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| CloudFormation スタックセットの作成または削除が失敗する |  AWS Control Tower がデプロイされると、必要なガードレールが適用され、 AWS Config アグリゲータとルールの制御が引き受けられます。これには、CloudFormation による直接的な変更の防止が含まれます。関連するすべてのリソースを含め、この CloudFormation テンプレートを適切にデプロイまたは削除するには、CfCT を使用する必要があります。 | 
| CfCT で CloudFormation テンプレートを削除できない | マニフェストファイルで必要な変更を行い、テンプレートファイルを削除した後も CloudFormation テンプレートが残っている場合は、マニフェストファイルに `enable_stack_set_deletion` パラメータが記述されていて、値が `false` に設定されていることを確認します。詳細については、CfCT ドキュメントの「[Delete a stack set](https://docs.aws.amazon.com/controltower/latest/userguide/cfct-delete-stack.html)」を参照してください。 | 

## 関連リソース
<a name="detect-rds-instances-expiring-certificates-resources"></a>
+ [SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) (Amazon RDS ドキュメント)
+ [AWS Config カスタムルール](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html) (AWS Config ドキュメント)