翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
暗号化されていない Amazon RDS DB インスタンスとクラスターを自動的に修正する
作成者: Ajay Rawat (AWS)、Josh Joy (AWS)
概要
このパターンは、AWS Config、AWS Systems Manager ランブック、および AWS Key Management Service (AWS KMS) キーを使用して、Amazon Web Services (AWS) 上の暗号化されていない Amazon Relational Database Service (Amazon RDS) DB インスタンスとクラスターを自動的に修正する方法を示しています。
暗号化された RDS DB インスタンスは、基になるストレージへの不正アクセスからデータを保護することによって、データ保護の追加レイヤーを提供します。Amazon RDS の暗号化を使用して、AWS クラウドにデプロイされるアプリケーションのデータ保護を強化することや、保管時のデータ暗号化に関するコンプライアンスの要件を達成することができます。RDS DB インスタンスの暗号化は作成時に有効にできますが、作成後には有効にできません。ただし、DB インスタンスのスナップショットを作成し、そのスナップショットの暗号化済みコピーを作成して、暗号化されていない RDS DB インスタンスに暗号化を追加できます。その後、暗号化されたスナップショットから DB インスタンスを復元して、元の DB インスタンスの暗号化されたコピーを取得できます。
このパターンでは、AWS Config ルールを使用して RDS DB インスタンスとクラスターを評価します。対応していない Amazon RDS リソースに対して実行するアクションを定義する AWS Systems Manager ランブックと、DB スナップショットを暗号化する AWS KMS キーを使用して修復を行います。次に、サービスコントロールポリシー (SCP) を適用して、暗号化なしで新しい DB インスタンスやクラスターが作成されないようにします。
このパターンのコードは GitHub
前提条件と制限
前提条件
アクティブな AWS アカウント
このパターンの GitHub ソースコードリポジトリ
からコンピュータにダウンロードされたファイル 暗号化されていない RDS DB インスタンスまたはクラスター
RDS DB インスタンスとクラスターを暗号化するための既存の AWS KMS キー
KMS キーリソースポリシーを更新するためのアクセス
AWS アカウントで AWS Config が有効になっている (AWS ドキュメントの「AWS Config の使用の開始」を参照)
制限
RDS DB インスタンスの暗号化は、作成後ではなく、作成時にのみ有効にできます。
暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化されている DB インスタンスのリードレプリカを暗号化しないようにすることはできません。
暗号化されていないバックアップやスナップショットを、暗号化された DB インスタンスに復元することはできません。
Amazon RDS 暗号化は、ほとんどの DB インスタンスクラスで使用できます。例外のリストについては、Amazon RDS ドキュメントの「Amazon RDS リソースの暗号化」を参照してください。
ある AWS リージョンから別のリージョンに暗号化されたスナップショットをコピーするには、コピー先の AWS リージョンの KMS キーを指定する必要があります。これは、KMS キーが、作成される AWS リージョンに固有のものであるためです。
ソーススナップショットはコピープロセス全体で暗号化されたままになります。Amazon RDS は、コピー処理中にエンベロープ暗号化を使用してデータを保護します。詳細については、AWS KMS ドキュメントの「エンベロープ暗号化」を参照してください。
暗号化された DB インスタンスの暗号化を解除することはできません。ただし、暗号化された DB インスタンスからデータをエクスポートし、暗号化されていない DB インスタンスにデータをインポートすることはできます。
KMS キーの削除は、そのキーをもう使用しないことが確実である場合にのみ行ってください。不明な場合は、削除するのではなく、KMS キーを無効化することを検討します。無効化した KMS キーは、後で使用する必要が生じた場合に再度有効化できますが、削除した KMS キーは復元できません。
自動バックアップを保持しない場合、DB インスタンスと同じ AWS リージョンにある自動バックアップが削除されます。DB インスタンスを削除した後は、復元できません。
自動バックアップは、DB インスタンスの削除時に設定した保持期間だけ保持されます。この設定された保持期間は、最終的な DB スナップショットを作成するかどうかにかかわらず発生します。
自動修復が有効になっている場合、このソリューションは同じ KMS キーを持つすべてのデータベースを暗号化します。
アーキテクチャ
下の図は AWS CloudFormation 実装のアーキテクチャを示しています。AWS Cloud Development Kit (AWS CDK) を使用してこのパターンを実装することもできることに注意してください。

