Amazon Web Services ブログ

新しい Amazon S3 暗号化 & セキュリティ機能

S3 を発表した 2006 年に、私は「さらに、各ブロックは ACL (アクセスコントロールリスト) によって保護されているため、開発者はデータを非公開にしたり、共有したり、読み書きしたりすることができます。」と書きました。

最初のモデルから、プライベートバケットと ACL を使用してアクセスを許可することで、バケットポリシーサーバーアクセスロギングバージョニングAPI ロギングクロスリージョンレプリケーション、複数のクライアント側およびサーバー側の暗号化オプションのサポートが追加されました。これらはすべて、データを安全に保つために必要なツールを提供し、必要に応じてお客様やパートナーと共有できるようにすることを目的としています。私たちはまた、大規模なコンテンツの検索、分類、保護に役立つツールである Amazon Macie の開始によって、人工知能と機械学習の利点を取り込みました。

現在、S3 には 5 つの新しい暗号化とセキュリティ機能が追加されています。

デフォルト暗号化 – バケット内のすべてのオブジェクトを暗号化された形式で格納する必要性を指定できるようになりました。暗号化されていないオブジェクトを拒否するバケットポリシーを構築する必要はありません。

アクセス許可チェック – S3 コンソールには、一般にアクセス可能な各 S3 バケットの隣に目立つインジケータが表示されるようになりました。

クロスリージョンレプリケーション ACL の上書き – AWS アカウント間でオブジェクトをレプリケートするとき、オブジェクトが送信先アカウントへの完全なアクセス許可を与える新しい ACL を取得するように指定できるようになりました。

KMS によるクロスリージョンレプリケーションAWS Key Management Service (KMS) によって管理されるキーで、暗号化されたオブジェクトをレプリケートできるようになりました。

詳細なインベントリレポート – S3 インベントリレポートに、各オブジェクトの暗号化ステータスが含まれるようになりました。レポート自体も暗号化することができます。

では詳しく見てみましょう。

デフォルト暗号化
S3 オブジェクトには、S3 によって管理されるキーを使用する SSE-S3、AWS KMS によって管理されるキーを使用する SSE-KMS、ユーザーが管理するキーを使用する SSE-C の 3 つのサーバー側の暗号化オプションがあります。一部のお客様、特に安心して暗号化の使用を指示するコンプライアンス要件を満たす必要があるお客様は、バケットポリシーを使用して、新しく保存されたオブジェクトがすべて暗号化されるようにしています。これは要件を満たすのに役立ちますが、暗号化されていないオブジェクトの格納を拒否するだけでは、解決策として不完全です。

バケットの暗号化設定をインストールすることで、バケット内のすべてのオブジェクトを暗号化された形式で格納する必要性を指定できるようになりました。暗号化されていないオブジェクトが S3 に提示され、暗号化が必須であることを構成が示している場合、オブジェクトはバケットに指定された暗号化オプションを使用して暗号化されます (PUT 要求では別のオプションも指定できます)。

新しいバケットを作成するときに S3 コンソールを使用してこの機能を有効にする方法は次のとおりです。いつものようにバケットの名前を入力し、[Next] をクリックします。次に下にスクロールして [Default encryption] をクリックします。

使用するオプションを選択し、[Save] をクリックします (AWS-KMS を選択した場合は、KMS キーも指定します)。

この変更は、PUT Bucket Encryption 関数を呼び出して行うこともできます。SSE アルゴリズム (SSE-S3 または SSE-KMS) を指定する必要があり、オプションで KMS キーを参照できます。

この機能を実装するときは、次の制限事項に留意してください。

SigV4 – S3 REST API を介したバケットポリシーへのアクセスは、SigV4 で署名し、SSL 接続で行う必要があります。

バケットポリシーの更新 – 暗号化されていないオブジェクトを現在拒否している既存のバケットポリシーを調べて、慎重に変更する必要があります。

大容量の使用 – SSE-KMS を使用していて、毎秒何百または何千ものオブジェクトをアップロードしている場合は、暗号化および復号化操作の KMS 制限にぶつかる可能性があります。 サポートケースを提出して、制限を引き上げるよう依頼します。

