Amazon RDS リソースの暗号化 - Amazon Relational Database Service

Amazon RDS リソースの暗号化

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

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

注記

暗号化された/されていない DB インスタンスのでは、AWS リージョン間でレプリケートする場合でも、ソースとリードレプリカ間で送信されるデータは暗号化されます。

Amazon RDS リソースの暗号化の概要

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

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

Amazon RDS の暗号化された DB インスタンスでは、すべてのログ、バックアップ、スナップショットが暗号化されます。Amazon RDS は、AWS KMS カスタマーマスターキー (CMK) を使用して、これらのリソースを暗号化します。CMK の詳細については、AWS Key Management Service デベロッパーガイドの「カスタマーマスターキー (CMK)」を参照してください。暗号化されたスナップショットをコピーする場合、ソースのスナップショットの暗号化に使用した CMK とは異なる CMK を使用して、ターゲットのスナップショットを暗号化できます。

また、Amazon RDS の暗号化されたインスタンスのリードレプリカは、同じ AWS リージョンにある場合にプライマリ DB インスタンスと同じ CMK を使用して暗号化される必要があります。プライマリ DB インスタンスとリードレプリカが異なる AWS リージョンにある場合には、その AWS リージョンの CMK を使用してリードレプリカを暗号化します。

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

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

新しい DB インスタンスの暗号化を有効にするには、Amazon RDS コンソールで [Enable encryption] を選択します。DB インスタンスの作成については、「Amazon RDS DB インスタンスの作成」を参照してください。

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

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

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

AWS CLI create-db-instance コマンドを使用して、カスタマー管理の CMK で暗号化された DB インスタンスを作成する場合は、--kms-key-id パラメータを CMK の任意のキー識別子に設定します。Amazon RDS API CreateDBInstance オペレーションを使用する場合は、KmsKeyId パラメーターを CMK の任意のキー識別子に設定します。カスタマー管理の CMK を別の AWS アカウントで使用するには、キー ARN またはエイリアス ARN を指定します。

重要

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

Amazon RDS の暗号化の可用性

Amazon RDS 暗号化は、現在すべてのデータベースエンジンおよびストレージタイプに使用できます。

Amazon RDS 暗号化は、ほとんどの DB インスタンスクラスで使用できます。次の表は、Amazon RDS 暗号化をサポートしていない DB インスタンスクラスの一覧です。

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

汎用 (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

メモリ最適化 (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

バースト可能 (T2)

db.t2.micro

注記

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

Amazon RDS の暗号化された DB instancesの制限事項

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

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

    ただし、暗号化されていないスナップショットのコピーは暗号化できるので、暗号化されていない DB インスタンスに効果的に暗号化を追加できます。つまり、DB インスタンスのスナップショットを作成し、そのスナップショットの暗号化済みコピーを作成します。この暗号化されたスナップショットから DB インスタンスを復元することで、元の DB インスタンスの暗号化されたコピーを作成できます。詳細については、「snapshotのコピー」を参照してください。

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

  • 暗号化されていない DB インスタンスの暗号化されたスナップショットを作成することはできません。

  • 暗号化された DB インスタンスのスナップショットは、DB インスタンスと同じ CMK を使用して暗号化する必要があります。

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

  • 暗号化するリードレプリカは、両方が同じ AWS リージョンにある場合、ソース DB インスタンスと同じ CMK で暗号化する必要があります。

  • 暗号化されていないバックアップやスナップショットを、暗号化された DB インスタンスに復元することはできません。

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

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

  • 暗号化された DB インスタンスの暗号化を解除することはできません。ただし、暗号化された DB インスタンスからデータをエクスポートし、暗号化されていない DB インスタンスにデータをインポートすることはできます。