S3 Express One Zone のセキュリティのベスト プラクティス - Amazon Simple Storage Service

S3 Express One Zone のセキュリティのベスト プラクティス

Amazon S3 Express One Zone は、独自のセキュリティポリシーを開発して実装する際に考慮すべきセキュリティ機能を多数提供しています。以下のベストプラクティスは一般的なガイドラインであり、完全なセキュリティソリューションを提供するものではありません。これらのベストプラクティスは顧客の環境に必ずしも適切または十分でない可能性があるので、処方箋ではなく、あくまで有用な推奨事項とお考えください。

デフォルトのブロックパブリックアクセスとオブジェクト所有権の設定

S3 Express One Zone ストレージクラスを使用するには、S3 ディレクトリバケットを使用する必要があります。ディレクトリバケットは S3 ブロックパブリックアクセスと S3 オブジェクト所有権をサポートします。このような S3 機能は、バケットとオブジェクトへのアクセスを監査して管理するために使用されます。

デフォルトでは、ディレクトリバケットのすべてのブロックパブリックアクセス設定が有効になっています。さらに、オブジェクト所有者はバケット所有者の強制に設定されています。これは、アクセスコントロールリスト (ACL) が無効になっていることを意味します。上記の設定は変更できません。上記の機能の詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」と「オブジェクトの所有権の制御とバケットの ACL の無効化。」を参照してください。

注記

ディレクトリバケットに保存されているオブジェクトへのアクセスは付与できません。アクセスは、ディレクトリバケットにたいしてのみ付与できます。S3 Express One Zone の認証モデルは、Amazon S3 の認証モデルとは異なります。詳細については、「CreateSession authorization」を参照してください。

認証と認可

S3 Express One Zone の認証と承認メカニズムは、ゾーンエンドポイント API オペレーションまたはリージョンエンドポイント API オペレーションのいずれに対してリクエストを行っているかに応じて異なります。ゾーン API オペレーションはオブジェクトレベル (データプレーン) のオペレーションです。リージョン API オペレーションはバケットレベル (コントロールプレーン) のオペレーションです。

S3 Express One Zone では、レイテンシーを最小限に抑えるように最適化された新しいセッションベースのメカニズム を使用して、ゾーンエンドポイント API オペレーションへのリクエストを認証および承認します。セッションベースの認証では、AWS SDK は CreateSession API オペレーション を使用して一時的な認証情報をリクエストします。これにより、ディレクトリバケットに低レイテンシーでアクセスできます。これらの一時認証情報は特定のディレクトリバケットに限定され、5 分後に期限切れになります。このような一時的な認証情報を使用して、ゾーン (オブジェクトレベル) API 呼び出しに署名できます。詳細については、「CreateSession authorization」を参照してください。

S3 Express One Zone の認証情報を使用したリクエストの署名

S3 Express One Zone 認証情報を使用して、サービス名として s3express を使用して、AWS Signature Version 4 でゾーンエンドポイント (オブジェクトレベル) API リクエストに署名します。リクエストに署名する際は、CreateSession から返されたシークレットキーを使用し、セッショントークンを x-amzn-s3session-token header に渡します。詳細については、「CreateSession」を参照してください。

S3 Express One Zone クラスで サポートされている AWS SDK は、ユーザーに代わって認証情報と署名を管理します。S3 Express One Zone のための AWS SDK を使用して認証情報を更新し、リクエストに署名することをお勧めします。

IAM 認証情報を使用したリクエストの署名

リージョン (バケットレベル) の API 呼び出しはすべて、一時的なセッション認証情報ではなく AWS Identity and Access Management (IAM) 認証情報で認証および署名される必要があります。IAM 認証情報は IAM アイデンティティのアクセスキー ID とシークレットアクセスキーで構成されます。すべての CopyObject リクエストと HeadBucket リクエストは IAM 認証情報を使用して認証され、署名される必要があります。

ゾーン (オブジェクトレベル) オペレーション呼び出しのレイテンシーを最小限に抑えるには、CopyObjectHeadBucket へのリクエストを除き、CreateSession 呼び出しから取得した S3 Express One Zone 認証情報を使用してリクエストに署名することをお勧めします。

AWS CloudTrail を使用します。

AWS CloudTrail は、Amazon S3 のユーザー、ロール、または AWS のサービス が実行したアクションの記録を提供します。CloudTrail によって収集されたデータを使用して、以下の情報を判断できます。

  • Amazon S3 に対して行われたリクエスト

  • リクエストが行われた IP アドレス

  • リクエストを行ったユーザー

  • リクエストが行われた時間

  • リクエストに関するその他の詳細

AWS アカウントのセットアップ時には、CloudTrail 管理イベントはデフォルトで有効になっています。次のリージョンエンドポイント API オペレーション (バケットレベル、またはコントロールプレーンの API オペレーション) が CloudTrail に記録されます。

注記

ListMultipartUploads は、ゾーンエンドポイント API オペレーションです。ただし、この API オペレーションは CloudTrail に管理イベントとして記録されます。詳細については、「Amazon Simple Storage Service API リファレンス」の「ListMultipartUploads」を参照してください。

デフォルトでは CloudTrail 証跡はデータイベントを記録しませんが、証跡を設定して、指定したディレクトリバケットのデータイベントを記録したり、ご使用の AWS アカウントですべてのディレクトリバケットのデータイベントを記録したりできます。次のゾーンエンドポイント API オペレーション (オブジェクトレベル、またはデータプレーンの API オペレーション) が CloudTrail に記録されます。

S3 Express One Zone で AWS CloudTrail を使用する方法の詳細については、「S3 Express One Zone の AWS CloudTrail によるログ記録」を参照してください。

AWS モニタリングツールを使用したモニタリングを実装する

モニタリングは、Amazon S3 および AWS ソリューションの信頼性、セキュリティ、可用性、パフォーマンスを維持する上で重要なエレメントです。AWS では、Amazon S3 およびその他の AWS のサービス をモニタリングするのに役立つツールとサービスを提供しています。例えば、Amazon S3 の Amazon CloudWatch メトリクス、特に BucketSizeBytesNumberOfObjects ストレージ メトリクスをモニタリングできます。

S3 Express One Zone ストレージ クラスに保存されたオブジェクトは、Amazon S3 の BucketSizeBytesNumberOfObjects のストレージメトリクスには反映されません。ただし、S3 Express One Zone では、BucketSizeBytesNumberOfObjects のストレージメトリクスがサポートされています。選択したメトリックスを表示するには、StorageType ディメンションを指定することで Amazon S3 ストレージクラスと S3 Express One Zone ストレージクラスを区別できます。詳細については、「Amazon CloudWatch によるメトリクスのモニタリング」を参照してください。

詳細については、Amazon CloudWatch によるメトリクスのモニタリングおよびAmazon S3 のモニタリングを参照してください。