Amazon Aurora リソースの暗号化 - Amazon Aurora

Amazon Aurora リソースの暗号化

Amazon AuroraAmazon 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 の暗号化された DB クラスターの制限事項」を参照してください。

Amazon Aurora は、これらのリソースを暗号化するために AWS Key Management Service キーを使用します。AWS KMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。AWS マネージドキー を使用することも、カスタマーマネージドキーを作成することもできます。

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

Amazon Aurora リソースの暗号化と復号に使用するカスタマーマネージドキーを管理するには、AWS Key Management Service (AWS KMS) を使用します。

AWS KMS を使用して、カスタマーマネージドキーを作成し、これらのカスタマーマネージドキーの使用を制御するポリシーを定義できます。AWS KMS は CloudTrail をサポートしているため、KMS キーの使用状況を監査して、カスタマーマネージドキーが適切に使用されていることを確認できます。カスタマーマネージドキーは、Amazon Aurora およびサポートされている AWS のサービス (Amazon S3、Amazon EBS、Amazon Redshift など) で使用できます。AWS KMS と統合しているサービスのリストについては、「AWS サービス統合」を参照ください。KMS キーの使用に関する考慮事項:

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

    DB クラスターの暗号化キーを変更する必要がある場合は、クラスターの手動スナップショットを作成し、スナップショットのコピー中に暗号化を有効にします。詳細については、re:Post 情報センターの記事を参照してください。

  • 暗号化されたスナップショットをコピーする場合、ソーススナップショットの暗号化に使用した KMS キーとは異なる KMS キーを使用して、ターゲットスナップショットを暗号化できます。

  • スナップショットを共有する AWS アカウントの AWS マネージドキー を使って暗号化されたスナップショットを共有することはできません。

  • DB クラスター内の各 DB インスタンスは、DB クラスターと同じ KMS キーを使用して暗号化されます。

  • Amazon Aurora で暗号化されたクラスターのリードレプリカも暗号化できます。

重要

KMS キーを無効にすると、Amazon Aurora は DB インスタンス用の KMS キーにアクセスできなくなる場合があります。このような場合、暗号化された DB クラスターは inaccessible-encryption-credentials-recoverable 状態になります。DB クラスターは 7 日間この状態のままであり、その間、インスタンスは停止します。この間に DB クラスターに対して行われた API コールは成功しない場合があります。DB クラスターを復旧するには、KMS キーを有効にして、この DB インスタンスを再起動します。AWS Management Console、AWS CLI、または RDS API から KMS キーを有効にします。AWS CLI コマンド start-db-cluster または AWS Management Console を使用して DB クラスターを再起動します。

inaccessible-encryption-credentials-recoverable 状態は、停止できる DB クラスターにのみ適用されます。この回復可能な状態は、クロスリージョンリードレプリカを持つクラスターなど、停止できないインスタンスには適用されません。詳細については、「Aurora DB クラスターの停止と起動に関する制約事項」を参照してください。

DB クラスターが 7 日以内に復旧されない場合、終了 inaccessible-encryption-credentials 状態になります。この状態では、DB クラスターは使用できなくなり、バックアップからのみ DB クラスターを復元できます。データベース内の暗号化されたデータの消失を防ぐために、暗号化された DB クラスターのバックアップは常に有効にしておくことを強くお勧めします。

DB クラスターの作成中に、Aurora は呼び出し元のプリンシパルが KMS キーにアクセスできるかどうかを確認し、DB クラスターの存続期間全体に使用する KMS キーから許可を生成します。呼び出し元のプリンシパルの KMS キーへのアクセス権を取り消しても、実行中のデータベースには影響しません。スナップショットを別のアカウントにコピーするなど、クロスアカウントシナリオで KMS キーを使用する場合は、KMS キーを他のアカウントと共有する必要があります。別の KMS キーを指定せずにスナップショットから DB クラスターを作成すると、新しいクラスターはソースアカウントの KMS キーを使用します。DB クラスターの作成後にキーへのアクセス権を取り消しても、クラスターには影響しません。ただし、キーを無効にすると、そのキーで暗号化されたすべての DB クラスターに影響します。これを防ぐには、スナップショットのコピー操作時に別のキーを指定します。

KMS キーの詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS keys」と「AWS KMS key 管理」を参照してください。

Amazon Aurora DB クラスターの暗号化

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

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

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

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

DB クラスターの暗号化が有効になっているかの判別

AWS Management Console、AWS CLI、または RDS API を使用して、DB クラスターの保存時の暗号化が有効になっているか判断できます。

DB クラスターの保存時の暗号化が有効になっているかどうかを判別するため。
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. チェックして詳細を表示したい DB クラスターの名前を選択します。

  4. Configuration (設定)タブを選択してEncryption (暗号化)値をチェックします。

    Enable (有効)またはNot enable (無効)のいずれかが表示されています。

    DB クラスターの保存時の暗号化のチェック

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 グローバルネットワーク上の AWS リージョンを流れるすべてのデータは、AWS の安全な施設を離れる前に、物理層で自動的に暗号化されます。AZ 間のトラフィックはすべて暗号化されます。追加的な暗号化レイヤーでは、このセクションに記載されているもの以外にも、保護が提供されている場合があります。

Amazon VPC ピアリングおよび Transit Gateway のクロスリージョンピアリング接続によって得られる暗号化

Amazon VPC およびTransit Gateway のピアリング接続を使用する、すべてのクロスリージョントラフィックは、リージョンからの送信時に自動的に一括で暗号化されます。すべてのトラフィックにおける物理レイヤーには、そのトラフィックが AWS の保護された設備を離れる前に、追加の暗号化レイヤーが自動的に提供されています。

インスタンス間での暗号化

AWS では、すべてのタイプの DB インスタンス間において安全でプライベートな接続を提供しています。さらに、一部のインスタンスタイプでは、基盤となる Nitro System ハードウェアのオフロード機能を使用して、インスタンス間の転送中のトラフィックを自動的に暗号化します。この暗号化では、256 ビットの暗号化による関連データによる認証暗号化 (AEAD) アルゴリズムを使用します。ネットワークのパフォーマンスには影響しません。インスタンス間でこの追加の転送中トラフィック暗号化をサポートするには、次の要件を満たす必要があります。

  • インスタンスは、次のインスタンスタイプを使用します。

    • 汎用: M6i、M6id、M6in、M6idn、M7g

    • メモリ最適化: R6i、R6id、R6in、R6idn、R7g、X2idn、X2iedn、X2iezn

  • 各インスタンスは同じ AWS リージョンにあるものとします。

  • 各インスタンスは同じ VPC 内、あるいはピア接続された VPC 内にあり、トラフィックは仮想ネットワークのデバイスもしくはサービス (ロードバランサーや Transit Gateway など) を通過しないものとします。

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 クラスターにデータをインポートすることはできます。