【AWS】AWS Key Management ServiceとRDSの保護について解説します。
あらゆる業界の組織にとって、データのプライバシーは不可欠です。暗号化サービスは、不正アクセスからデータを保護する標準的な方法の1つです。ここでは、AWSの暗号化サービスであるAWS Key Management Service(KMS)と、KMSを使用してRelational Database Service(RDS)に保存しているデータを保護したり、データを暗号化する方法などをご紹介していきます。
■AWS Key Management Service(KMS)
AWS Key Management Service(KMS)は、データの暗号化に使用される暗号化キーであるカスタマーマスターキー(CMK)の作成と管理を容易にするマネージド型サービスです。AWS KMSは、データを暗号化する 他のほとんどの AWSのサービスと統合されています。AWS KMSは、AWS CloudTrailとも統合されており、監査、規制、コンプライアンスのニーズに応じてCMKの使用をログに記録します。
AWS CloudTrail:AWSアカウントのガバナンス、コンプライアンス、運用監査、リスク監査を行うためのサービス。CloudTrailを使用すると、監査証跡を作成でき、これによりロギングと継続的なモニタリングが可能になる。
■Amazon Relational Database Service(RDS)
Amazon Relational Database Service(RDS)とは、AWSが提供するRDBMS(Relational Database Management System)のサービスを指します。サポートされているデータベースエンジンはAmazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle Database、そしてMicrosoft SQL Serverの6種類です。Amazon RDSでは、データベースのインストールやバックアップなどのセットアップをしなくても、データベースが利用できる環境が提供されているため、契約後すぐにAWS上でデータベースを使用することができます。
RDBMS:リレーショナルデータベースを管理するソフトウェア(PostgreSQL、MySQLなど)の総称。クラウド上なので、ラック設置などの物理的な運用はもちろん、RDBMSのインストール作業やパッチ更新、作成後のスペック変更やストレージ容量を増やせるなど、様々な運用において作業が楽になり効率化を図ることが可能。
■AWS KMSを利用する利点
AWSのサービス全体でデータを保護する必要がある場合は、AWS KMSでデータへのアクセスをコントロールする暗号化キーを一元管理することができます。さらに、アプリケーション内のデータを暗号化する必要がある場合は、AWS Encryption SDKの利用が推奨されています。これにより、コード内の対称暗号化キーを簡単に生成、使用、保護できます。非対称キーを使用してデータのデジタル署名または検証を行う必要がある場合は、必要なプライベートキーを作成および管理できます。開発者と増え続けるアプリケーションをサポートするためにスケーラブルなキー管理インフラストラクチャを必要としている場合は、ライセンスコストと運用の負担を軽減できます。規制やコンプライアンスに準拠するためにデータセキュリティを提供する必要がある場合は、データが一貫して保護されていることを容易に証明できます。また、AWS KMSは広範囲にわたる業種および地域的なコンプライアンス体制にも対応しています。
AWS Encryption SDK:ベストプラクティスに基づいて簡単にデータの暗号化・復号を行えるコマンドラインツール。セキュアなアルゴリズムの組み合わせをサポートし、マスターキーのタイプやアルゴリズムの制限が無い、慎重にデザインされレビューされた データフォーマットを採用。
■AWS KMSのキー管理機能
AWS KMSは、データを暗号化する 他のほとんどのAWSのサービスと統合されています。AWS KMSは、AWS CloudTrailとも統合されており、監査、規制、コンプライアンスのニーズに応じてCMKの使用をログに記録し、自分のCMKを作成して管理することができます。
- 以下のキー管理機能を実行できます。
- ・対称CMKと非対称CMKの作成、編集、表示
- ・CMKを有効および無効にする
- ・CMKのキーポリシーと許可の作成、編集、表示
- ・CMKの暗号化マテリアルの自動ローテーションを有効および無効にする
- ・識別、自動化、コスト追跡のためのCMKへのタグ付け
- ・CMKのフレンドリ名であるエイリアスを作成、削除、一覧表示、および更新する
- ・CMKを削除してキーのライフサイクルを完了する
■AWS KMSの暗号化機能を使って、Amazon RDSのデータを保護
あらゆる業界の組織にとって、データのプライバシーは不可欠です。暗号化サービスは、不正アクセスからデータを保護する標準的な方法の1つです。暗号化では正しい復号化キーがないと、データが読み取れないようにデータを変更します。
Amazon RDSはAWSが所有するキーを使用して、デフォルトでデータを暗号化します。デフォルト以外のキーを使用してデータを暗号化することを希望する利用者もいます。そのため、デフォルト以外のキーを使用する場合、堅牢なキーの作成、管理、削除のツールとプロセスがデータセキュリティに不可欠です。こうしたツールとプロセスは、キーの有効期限がデータの可用性に影響することを防ぐのにも役立ちます。
- キーのアクセス許可は、IAMと完全に統合しています。そして、すべてのKMS API呼び出しはAWS CloudTrailへの書き込みを行い、キーの作成、使用、削除の完全な監査証跡を実施しています。
- RDSはすべてのキータイプをサポートしていますが、主にKMSで使用されているのは以下の3 つキータイプがあります。
- ・AWS所有型CMK:AWSアカウントの外部に存在し、AWSが所有および管理
- ・AWS管理型CMK:AWS管理型のキーを作成して全面的に管理
- ・カスタマー管理型CMK:利用者が作成、所有、管理
- サポートされている 3つのオプションのいずれかでCMKを作成したら、そのCMKを使用して署名、検証、暗号化、または復号するデータをAWS KMSに直接送信できます。これらのキーについて、どのユーザーがどのような条件でどのアクションを実行できるかを定義する使用ポリシーを設定できます。
- RDSコンソール画面にて、データベースクラスターを作成ができます。追加の設定セクションで作成したKMSキーを選択し設定が可能です。データベースを暗号化するには、データベースクラスターの作成中にKMSキーを識別する必要があります。このキーはRDSが使用するボリュームに保存されているすべてのデータを暗号化します。暗号化されたデータはKMSキーのアクセス許可がないとアクセスできません。そのアクセス許可がなければ、RDSスナップショットを復元したり、停止したRDSインスタンスを開始しようとしても実行不可となります。
- 暗号化したRDSインスタンスから作成したすべてのデータベーススナップショットは、暗号化を保持し、同じKMSキーで共有します。データベーススナップショットの暗号化に使用するKMSキーにアクセスできる場合にのみ、こうしたスナップショットから新しいデータベースを構築できます。
- RDSスナップショットを作成するには、データベースクラスターインスタンスを選択し、「Actions」、「Take snapshot」の順にクリックし選択します。
- RDSスナップショットを作成したら次の手順に従い、暗号化したRDSスナップショットを他のAWSリージョンにコピーできます。KMSキーはリージョンを構成しているため、スナップショットを別のリージョンにコピーするには、まずコピー先リージョンでKMSキーを作成する必要があります。この新しいキーを使用して、コピー先リージョンのスナップショットを暗号化します。
- 1、まず、目的のリージョンを選択し、そのリージョンにキーを作成します。新しく作成したキーのkey-id値とkey-alias値を記録します。
- 2、現在のRDSスナップショットが存在するリージョンで、RDSコンソールを開きます。
- 3、「Snapshots」 をクリックし、コピーするRDSスナップショットを選択します。「Action」、「Copy Snapshot」の順にクリックします。
- 4、ピー先リージョンを選択し、スナップショットに分かりやすい識別子を付けます。タグ付け戦略に合わせてタグをコピーします。
- 5、「Encryption」 の下で、コピー先リージョンの新しいキーを選択し、「Copy Snapshot」をクリックします。
【AWS KMSのキータイプと管理】
【暗号化した RDS データベースクラスターの作成】
【暗号化したデータベーススナップショット】
【RDSスナップショットの作成】
【暗号化したRDSスナップショットを別のAWSリージョンにコピー】
■まとめ
ここではKMSとRDSについてご紹介しました。データベースも、そのデータ内の暗号化やセキュリティも、システムを成り立たせるには不可欠な要素のひとつです。利用環境や用途においても複数選択ができるため、この機会にRDSとKMSを利用して、快適な環境構築をしていきましょう。