クロスリージョンレプリケーション – 暗号化されていないオブジェクトは、送信先バケットの設定に従って暗号化されます。暗号化されたオブジェクトはそのままになります。

アクセス許可のチェック
バケットポリシー、バケット ACL、およびオブジェクト ACL の組み合わせにより、バケットやその中のオブジェクトへのアクセスをきわめて細かく制御できます。お客様のポリシーと ACL を組み合わせて目的の効果を生み出すことを目標に、私たちは最近お客様の S3 バケットを安全なものにするための一連のS3 バケットをセキュリティ保護するための管理ルールを作成しました。投稿で述べたように、これらのルールは、自動の公式推論を使用するためのいくつかの作業を利用しています。

バケットポリシーと ACL の変更がすぐに反映されるように、同じ基盤テクノロジーを使用しています。これは、パブリックアクセス用のバケットを開くとすぐにわかります。自信を持って変更を加えることができます。

S3 コンソールのメインページには、次のように表示されます (便宜上、Access カラムでソートしました)。

パブリックインジケータは、単一のバケットの内部を見るときにも表示されます。

どのアクセス許可要素 (ACL、バケットポリシー、またはその両方) がパブリックアクセスを有効にしているかを確認することもできます。

クロスリージョンレプリケーション ACL の上書き
Our customers often use S3’s Cross-Region Replication to copy their mission-critical objects and data to a destination bucket in a separate AWS account. オブジェクトのコピーに加えて、レプリケーションプロセスはオブジェクト ACL とオブジェクトに関連付けられたタグをコピーします。

この機能は、転送中の ACL の置き換えを可能にして、送信先バケットの所有者に完全にアクセスできるようにすることで、この機能をさらに便利なものにしています。この変更により、送信元データと送信先データの所有権が AWS アカウントに分割され、元のオブジェクトとそのレプリカの所有権の別々のスタックを維持することができます。

レプリケーションを設定するときにこの機能を有効にするには、アカウント ID とバケット名を指定して [Save] をクリックし、別のアカウントとリージョンで送信先バケットを選択します。

次に、[Change object ownership…] をクリックします。

We’ve also made it easier for you to set up the key policy for the destination bucket in the destination account. アカウントにログインしてバケットを見つけ、[Management] と [Replication] をクリックしてから、[More] メニューから [Receive objects…] を選択します。

送信元アカウント ID を入力し、バージョン管理を有効にし、ポリシーを調べて適用し、[Done] をクリックします。

KMS によるクロスリージョンレプリケーション
現在取り組んでいる興味深い課題として、リージョンにまたがって SSE-KMS を使用して暗号化されたオブジェクトをレプリケートすることがあります。KMS キーは特定のリージョンに固有のものなので、暗号化されたオブジェクトをレプリケートするだけでは機能しません。

クロスリージョンレプリケーションを設定するときに、送信先キーを選択できるようになりました。レプリケーションプロセス中、暗号化されたオブジェクトは SSL 接続を介して送信先にレプリケートされます。送信先では、レプリケーション構成で指定した KMS マスタキーを使用してデータキーが暗号化されます。オブジェクトは元の暗号化された形式のまま残り、キーを含むエンベロープのみが実際に変更されます。

レプリケーションルールを設定するときにこの機能を有効にする方法は次のとおりです。

前述したように、この機能を使い始める前に KMS の制限を増やす必要があります。

詳細なインベントリレポート
最後に、毎日または毎週の S3 インベントリレポートに各オブジェクトの暗号化ステータスに関する情報が含まれるように要求することができます。

ご覧のとおり、レポートに対して SSE-S3 または SSE-KMS の暗号化をリクエストすることもできます。

提供開始
これらの機能はすべて利用可能であり、すぐに使用を開始できます。この機能は無料ですが、KMS への通話S3 ストレージS3 リクエスト、およびリージョン間データ転送の通常料金が請求されます。

Jeff;