ツール
ツール
AWS CloudFormation
では、AWS リソースを自動的にセットアップできます。テンプレートファイルを使用して、リソースのコレクションを 1 つのユニット (スタック) として作成および削除できます。 AWS Cloud Development Kit (AWS CDK)
は、コードでクラウドインフラストラクチャを定義し、使い慣れたプログラミング言語を使用してプロビジョニングするための、ソフトウェア開発フレームワーク (AWS CDK) です。
AWS サービスと機能
AWS Config
は、AWS リソースの設定と他のリソースとの関係を追跡します。また、これらの AWS リソースのコンプライアンスを評価することもできます。このサービスは、AWS リソースを希望の設定と照らし合わせて評価するように設定できるルールを使用します。一般的なコンプライアンスシナリオでは AWS Config マネージドルールセットを使用することも、カスタムシナリオ用に独自のルールを作成することもできます。AWS リソースが準拠していないことが判明した場合は、AWS Systems Manager ランブックを使用して修復アクションを指定し、オプションで Amazon Simple Notification Service (Amazon SNS)トピックを通じてアラートを送信できます。つまり、修復アクションを AWS Config ルールに関連付けて、手動で操作しなくても自動的に実行してコンプライアンス違反リソースに対処できます。自動修復後もリソースがまだ準拠していない場合は、自動修復を再試行するようにルールを設定できます。 Amazon Relational Database Service (Amazon RDS)
を使用して、クラウドでリレーショナルデータベースをセットアップ、運用、スケーリングできます。Amazon RDS の基本構成要素は DB インスタンスです。これは AWS クラウド内の独立したデータベース環境です。Amazon RDS は、さまざまなリレーショナルデータベースのユースケースに合わせて最適化されたインスタンスタイプを選択 できます。インスタンスタイプは、CPU、メモリ、ストレージ、およびネットワーク容量のさまざまな組み合わせで構成され、データベースに適したリソースの組み合わせを柔軟に選択できます。各インスタンスタイプには 1 つ以上のインスタンスサイズが含まれているため、ターゲットワークロードの要件に合わせてデータベースをスケーリングできます。 AWS Key Management Service (AWS KMS)
は、データを暗号化する AWS KMS キーの作成と制御を容易にするマネージドサービスです。KMS キーは、ルートキーの論理表現です。KMS キーには、キー ID、作成日、説明、キーステータスなどのメタデータが含まれます。 「AWS Identity and Access Management (IAM)
」は、AWS リソースへのアクセスを安全に管理し、誰が認証され、使用する権限があるかを制御するのに役立ちます。 サービスコントロールポリシー (SCP) では、組織のすべてのアカウントで使用可能な最大アクセス許可を一元的に制御できます。SCP は、アカウントが組織のアクセスコントロールガイドラインに従っていることを確認するのに役立ちます。SCP は、管理アカウントのユーザーやロールには影響を与えません。SCP は、組織内のメンバーアカウントにのみ影響を与えます。SCP を組織のルートにアタッチする前に、そのポリシーがアカウントに与える影響を徹底的にテストすることを強くお勧めします。代わりに、お客様のアカウントを一度に 1 つずつ、または少なくとも少人数ずつ移動できる組織単位 (OU) を作成し、誤って主要なサービスからユーザーを締め出すことのないようにします。
コード
このパターンのソースコードとテンプレートは、GitHub リポジトリ
「エピック」セクションでは、CloudFormation テンプレートをデプロイするためのステップバイステップの手順について説明します。AWS CDK を使用したい場合は、GitHub リポジトリの README.md ファイル内の手順に従います。
ベストプラクティス
保管時と転送中のいずれもデータ暗号化を有効にします。
すべてのアカウントと AWS リージョンで AWS Config を有効にします。
すべてのリソースタイプの設定変更を記録します。
IAM 認証情報のローテーションを定期的に行います。
AWS Config のタグ付けを活用すると、リソースの管理、検索、フィルタリングが容易になります。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
CloudFormation テンプレートをダウンロードします。 | GitHub リポジトリ | DevOps エンジニア |
CloudFormation スタックを更新する。 |
テンプレートのデプロイに関する詳細については、AWS CloudFormation のドキュメントを参照してください。 | DevOps エンジニア |
CloudFormation パラメータと値を確認してください。 |
| DevOps エンジニア |
リソースを確認します。 | スタックが作成されると、そのステータスは [CREATE_COMPLETE] に変わります。作成したリソース (IAM ロール、AWS Systems Manager ランブック) を CloudFormation コンソールで確認します。 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
KMS キーポリシーを更新します。 |
| DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
非準拠リソースを表示します。 |
AWS Config コンソールに一覧表示される非準拠リソースは、クラスターではなくインスタンスです。修復自動化はインスタンスとクラスターを暗号化し、新しく暗号化されたインスタンスまたは新しく作成されたクラスターを作成します。ただし、同じクラスターに属する複数のインスタンスを同時に修正しないように注意してください。 RDS DB インスタンスまたはボリュームを修正する前に、その RDS DB インスタンスが使用されていないことを確認してください。スナップショットに元のデータが含まれていることを確認するために、スナップショットの作成中に書き込み操作が行われていないことを確認します。修正が実行されるメンテナンスの時間帯を設けることを検討してください。 | DevOps エンジニア |
非準拠のリソースを修復します。 |
| DevOps エンジニア |
RDS DB インスタンスが使用可能であることを確認します。 | 自動化が完了すると、新しく暗号化された RDS DB インスタンスが使用可能になります。暗号化された RDS DB インスタンスには、プレフィックスの後に元の名前が | DevOps エンジニア |
暗号化されていないインスタンスを終了します。 | 修正が完了し、新しく暗号化されたリソースが検証されたら、暗号化されていないインスタンスを終了できます。リソースを終了する前に、新しく暗号化されたリソースが暗号化されていないリソースと一致することを確認してください。 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
SCP を強制します。 | SCP を適用して、future DB インスタンスやクラスターが暗号化なしで作成されないようにします。この目的には GitHub リポジトリ | セキュリティエンジニア |
関連リソース
リファレンス
ツール
ガイドとパターン
追加情報
よくある質問
Q. AWS Config はどのように機能しますか?
A. AWS Config を有効にすると、まずアカウント内に存在するサポートされている AWS リソースが検出され、リソースごとに設定項目が生成されます。AWS Config は、リソースの設定が変更されたときにも設定項目を生成し、設定レコーダーを開始したときからのリソースの設定項目の履歴記録を維持します。デフォルトでは、AWS Config は AWS リージョン内のサポートされているリソースごとに設定項目を作成します。AWS Config でサポートされているすべてのリソースの設定項目を作成したくない場合は、追跡するリソースタイプを指定できます。
Q: AWS Config と AWS Config のルールは AWS Security Hub とどのように関連していますか?
A. AWS Security Hub は、セキュリティとコンプライアンスの態勢管理をサービスとして提供するセキュリティおよびコンプライアンスサービスです。AWS リソースの設定を評価するための主要なメカニズムとして AWS Config と AWS Config ルールを使用しています。AWS Config ルールは、リソースの設定を直接評価するためにも使用できます。Config ルールは、AWS Control Tower や AWS Firewall Manager など、他の AWS サービスでも使用されます。