Amazon Web Services ブログ
AWS CloudTrail を利用して Amazon S3 Express One Zone のデータイベントをモニタリングする
re:Invent 2023 のニュースブログ記事で、Amazon S3 Express One Zone をご紹介しました。これは、最も頻繁にアクセスされるデータや、レイテンシーの影響を受けやすいアプリケーションのために、一貫した 1 桁ミリ秒のデータアクセスを提供するために特別に設計された、高性能な単一アベイラビリティーゾーン (AZ) ストレージクラスです。これは要求の厳しいアプリケーションに適しており、S3 Standard と比較して最大 10 倍優れたパフォーマンスを実現するように設計されています。S3 Express One Zone は、S3 ディレクトリバケットを使用して、単一の AZ にオブジェクトを保存します。
7月9日より、S3 Express One Zone は AWS CloudTrail データイベントログ記録をサポートするようになり、既にサポートされていた CreateBucket や DeleteBucket などのバケットレベルのアクションに加えて、PutObject、GetObject、DeleteObject などのすべてのオブジェクトレベルのオペレーションをモニタリングできるようになりました。これにより、ガバナンスとコンプライアンスの監査が可能になり、S3 Standard ストレージクラスと比較して 50% 低い S3 Express One Zone のリクエストコストを活用できるようになります。
この新しい機能を使用すると、どの S3 Express One Zone オブジェクトが作成、読み取り、更新、または削除されたかを迅速に判断し、API コールのソースを特定できます。不正な S3 Express One Zone オブジェクトへのアクセスを検出した場合は、アクセスを制限するためにすぐにアクションを実行できます。さらに、CloudTrail 統合を Amazon EventBridge と併用して、データイベントによってトリガーされるルールベースのワークフローを作成することもできます。
Amazon S3 Express One Zone の CloudTrail データイベントログ記録の使用
Amazon S3 コンソールで開始します。ディレクトリバケットの作成のステップに従って、S3 バケットを作成し、バケットタイプとして [ディレクトリ]、[アベイラビリティーゾーン] として [apne1-az4]
を選択します。 [ベース名] に s3express-one-zone-cloudtrail
と入力すると、該当のアベイラビリティーゾーンのアベイラビリティーゾーン ID を含むサフィックスが自動的に追加され、最終的な名前が作成されます。最後に、[データは単一のアベイラビリティーゾーンに保存されます] のチェックボックスをオンにして同意し、[バケットを作成] を選択します。
S3 Express One Zone のデータイベントログ記録を有効にするために、CloudTrail コンソールに移動します。名前を入力して、S3 ディレクトリバケットのイベントを追跡する CloudTrail 証跡を作成します。
[ステップ 2: ログイベントを選択する] で、[高度なイベントセレクターが有効になっています] が選択された状態で [データイベント] を選択します。
[データイベントタイプ] で、[S3 Express] を選択します。すべての S3 ディレクトリバケットのデータイベントを管理するには、[ログセレクターテンプレート] として [すべてのイベントをログに記録] を選択できます。
ただし、イベントデータストアでは、S3 ディレクトリバケット s3express-one-zone-cloudtrail--apne1-az4--x-s3
のイベントのみをログに記録したいと考えています。この場合、[ログセレクターテンプレート] として [カスタム] を選択し、ディレクトリバケットの ARN を指定します。詳細については、「Filtering data events by using advanced event selectors」に関するドキュメントをご覧ください。
最後に、[ステップ 3: 確認および作成する] に進みます。これで、CloudTrail によるログ記録が有効になりました。
S3 Express One Zone の CloudTrail データイベントログ記録の操作:
S3 コンソールを使用して、S3 ディレクトリバケットにファイルをアップロードおよびダウンロードします。
AWS CLI を使用して、Put_Object
と Get_Object
を送信します。
CloudTrail は、ログファイルを gzip アーカイブで S3 バケットに公開し、バケット名、アカウント ID、リージョン、日付に基づいて階層的に整理します。AWS CLI を使用して、証跡に関連付けられたバケットを一覧表示し、テストを実行した日付のログファイルを取得します。
次の 4 つのファイル名が取得されます。2 つはコンソールテストから、もう 2 つは CLI テストから取得されます:
これらのファイルで PutObject イベントを検索してみましょう。最初のファイルを開くと、PutObject
イベントタイプが表示されます。ご承知のとおり、ブラウザの S3 コンソール経由で 1 回、CLI を使用して 1 回、合計 2 回のアップロードを実行したばかりです。API コールを実行したソースのタイプである userAgent
属性はブラウザを参照するため、このイベントは S3 コンソールを使用したアップロードを参照します。CloudTrail イベントの詳細については、「Understanding CloudTrail events」のドキュメントをご覧ください。
ここで、AWS CLI を使用して送信された PutObject
コマンドに対応するイベントの 3 つ目のファイルを確認すると、userAgent
属性にわずかな違いがあることがわかります。この場合、これは AWS CLI を参照しています。
では、2 つ目のファイルの GetObject イベントを見てみましょう。イベントタイプが GetObject
であり、userAgent
がブラウザを参照していることがわかります。つまり、このイベントは S3 コンソールを使用したダウンロードを参照しています。
最後に、AWS CLI から送信した GetObject
コマンドの詳細とともに、4 つ目のファイルのイベントを表示します。eventName
と userAgent
が想定どおりであることがわかります。
知っておくべきこと
開始方法 – CloudTrail コンソール、CLI、または SDK を使用して、S3 Express One Zone のために CloudTrail データイベントログ記録を有効にできます。
リージョン – CloudTrail データイベントログ記録は、S3 Express One Zone が現在利用可能なすべての AWS リージョンでご利用いただけます。
アクティビティログ記録 – S3 Express One Zone の CloudTrail データイベントログ記録を使用すると、PutObject
、GetObject
、DeleteObject
などのオブジェクトレベルのアクティビティや、CreateBucket や DeleteBucket などのバケットレベルのアクティビティをログ記録できます。
料金 – S3 ストレージクラスと同様に、ログ記録されたイベントの数とログを保持する期間に基づいて、CloudTrail での S3 Express One Zone データイベントのログ記録についての料金をお支払いいただきます。詳細については、AWS CloudTrail の料金ページをご覧ください。
S3 Express One Zone のために CloudTrail データイベントログ記録を有効にすると、高性能ストレージのガバナンスとコンプライアンスを簡素化できます。この新機能の詳細については、「S3 ユーザーガイド」をご覧ください。
– Eli.
原文はこちらです。