メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Amazon RDS リソースの暗号化

Amazon RDS DB インスタンスの暗号化オプションを有効にすることで、保管時の Amazon RDS インスタンスとスナップショットを暗号化できます。保管時に暗号化されるデータには、DB インスタンス、自動バックアップ、リードレプリカ、スナップショットの基本的なストレージが含まれます。

Amazon RDS の暗号化されたインスタンスでは、Amazon RDS インスタンスをホストしているサーバーでデータを暗号化するために、業界標準の AES-256 暗号化アルゴリズムを使用します。データが暗号化されると、Amazon RDS はパフォーマンスの影響を最小限に抑えながら、データへのアクセスと復号の認証を透過的に処理します。暗号化を使用するために、データベースのクライアントアプリケーションを変更する必要はありません。

Amazon RDS の暗号化されたインスタンスは、基になるストレージへの不正アクセスからデータを保護することによって、データ保護の追加レイヤーを提供します。Amazon RDS の暗号化を使用して、クラウドにデプロイされるアプリケーションのデータ保護を強化することや、および保管時のデータ暗号化に関するコンプライアンスの要件を達成することができます。

Amazon RDS は、Transparent Data Encryption (TDE) による Oracle または SQL Server の DB インスタンスの暗号化もサポートします。TDE は、保管時の暗号化と組み合わせて使用できますが、TDE と保管時の暗号化を同時に使用すると、データベースのパフォーマンスに若干影響する可能性があります。個々の暗号化方式ごとに異なるキーを管理する必要があります。TDE の詳細については「Oracle Transparent Data Encryption」、「AWS CloudHSM を使用した Amazon RDS Oracle TDE キーの保存」または「Microsoft SQL Server Transparent Data Encryption のサポート」を参照してください。

Amazon RDS リソースを暗号化および復号するために使用されるキーを管理するには、AWS Key Management Service (AWS KMS) を使用します。AWS KMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。AWS KMS を使用して、暗号化キーを作成し、それらのキーの使用方法を制御するポリシーを定義できます。AWS KMS は CloudTrail をサポートしているため、キーの使用を監査して、キーが適切に使用されていることを確認できます。AWS KMS キーは、Amazon RDS と、Amazon Simple Storage Service (Amazon S3)、Amazon Elastic Block Store (Amazon EBS)、Amazon Redshift などのサポートされている AWS サービスの組み合わせで使用できます。AWS KMS をサポートしているサービスの一覧については、『AWS Key Management Service 開発者ガイド』の「サポートされるサービス」を参照してください。

すべてのログ、バックアップ、スナップショットは、Amazon RDS の暗号化されたインスタンス用に暗号化されます。また、Amazon RDS の暗号化されたインスタンスのリードレプリカも、同じリージョンにある場合にマスターインスタンスと同じキーを使用して暗号化されます。マスターとリードレプリカが異なるリージョンにある場合には、このリージョンの暗号化キーを使用して暗号化します。

DB インスタンスの Amazon RDS 暗号化の有効化

新しい DB インスタンスの暗号化を有効にするには、Amazon RDS コンソールにある [Enable encryption] ドロップダウンで [Yes] を選択します。DB インスタンスの作成については、次のいずれかのトピックを参照してください。

注記

create-db-instance AWS CLI コマンドを使用して、暗号化された RDS DB インスタンスを作成するには、--storage-encrypted パラメータを true に設定します。CreateDBInstance API アクションを使用する場合は、StorageEncrypted パラメータを true に設定します。

暗号化された DB インスタンスを作成するときに、暗号化キーとして AWS KMS キー識別子を指定できます。AWS KMS キー識別子を指定しない場合、Amazon RDS は新しい DB インスタンスに対してデフォルトの暗号化キーを使用します。AWS KMS は、AWS アカウント用に Amazon RDS のデフォルトの暗号化キーを作成します。AWS アカウントには、AWS のリージョンごとにデフォルトの暗号化キーがあります。

暗号化された DB インスタンスを作成した場合は、そのインスタンスに暗号キーを変更できません。したがって、暗号化された DB インスタンスを作成する前に、暗号化キーの要件を確認してください。

create-db-instance AWS CLI コマンドを使用して暗号化された RDS DB インスタンスを作成する場合、--kms-key-id パラメータを、DB インスタンスの AWS KMS 暗号化キーの Amazon リソースネーム (ARN) に設定します。Amazon RDS API の CreateDBInstance アクションを使用する場合は、KmsKeyId パラメータを、DB インスタンスの AWS KMS キーの ARN に設定します。

別のアカウントのキーの ARN を使用して、RDS DB インスタンスを暗号化できます。新しい DB インスタンスの暗号化に使用する AWS KMS 暗号化キーを所有する AWS アカウントと同じアカウントを使用して DB インスタンスを作成する場合、指定する AWS KMS キー ID には、キーの ARN の代わりに AWS KMS キーのエイリアスを使用できます。

重要

