Amazon Aurora リソースの暗号化
Amazon Aurora は Amazon Aurora DB クラスターを暗号化できます。保管時に暗号化されるデータには、DB クラスター、自動バックアップ、リードレプリカ、スナップショット用の基本的なストレージが含まれます。
Amazon Aurora の暗号化された DB クラスターでは、業界スタンダードの AES-256 暗号化アルゴリズムを使用して、Amazon Aurora DB クラスターをホストしているデータをサーバーで暗号化します。データが暗号化されると、Amazon Aurora はパフォーマンスの影響を最小限に抑えながら、データへのアクセスと復号の認証を透過的に処理します。暗号化を使用するために、データベースのクライアントアプリケーションを変更する必要はありません。
注記
暗号化された/されていない DB のクラスターでは、AWS リージョン間でレプリケートする場合でも、ソースとリードレプリカ間で送信されるデータは暗号化されます。
トピック
Amazon Aurora リソースの暗号化の概要
Amazon Aurora の暗号化された DB クラスターは、基になるストレージへの不正アクセスからデータを保護することによって、データ保護の追加レイヤーを提供します。Amazon Aurora の暗号化を使用して、クラウドにデプロイされるアプリケーションのデータ保護を強化することや、保管時のデータ暗号化に関するコンプライアンスの要件を達成することができます。
Amazon Aurora の暗号化された DB クラスターでは、すべての DB インスタンス、ログ、バックアップ、スナップショットが暗号化されます。Amazon Aurora で暗号化されたクラスターのリードレプリカも暗号化できます。Amazon Aurora は AWS Key Management Service キーを使用して、これらのリソースを暗号化します。KMS キーの詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS keys」と「AWS KMS key 管理」を参照してください。DB クラスター内の各 DB インスタンスは、DB クラスターと同じ KMS キーを使用して暗号化されます。暗号化されたスナップショットをコピーする場合、ソーススナップショットの暗号化に使用した KMS キーとは異なる KMS キーを使用して、ターゲットスナップショットを暗号化できます。
AWS マネージドキー を使用することも、カスタマーマネージドキーを作成することもできます。Amazon Aurora リソースを暗号化および復号するために使用する カスタマーマネージドキーを管理するには、AWS Key Management Service (AWS KMS) を使用します。AWS KMS は、セキュアで可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けにスケールされたキー管理システムを提供します。AWS KMS を使用して、カスタマーマネージドキーを作成し、このカスタマーマネージドキーの使用方法を制御するポリシーを定義できます。AWS KMS は CloudTrail をサポートしているため、KMS キーの使用を監査して、カスタマーマネージドキーが適切に使用されていることを確認できます。カスタマーマネージドキーは、Amazon Aurora およびサポートされている AWS のサービス (Amazon S3、Amazon EBS、Amazon Redshift など) で使用できます。AWS KMS と統合しているサービスのリストについては、「AWS サービス統合
Amazon Aurora DB クラスターの暗号化
新しい DB クラスターを暗号化するには、コンソールで [Enable encryption] (暗号を有効化) を選択します。DB クラスターの作成については、「Amazon Aurora DB クラスターの作成」を参照してください。
create-db-cluster AWS CLI コマンドを使用して、暗号化された DB クラスターを作成するには、--storage-encrypted
パラメータを設定します。CreateDBCluster API オペレーションを使用する場合は、StorageEncrypted
パラメータを true に設定します。
暗号化された DB クラスターを作成するときは、カスタマーマネージドキーまたは Amazon Aurora の AWS マネージドキー を選択して、DB クラスターを暗号化できます。カスタマーマネージドキーのキー識別子を指定しない場合、Amazon Aurora は新しい DB クラスターに AWS マネージドキー を使用します。Amazon Aurora は、Amazon Aurora 用の AWS マネージドキー を AWS アカウントに作成します。AWS アカウントには、AWS リージョンごとに Amazon Aurora の AWS マネージドキー が別々にあります。
KMS キーの詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS keys」を参照してください。
暗号化された DB クラスターを作成したら、その DB クラスターで使用されている KMS キーを変更することはできません。したがって、暗号化された DB クラスターを作成する前に、KMS キーの要件を必ず確認してください。
AWS CLI create-db-cluster
コマンドを使用して、カスタマーマネージドキーで暗号化された DB クラスターを作成する場合は、--kms-key-id
パラメータを KMS キーの任意のキー識別子に設定します。Amazon RDS API CreateDBInstance
オペレーションを使用する場合は、KmsKeyId
パラメータを KMS キーの任意のキー識別子に設定します。カスタマーマネージドキーを別の AWS アカウントで使用するには、キー ARN またはエイリアス ARN を指定します。
重要
KMS キーを無効にすると、Amazon Aurora は DB インスタンス用の KMS キーにアクセスできなくなる場合があります。このような場合、暗号化された DB クラスターはすぐに inaccessible-encryption-credentials-recoverable
状態になります。DB クラスターは 7 日間この状態のままであり、その間、インスタンスは停止します。この間に DB クラスターに対して行われた API コールは成功しない場合があります。DB クラスターを復旧するには、KMS キーを有効にして、この DB インスタンスを再起動します。AWS Management Console から KMS キーを有効にします。AWS CLI コマンド start-db-cluster または AWS Management Console を使用して DB クラスターを再起動します。
DB クラスターが 7 日以内に復旧されない場合、終了 inaccessible-encryption-credentials
状態になります。この状態では、DB クラスターは使用できなくなり、バックアップからのみ DB クラスターを復元できます。データベース内の暗号化されたデータの消失を防ぐために、暗号化された DB クラスターのバックアップは常に有効にしておくことを強くお勧めします。
DB クラスターの作成中に、Aurora は呼び出し元のプリンシパルが KMS キーにアクセスできるかどうかを確認し、DB クラスターの存続期間全体に使用する KMS キーから許可を生成します。呼び出し元のプリンシパルの KMS キーへのアクセス権を取り消しても、実行中のデータベースには影響しません。スナップショットを別のアカウントにコピーするなど、クロスアカウントシナリオで KMS キーを使用する場合は、KMS キーを他のアカウントと共有する必要があります。別の KMS キーを指定せずにスナップショットから DB クラスターを作成すると、新しいクラスターはソースアカウントの KMS キーを使用します。DB クラスターの作成後にキーへのアクセス権を取り消しても、クラスターには影響しません。ただし、キーを無効にすると、そのキーで暗号化されたすべての DB クラスターに影響します。これを防ぐには、スナップショットのコピー操作時に別のキーを指定します。
DB クラスターの暗号化が有効になっているかの判別
AWS Management Console、AWS CLI、または RDS API を使用して、DB クラスターの保存時の暗号化が有効になっているか判断できます。
DB クラスターの保存時の暗号化が有効になっているかどうかを判別するため。
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
チェックして詳細を表示したい DB クラスターの名前を選択します。
-
Configuration (設定)タブを選択してEncryption (暗号化)値をチェックします。
Enable (有効)またはNot enable (無効)のいずれかが表示されています。
AWS CLI を使用して DB クラスターの保存時の暗号化が有効になっているか判断するには、以下のオプションで describe-db-clusters コマンドを呼び起こします:
-
--db-cluster-identifier
- DB クラスターの名前。
次の例では、mydb
DB クラスターの保存時の暗号化に関して TRUE
または FALSE
のいずれかを返すクエリを使用しています。
例
aws rds describe-db-clusters --db-cluster-identifier
mydb
--query "*[].{StorageEncrypted:StorageEncrypted}" --output text
Amazon RDS API を使用して DB クラスターの保管時の暗号化が有効であるかを判断するには、以下のパラメータで DescribeDBClusters オペレーションを呼び起こします。
-
DBClusterIdentifier
- DB クラスターの名前。
Amazon Aurora の暗号化の可用性
Amazon Aurora 暗号化は、現在 を除く、すべてのデータベースエンジンおよびストレージタイプに使用できます。
注記
Amazon Aurora 暗号化は、db.t2.micro DB インスタンスクラスでは使用できません。
転送中の暗号化
AWS では、すべてのタイプの DB インスタンス間において安全でプライベートな接続を提供しています。さらに、一部のインスタンスタイプでは、基盤となる Nitro System ハードウェアのオフロード機能を使用して、インスタンス間の転送中のトラフィックを自動的に暗号化します。この暗号化では、256 ビットの暗号化による関連データによる認証暗号化 (AEAD) アルゴリズムを使用します。ネットワークのパフォーマンスには影響しません。インスタンス間でこの追加の転送中トラフィック暗号化をサポートするには、次の要件を満たす必要があります。
-
インスタンスは、次のインスタンスタイプを使用します。
-
汎用: M6i、M6id、M6in、M6idn、M7g
-
メモリ最適化: R6i、R6id、R6in、R6idn、R7g、X2idn、X2iedn、X2iezn
-
-
各インスタンスは同じ AWS リージョンにあるものとします。
-
各インスタンスは同じ VPC 内、あるいはピア接続された VPC 内にあり、トラフィックは仮想ネットワークのデバイスもしくはサービス (ロードバランサーや Transit Gateway など) を通過しないものとします。
基盤となる EC2 インスタンスおよび関連する暗号化の詳細については、「Amazon EC2 ユーザーガイド」の「転送時の暗号化」を参照してください。
Amazon Aurora の暗号化された DB クラスターの制限事項
Amazon Aurora の暗号化された DB クラスターには、以下の制限事項があります。
-
暗号化された DB クラスターの暗号化をオフにすることはできません。
-
暗号化されていない DB クラスターの暗号化されたスナップショットを作成することはできません。
-
暗号化された DB クラスターのスナップショットは、DB クラスターと同じ KMS キーを使用して暗号化する必要があります。
-
暗号化されていない DB クラスターを暗号化された DB クラスターに変換することはできません。ただし、暗号化されていないスナップショットを暗号化された Aurora DB クラスターに復元することはできます。それを行うには、暗号化されていないスナップショットから復元するときに、KMS キーを指定します。
-
暗号化されていない Aurora DB クラスターから、暗号化された Aurora レプリカを作成することはできません。暗号化された Aurora DB クラスターから、暗号化されていない Aurora レプリカを作成することはできません。
-
ある AWS リージョンから別のリージョンに暗号化されたスナップショットをコピーするには、送信先 AWS リージョンの KMS キーを指定する必要があります。これは、KMS キーが、作成される AWS リージョンに固有のものであるためです。
ソーススナップショットはコピープロセス全体で暗号化されたままになります。Amazon Auroraは、コピー処理中にエンベロープ暗号化を使用してデータを保護します。エンベロープ暗号化の仕組みの詳細については、AWS Key Management Service デベロッパーガイドの「エンベロープ暗号化」を参照してください。
-
暗号化された DB クラスターの暗号化を解除することはできません。ただし、暗号化された DB クラスターからデータをエクスポートし、暗号化されていない DB クラスターにデータをインポートすることはできます。