Amazon RDS が DB インスタンスの暗号化キーにアクセスできなくなった場合 (たとえば、Amazon RDS のキーへのアクセス権が失効した場合など)、暗号化された DB インスタンスは終了状態になり、バックアップからのみ復元できます。データベース内の暗号化されたデータの消失を防ぐために、暗号化された DB インスタンスのバックアップは常に有効にしておくことを強くお勧めします。

Amazon RDS の暗号化されたインスタンスの可用性

Amazon RDS で暗号化されたインスタンスは、現在すべてのデータベースエンジンおよびストレージタイプで使用することができます。Amazon RDS 暗号化は現在、中国 (北京) リージョンでは使用できません。

Amazon RDS 暗号化は、次の DB インスタンスクラスに使用できます。

インスタンスタイプ インスタンスクラス

一般的な目的 (M4) – 現行世代

db.m4.large

db.m4.xlarge

db.m4.2xlarge

db.m4.4xlarge

db.m4.10xlarge

メモリの最適化 (R3) – 現行世代

db.r3.large

db.r3.xlarge

db.r3.2xlarge

db.r3.4xlarge

db.r3.8xlarge

バースト可能 (T2) - 現行世代

db.t2.small

db.t2.medium

db.t2.large

一般的な目的 (M3) – 前の世代

db.m3.medium

db.m3.large

db.m3.xlarge

db.m3.2xlarge

注記

SQL Server の Express Edition を実行している DB インスタンスで保管時の暗号化を使用することはできません。

Amazon RDS 暗号化キーの管理

IAM コンソールで AWS Key Management Service (AWS KMS) を使用して、Amazon RDS の暗号化されたインスタンスで使用されるキーを管理できます。キーに対するフルコントロールの権限が必要な場合は、カスタマー管理型のキーを作成する必要があります。AWS KMS によってプロビジョニングされるデフォルトのキーは、削除、取り消し、またはローテーションすることができません。

AWS CloudTrail を使用することによって、カスタマー管理型のキーを使用して実行されたすべてのアクションの監査ログを表示できます。

重要

暗号化された DB インスタンスのキーを無効にすると、その DB インスタンスに対して読み書きすることができません。Amazon RDS でアクセスできなくなったキーによって暗号化されている DB インスタンスを Amazon RDS が検出した場合、Amazon RDS は DB インスタンスを終了状態にします。終了状態の DB インスタンスは利用できなくなり、データベースの現在の状態は復元できません。この DB インスタンスを復元するには、Amazon RDS の暗号化キーへのアクセスを再び有効にした後、バックアップから DB インスタンスを復元します。

Amazon RDS の暗号化されたインスタンスの制限事項

Amazon RDS の暗号化されたインスタンスには、以下の制限事項があります。

  • Amazon RDS DB インスタンスの暗号化は、DB インスタンスの作成時にのみ有効にすることができます。作成後に暗号化を有効にすることはできません。

    ただし、暗号化されていない DB スナップショットのコピーは暗号化できるので、暗号化されていない DB インスタンスに効果的に暗号化を追加できます。つまり、DB インスタンスのスナップショットを作成し、そのスナップショットの暗号化済みコピーを作成します。この暗号化されたスナップショットから DB インスタンスを復元することで、元の DB インスタンスの暗号化されたコピーを作成できます。詳細については、「DB スナップショットまたは DB クラスタースナップショットのコピー」を参照してください。Aurora DB クラスターの暗号化されたコピーを作成するために、Amazon Aurora DB クラスターのスナップショットを暗号化する必要はありません。暗号化されていない DB クラスタースナップショットから復元するときに KMS 暗号化キーを指定した場合、復元された DB クラスターは指定した KMS 暗号化キーを使用して暗号化されています。

  • 暗号化された DB インスタンスを変更して暗号化を無効にすることはできません。

  • 暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化された DB インスタンスのリードレプリカを暗号化しないことは設定できません。

  • 暗号化されたリードレプリカは、ソース DB インスタンスと同じキーで暗号化する必要があります。

  • 暗号化されていないバックアップやスナップショットを、暗号化された DB インスタンスに復元することはできません。しかし、暗号化されていない Aurora DB クラスターのスナップショットを、暗号化された Aurora DB クラスターに復元できます。ただしこれは、暗号化されていない DB クラスターのスナップショットから復元するときに KMS の暗号化キーを指定した場合です。

  • 暗号化された MySQL DB スナップショットを Aurora DB クラスターに復元することはできません。

  • あるリージョンから別のリージョンに暗号化されたスナップショットをコピーするには、コピー先リージョンの KMS キー識別子を指定する必要があります。これは、KMS 暗号化キーは作成されたリージョンに固有であるためです。

送信元スナップショットはコピープロセス全体で暗号化されたままになります。AWS Key Management Service では、コピー処理中にエンベロープ暗号化を使用してデータを保護します。エンベロープ暗号化の仕組みの詳細については、「エンベロープ暗号化」を参照してください。