

# Amazon S3 でのログ記録とモニタリング
<a name="monitoring-overview"></a>

モニタリングは、Amazon S3 および AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集することをお勧めします。Simple Storage Service (Amazon S3) のモニタリングを開始する前に、以下の質問に対する回答を反映したモニタリング計画を作成する必要があります。
+ どのような目的でモニタリングしますか?
+ どのリソースをモニタリングしますか?
+ どのくらいの頻度でこれらのリソースをモニタリングしますか?
+ どのモニタリングツールを利用しますか?
+ 誰がモニタリングタスクを実行しますか?
+ 問題が発生したときに誰が通知を受け取りますか?

Amazon S3 でのログ記録とモニタリングの詳細については、以下のトピックを参照してください。

**注記**  
Amazon S3 Express One Zone ストレージクラスをディレクトリバケットで使用する方法の詳細については、「[S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone)」と「[ディレクトリバケットの使用](directory-buckets-overview.md)」を参照してください。

モニタリングは、Amazon S3 および AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。AWS には、Amazon S3 リソースをモニタリングし、潜在的なインシデントに対応するための複数のツールが用意されています。

**Amazon CloudWatch アラーム**  
Amazon CloudWatch アラームを使用して、指定した期間中、1 つのメトリクスをモニタリングします。メトリクスが特定の閾値を超えると、Amazon SNS トピックまたは AWS Auto Scaling ポリシーに通知が送信されます。CloudWatch アラームは、特定の状態にあるという理由ではアクションを呼び出しません。状態が変わり、それが指定した期間だけ維持される必要があります。詳細については、[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md) を参照してください。

**AWS CloudTrail ログ**  
CloudTrail は、Amazon S3 のユーザー、ロール、または AWS のサービスによって実行されたアクションの記録を提供します。CloudTrail で収集された情報を使用して、Amazon S3 に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。詳細については、「[AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md)」を参照してください。

**Amazon GuardDuty**  
[Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) は、アカウント、コンテナ、ワークロード、および AWS 環境内のデータを継続的にモニタリングし、S3 バケットに対する潜在的な脅威やセキュリティリスクを特定する脅威検出サービスです。また、GuardDuty は、検出した脅威に関する詳細なコンテキストも提供します。GuardDuty は、脅威の AWS CloudTrail 管理ログを監視し、セキュリティ関連情報を表示します。例えば、GuardDuty には、リクエストを行ったユーザー、リクエストが行われた場所、リクエストされた具体的な API など、環境で異常である可能性がある API リクエストの要素が含まれます。[GuardDuty S3 Protection](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html) は、CloudTrail によって収集された S3 データイベントを監視し、環境内のすべての S3 バケットで異常および悪意のある可能性のある動作を特定します。

**Amazon S3 アクセスログ**  
サーバーアクセスログでは、バケットに対して行われたリクエストの詳細なレコードが提供されます。サーバーアクセスのログは、多くのアプリケーションに役立ちます。例えば、アクセスのログ情報は、セキュリティやアクセスの監査に役立ちます。詳細については、[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md) を参照してください。

**AWS Trusted Advisor**  
Trusted Advisor は、AWS の数十万のお客様にサービスを提供することにより得られた、運用実績から学んだベストプラクティスを活用しています。Trusted Advisor はお客様の AWS 環境を検査し、システムの可用性とパフォーマンスを向上させたりセキュリティギャップを埋めたりする機会がある場合には、推奨事項を作成します。すべての AWS のお客様は、Trusted Advisor の 5 つのチェックにアクセスできます。ビジネスまたはエンタープライズサポートプランをご利用のお客様は、すべての Trusted Advisor チェックを表示できます。  
Trusted Advisor には、以下の Amazon S3 関連のチェックがあります。  
+ Amazon S3 バケットのログ記録設定のチェック。
+ オープンなアクセス許可がある Amazon S3 バケットのセキュリティチェック。
+ バージョニングが有効になっていない、またはバージョニングが停止されている Amazon S3 バケットの耐障害性チェック。
詳細については、*サポート ユーザーガイド*の [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html#trusted-advisor) を参照してください。

**Amazon S3 Storage Lens**  
Amazon S3 ストレージレンズは、オブジェクトストレージの使用状況とアクティビティを組織全体で可視化するために使用できるクラウドストレージの分析機能です。S3 ストレージレンズメトリクスを使用することで、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどの、要約されたインサイトを生成できます。S3 ストレージレンズメトリクスを使用して、コスト最適化の機会を特定し、データ保護とセキュリティのベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることもできます。  
S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの **[バケット]** ページの [アカウントのスナップショット] セクションにこの情報を表示します。S3 Storage Lens は、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、ストレージクラス、バケット、プレフィックス、またはストレージレンズのグループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。詳細については、「[Amazon S3 ストレージレンズを理解する](storage_lens_basics_metrics_recommendations.md)」を参照してください。

**Amazon S3 インベントリ**  
Amazon S3 インベントリは、オブジェクトのクエリと管理に使用できるオブジェクトとメタデータのリストを生成します。このインベントリレポートを使用して、オブジェクトサイズ、最終更新日、暗号化ステータス、その他のフィールドなどの詳細なデータを生成できます。これらのレポートは日次または週次で利用でき、最新のリストを自動的に提供します。  
例えば、Amazon S3 インベントリを使用して、ビジネス、コンプライアンス、および規制上のニーズに合わせてオブジェクトのレプリケーションと暗号化のステータスを監査し、レポートを作成できます。また、Amazon S3 インベントリを使用してビジネスワークフローやビッグデータジョブを簡素化、高速化することもできます。これは、Amazon S3 同期 `List` API オペレーションのスケジュールされた代替手段を提供します。Amazon S3 インベントリは、`List` API オペレーションを使用してオブジェクトを監査しないため、バケットのリクエストレートには影響しません。詳細については、「[S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md)」を参照してください。

**Amazon S3 イベント通知**  
Amazon S3 イベント通知機能で、S3 バケット内で特定のイベントが発生したときに、通知を受けることができます。通知を有効にするには、Amazon S3 から発行するイベントを識別する通知設定を追加します。詳細については、「[Amazon S3 イベント通知](EventNotifications.md)」を参照してください。

**Amazon S3 および AWS X-Ray**  
 は、Amazon S3 と統合して、アプリケーションの S3 バケットを更新するアップストリームリクエストをトレースします。サービスが X-Ray SDK を使用してリクエストをトレースする場合、Amazon S3 は、Λ、Amazon SQS、Amazon SNS などのダウンストリームイベントサブスクライバーにトレースヘッダーを送信できます。X-Ray は Amazon S3 イベント通知のトレースメッセージを有効にします。X-Ray トレースマップを使用して、Amazon S3 およびアプリケーションが使用する他のサービス間の接続を表示できます。詳細については、「[Amazon S3 and X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-s3.html)」を参照してください。

以下のセキュリティのベストプラクティスもログ記録とモニタリングに対処します。
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)
+ [Implement monitoring using Amazon Web Services monitoring tools](security-best-practices.md#tools)
+ [ の有効化AWS Config](security-best-practices.md#config)
+ [Enable Amazon S3 server access logging](security-best-practices.md#serverlog)
+ [Use CloudTrail](security-best-practices.md#objectlog)
+ [Monitor Amazon Web Services security advisories](security-best-practices.md#advisories)

**Topics**
+ [モニタリングツール](monitoring-automated-manual.md)
+ [Amazon S3 のログ記録オプション](logging-with-S3.md)
+ [AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md)
+ [サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)
+ [Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md)
+ [Amazon S3 イベント通知](EventNotifications.md)
+ [Amazon S3 ストレージレンズを使用してストレージのアクティビティと使用状況をモニタリングする](storage_lens.md)
+ [S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md)

# モニタリングツール
<a name="monitoring-automated-manual"></a>

AWS では、Amazon S3 のモニタリングに使用できるさまざまなツールを提供しています。これらのツールの中には、自動モニタリングを設定できるものもあれば、手操作を必要とするものもあります。モニタリングタスクをできるだけ自動化することをお勧めします。

## 自動モニタリングツール
<a name="monitoring-automated_tools"></a>

以下の自動化されたモニタリングツールを使用して、Amazon S3 をモニタリングし、問題が発生したときにレポートできます。
+ **Amazon CloudWatch のアラーム** – 単一のメトリクスを指定した期間モニタリングし、特定の閾値に対する複数の期間にわたるメトリクスの値に基づいて、1 つ以上のアクションを実行します。アクションは、Amazon Simple Notification Service (Amazon SNS) のトピックまたは Amazon EC2 Auto Scaling のポリシーに送信される通知です。CloudWatch アラームは、特定の状態にあるという理由だけではアクションを呼び出しません。状態が変わって、変わった状態が指定期間にわたって維持される必要があります。詳細については、[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md) を参照してください。
+ **AWS CloudTrail のログのモニタリング** – アカウント間でログファイルを共有し、CloudTrail のログファイルを CloudWatch Logs に送信してリアルタイムでモニタリングします。また、ログを処理するアプリケーションを Java で作成し、CloudTrail からの提供後にログファイルが変更されていないことを確認します。詳細については、[AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md) を参照してください。

## 手動モニタリングツール
<a name="monitoring-manual-tools"></a>

Amazon S3 のモニタリングでもう 1 つ重要な点は、CloudWatch のアラームのターゲット外の項目を手動でモニタリングすることです。Amazon S3、CloudWatch、Trusted Advisor、その他の AWS マネジメントコンソールのダッシュボードには、AWS 環境の状態が一目でわかるビューが表示されます。*サーバーアクセスのログ記録*を有効にして、バケットへのアクセスを求めるリクエストを追跡できます。各アクセスログレコードには、1 つのアクセスリクエストに関する詳細が含まれます。内容は、リクエスタ、バケット名、リクエスト時刻、リクエストアクション、応答ステータス、およびエラーコード (存在する場合) です。詳細については、[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md) を参照してください。
+ Amazon S3 ダッシュボードには、次の情報が表示されます。
  + 含まれるバケット、オブジェクト、およびプロパティ。
+ CloudWatch のホームページでは以下について確認できます。
  + 現在のアラームとステータス
  + アラームとリソースのグラフ
  + サービスのヘルスステータス

  また、CloudWatch を使用して以下のことを行えます。
  + 重要なサービスをモニタリングするために[カスタマイズされたダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)を作成する。
  + メトリクスデータをグラフ化して、問題のトラブルシューティングを行い、傾向を確認する。
  + AWS リソースのすべてのメトリクスを検索およびブラウズする。
  + 問題があることを通知するアラームを作成/編集する。
+ AWS Trusted Advisor は、AWS リソースのパフォーマンス、信頼性、セキュリティ、費用効率を向上するためのモニタリングに役立ちます。すべてのユーザーは、4 つの Trusted Advisor; チェックを利用できます。ビジネスまたはエンタープライズサポートプランのユーザーは、50 以上のチェックを利用できます。詳細については、「[AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/)」を参照してください。

  Trusted Advisor には Amazon S3 に関連する以下のチェックがあります。
  + Amazon S3 バケットのログ記録設定をチェックします。
  + オープンなアクセス許可がある Amazon S3 バケットのセキュリティチェック。
  + バージョニングが有効になっていない、またはバージョニングが停止されている Amazon S3 バケットの耐障害性チェック。

# Amazon S3 のログ記録オプション
<a name="logging-with-S3"></a>

ユーザー、ロール、または AWS のサービス よって実行されたアクションを Amazon S3 リソースに記録し、監査およびコンプライアンス目的でログレコードを管理することができます。これを行うには、サーバーアクセスのログ記録、AWS CloudTrail ログ記録、またはその両方を組み合わせて使用します。Amazon S3 リソースのバケットレベルおよびオブジェクトレベルのアクションをログ記録するには、CloudTrail を使用することをお勧めします。以下のセクションに各オプションの詳細を示します。
+ [サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)
+ [AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md)

CloudTrail ログおよび Amazon S3 サーバーアクセスログの主なプロパティを次の表に示します。テーブルとメモを確認し、CloudTrail がセキュリティ要件を満たしていることを確認してください。


| ログのプロパティ | AWS CloudTrail | Amazon S3 サーバーログ | 
| --- |--- |--- |
|  他のシステム (Amazon CloudWatch Logs、Amazon CloudWatch Events) に転送可能  |  はい  | No | 
|  ログを複数の宛先に配信する (例えば、同じログを 2 つの異なるバケットに送信する)  |  はい  | No | 
|  オブジェクトのサブセット (プレフィックス) のログを有効にする  |  はい  | No | 
|  クロスアカウントログ配信 (異なるアカウントが所有するターゲットバケットとソースバケット)  |  はい  | No | 
|  デジタル署名またはハッシュを使用したログファイルの整合性の検証  |  はい  | No | 
|  ログファイルの暗号化 (デフォルトまたはカスタム)  |  はい  | No | 
|  オブジェクトオペレーション (Amazon S3 API を使用)  |  可能  |  はい  | 
|  バケットオペレーション (Amazon S3 API を使用)  |  可能  |  はい  | 
|  ログの検索可能な UI  |  はい  | No | 
|  オブジェクトロックパラメータのフィールド。ログ記録用の Amazon S3 Select プロパティ  |  はい  | No | 
|  ログレコードの `Object Size`、`Total Time`、`Turn-Around Time`、`HTTP Referer` の各フィールド  |  いいえ  |  あり  | 
|  ライフサイクルの移行、失効、復元  |  いいえ  |  あり  | 
|  バッチ削除オペレーションでのキーのログ記録  |  可能  |  はい  | 
|  認証の失敗 1  |  いいえ  |  あり  | 
|  ログが配信されるアカウント  |  バケット所有者 2、リクエスタ  |  バケット所有者名のみ  | 
| **Performance and Cost** | **AWS CloudTrail** | **Amazon S3 Server Logs** | 
| --- |--- |--- |
|  価格  |  管理イベント (初回配信) は無料です。データイベントには料金がかかります (ログの保存は別料金)。  |  ログの保存にかかる料金以外の追加コストなし  | 
|  ログ配信の速度  |  データイベント (5 分ごと)、管理イベント (15 分ごと)  |  数時間以内  | 
|  ログの形式  |  JSON  |  スペース区切りの改行区切りレコードを含むログファイル  | 

**注意事項**

1. CloudTrail では、認証に失敗したリクエスト (提供された認証情報が有効でない場合) またはリダイレクトが原因で失敗したリクエスト (エラーコード `301 Moved Permanently`) のログは配信されません。ただし、承認に失敗したリクエスト (`AccessDenied`) および匿名ユーザーによるリクエストのログは含まれます。

1. リクエスト内のオブジェクトへのフルアクセス権がそのアカウントに付与されていない場合、S3 バケット所有者に CloudTrail ログが送信されます。詳細については、「[クロスアカウントのシナリオでの Amazon S3 オブジェクトレベルのアクション](cloudtrail-logging-s3-info.md#cloudtrail-object-level-crossaccount)」を参照してください。

1. S3 は、VPC エンドポイントポリシーで拒否されている場合、または VPC ポリシーが評価される前にリクエストが失敗した場合、VPC エンドポイントリクエストの CloudTrail ログまたはサーバーアクセスログのリクエスタまたはバケット所有者への配信をサポートしません。

# AWS CloudTrail を使用した Amazon S3 API コールのログ記録
<a name="cloudtrail-logging"></a>

[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) は、ユーザーやロール、AWS のサービスによって実行されたアクションを記録するサービスです。CloudTrail は、Amazon S3 へのすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、Amazon S3 コンソールからの呼び出しと、Amazon S3 API オペレーションへのコード呼び出しが含まれます。CloudTrail で収集された情報を使用して、Amazon S3 に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
+ ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか。
+ リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが、別の AWS のサービス によって送信されたかどうか。

アカウントを作成すると、AWS アカウント で CloudTrail がアクティブになり、自動的に CloudTrail の**[イベント履歴]** にアクセスできるようになります。CloudTrail の **[イベント履歴]** では、AWS リージョン で過去 90 日間に記録された管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail イベント履歴の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。**[イベント履歴]** の閲覧には CloudTrail の料金はかかりません。

AWS アカウント で過去 90 日間のイベントを継続的に記録するには、証跡または [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) イベントデータストアを作成します。

**CloudTrail 証跡**  
*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。AWS マネジメントコンソール を使用して作成した証跡はマルチリージョンです。AWS CLI を使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウント内のすべて AWS リージョン でアクティビティを把握するため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョン に記録されたイベントのみを表示できます。証跡の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS アカウントの証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)」および「[組織の証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)」を参照してください。  
証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。Amazon S3 の料金に関する詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

**CloudTrail Lake イベントデータストア**  
*[CloudTrail Lake]* を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを [Apache ORC](https://orc.apache.org/) 形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントは、*イベントデータストア*に集約されます。イベントデータストアは、[高度なイベントセレクタ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)を適用することによって選択する条件に基づいた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS CloudTrail Lake の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)」を参照してください。  
CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する[料金オプション](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)を選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトでは Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。

## CloudTrail ログを Amazon S3 サーバーアクセスログと CloudWatch Logs と併用する
<a name="cloudtrail-logging-vs-server-logs"></a>

AWS CloudTrail ログは、Amazon S3 のユーザー、ロール、または AWS のサービスによって実行されたアクションの記録を提供するのに対し、Amazon S3 サーバーアクセスログは、S3 バケットに対して行われたリクエストの詳細な記録を提供します。ログ別の機能とプロパティ、パフォーマンス、コストの詳細については、[Amazon S3 のログ記録オプション](logging-with-S3.md) を参照してください。

AWS CloudTrail ログは、Amazon S3 のサーバーアクセスログと一緒に使用できます。CloudTrail ログを使用すると、Amazon S3 バケットレベルおよびオブジェクトレベルのオペレーションの詳細な API トラッキングが提供されます。Amazon S3 のサーバーアクセスログでは、Amazon S3 内のオブジェクトレベルのデータオペレーションが可視化されます。サーバーアクセスログの詳細については、[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md) を参照してください。

CloudTrail ログは、Amazon S3 の Amazon CloudWatch と一緒に使用することもできます。CloudTrail を CloudWatch Logs と統合すると、CloudTrail が取得した S3 バケットレベル API アクティビティが、指定した CloudWatch ロググループの CloudWatch ログストリームに送られます。特定の API アクティビティをモニタリングする CloudWatch アラームを作成し、その API アクティビティが発生した時に電子メールの通知を受け取ることができます。特定の API アクティビティをモニタリングするための CloudWatch アラームの詳細については、[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)を参照してください。Amazon S3 と CloudWatch の併用の詳細については、[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md) を参照してください。

**注記**  
S3 は、VPC エンドポイントポリシーで拒否されている場合、VPC エンドポイントリクエストのリクエスタまたはバケット所有者への CloudTrail ログの配信をサポートしません。

## Amazon S3 SOAP API コールを使用した CloudTrail トラッキング
<a name="cloudtrail-s3-soap"></a>

CloudTrail は、Amazon S3 SOAP API コールを追跡します。Amazon S3 SOAP のサポートは HTTP 経由で非推奨ですが、HTTPS 経由では引き続き利用可能です。Amazon S3 SOAP サポートの詳細については、「Amazon S3 API リファレンス」の「[Appendix: SOAP API](https://docs.aws.amazon.com/AmazonS3/latest/API/APISoap.html)」を参照してください。**

**重要**  
新しい Amazon S3 機能は、SOAP ではサポートされません。REST API か AWS SDK を使用することをお勧めします。

 次の表は、CloudTrail のログ記録によって追跡される Amazon S3 SOAP アクションを示しています。


| SOAP API 名 | CloudTrail ログで使用される API イベント名 | 
| --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPListAllMyBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPListAllMyBuckets.html)  | ListBuckets | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPCreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPCreateBucket.html)  | CreateBucket | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPDeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPDeleteBucket.html)  | DeleteBucket | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPGetBucketAccessControlPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPGetBucketAccessControlPolicy.html)  | GetBucketAcl | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPSetBucketAccessControlPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPSetBucketAccessControlPolicy.html)  | PutBucketAcl | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPGetBucketLoggingStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPGetBucketLoggingStatus.html)  | GetBucketLogging | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPSetBucketLoggingStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/SOAPSetBucketLoggingStatus.html)  | PutBucketLogging | 

 CloudTrail と Amazon S3 の詳細については、以下のトピックを参照してください。

**Topics**
+ [CloudTrail ログを Amazon S3 サーバーアクセスログと CloudWatch Logs と併用する](#cloudtrail-logging-vs-server-logs)
+ [Amazon S3 SOAP API コールを使用した CloudTrail トラッキング](#cloudtrail-s3-soap)
+ [Amazon S3 CloudTrail イベント](cloudtrail-logging-s3-info.md)
+ [Simple Storage Service (Amazon S3) と S3 on Outposts の CloudTrail ログファイルエントリ](cloudtrail-logging-understanding-s3-entries.md)
+ [S3 バケットとオブジェクトの CloudTrail イベントログ記録の有効化](enable-cloudtrail-logging-for-s3.md)
+ [CloudTrail を使用した Amazon S3 リクエストの識別](cloudtrail-request-identification.md)

# Amazon S3 CloudTrail イベント
<a name="cloudtrail-logging-s3-info"></a>

**重要**  
Amazon S3 では、Amazon S3 内のすべてのバケットの基本レベルの暗号化として、Amazon S3 が管理するキー (SSE-S3) によるサーバー側の暗号化が適用されるようになりました。2023 年 1 月 5 日以降、Amazon S3 にアップロードされるすべての新しいオブジェクトは、追加費用なしで、パフォーマンスに影響を与えずに自動的に暗号化されます。S3 バケットのデフォルト暗号化設定と新しいオブジェクトのアップロードのための自動暗号化ステータスは、CloudTrail ログ、S3 インベントリ、S3 ストレージレンズ、Amazon S3 コンソール、および AWS CLI と AWS SDK の追加の Amazon S3 API レスポンスヘッダーとして利用できるようになりました。詳細については、「[デフォルト暗号化に関するよくある質問](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)」を参照してください。

このセクションでは、S3 が CloudTrail に記録するイベントについて説明します。

## CloudTrail の Amazon S3 データイベント
<a name="cloudtrail-data-events"></a>

[データイベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)では、リソース上またはリソース内で実行されるリソースオペレーション (Amazon S3 オブジェクトの読み取りまたは書き込みなど) についての情報が得られます。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail **[イベント履歴]** にはデータイベントは記録されません。

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

CloudTrail コンソール、AWS CLI、または CloudTrail API オペレーションを使用して、Amazon S3 リソースタイプのデータイベントをログ記録できます。データイベントをログに記録する方法の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS マネジメントコンソール を使用したデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console)」および「[AWS Command Line Interface を使用したデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI)」を参照してください。

次の表に、データイベントをログに記録できる Amazon S3 リソースタイプを示します。**データイベントタイプ (コンソール)** 列には、CloudTrail コンソールの**[データイベントタイプ]**リストから選択する値が表示されます。**resources.type 値**列には、AWS CLI または CloudTrail API を使用して高度なイベントセレクタを設定するときに指定する `resources.type` 値が表示されます。**CloudTrail に記録されたデータ API** 列には、リソースタイプの CloudTrail にログ記録された API コールが表示されます。




| データイベントタイプ (コンソール) | resources.type 値 | CloudTrail にログ記録されたデータ API | 
| --- | --- | --- | 
| S3  |  AWS::S3::Object  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)  | 
| S3 Express One Zone |  AWS::S3Express::Object  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)  | 
| S3 アクセスポイント |  AWS::S3::Access Point  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)  | 
| S3 Object Lambda |  AWS::S3ObjectLambda::AccessPoint  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)  | 
| S3 Outposts |  AWS::S3Outposts::Object  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)  | 

`eventName`、`readOnly`、および `resources.ARN` フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。オブジェクトの詳細については、「*AWS CloudTrail API リファレンス*」の「[https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)」を参照してください。

## CloudTrail の Amazon S3 管理イベント
<a name="cloudtrail-management-events"></a>

Amazon S3 は、すべてのコントロールプレーンオペレーションを管理イベントとして記録します。S3 API オペレーションの詳細については、「[Amazon S3 API Reference](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html)」を参照してください。

## CloudTrail が Amazon S3 に対して行われたリクエストをキャプチャする方法
<a name="cloudtrail-logging-s3-requests"></a>

デフォルトでは、CloudTrail は過去 90 日間の S3 バケットレベルの API コールをログに記録しますが、オブジェクトに対して行われたログリクエストは記録しません。バケットレベルの呼び出しには `CreateBucket`、`DeleteBucket`、`PutBucketLifecycle`、`PutBucketPolicy` などのイベントが含まれます。バケットレベルのイベントは CloudTrail コンソールで確認できますが、そこでデータイベント (Amazon S3 オブジェクトレベルのコール) を確認することはできません。それらについて CloudTrail ログを解析またはクエリする必要があります。

AWS CloudTrail でデータアクティビティをログに記録する場合、Amazon S3 `DeleteObjects` データイベントのイベントレコードには、そのオペレーションの一部として削除された各オブジェクトの `DeleteObjects` イベントと `DeleteObject` イベントの両方が含まれます。削除されたオブジェクトに関する追加の可視性をイベントレコードから除外できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[データイベントのフィルタリングの AWS CLI の例](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/filtering-data-events.html#filtering-data-events-deleteobjects)」を参照してください。

## CloudTrail ロギングによって追跡される Amazon S3 アカウントレベルのアクション
<a name="cloudtrail-account-level-tracking"></a>

CloudTrail はアカウントレベルのアクションを記録します。Amazon S3 レコードは、他の AWS のサービス のレコードと一緒にログファイルに記録されます。CloudTrail は、期間とファイルサイズに基づいて、新しいファイルをいつ作成して書き込むかを決定します。

このセクションでは、CloudTrail によるログ記録でサポートされている Amazon S3 アカウントレベルのアクションの一覧を示します。

CloudTrail のログ記録によって追跡される Amazon S3 アカウントレベルの API アクションは、以下のイベント名で表示されます。CloudTrail イベント名は API アクション名とは異なります。例えば、DeletePublicAccessBlock は DeleteAccountPublicAccessBlock です。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html)

## CloudTrail ログ記録によって追跡される Amazon S3 バケットレベルのアクション
<a name="cloudtrail-bucket-level-tracking"></a>

デフォルトでは、CloudTrail はバケットレベルのアクションをログに記録します。Amazon S3 レコードは、他の AWS のサービスレコードと一緒にログファイルに記録されます。CloudTrail は、期間とファイルサイズに基づいて、新しいファイルをいつ作成して書き込むかを決定します。

このセクションには、CloudTrail によるログ記録でサポートされている Amazon S3 バケットレベルのアクションの一覧が記載されています。

CloudTrail のログ記録によって追跡される Amazon S3 バケットレベルの API アクションは、以下のイベント名で表示されます。CloudTrail イベント名が API アクション名と異なる場合があります。たとえば、`PutBucketLifecycleConfiguration` は `PutBucketLifecycle` です。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html) (V2 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html) (V1 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html) (V2 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html) (V1 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketOwnershipControls.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAcl.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html) (V2 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html) (V1 API オペレーション)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotification.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotification.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketOwnershipControls.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketOwnershipControls.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguratione.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguratione.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html)

これらの API オペレーションに加えて、[OPTIONS オブジェクト](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)のオブジェクトレベルのアクションを使用することもできます。このアクションは、バケットの CORS 設定を確認するため、CloudTrail ログ記録のバケットレベルアクションと同様に扱われます。

**注記**  
HeadBucket API は、CloudTrail の Amazon S3 データイベントとしてサポートされています。

## CloudTrail ログ記録が追跡する Amazon S3 Express One Zone バケットレベル (リージョン API エンドポイント) アクション
<a name="cloudtrail-bucket-level-tracking-s3express"></a>

デフォルトでは、CloudTrail はディレクトリバケットのバケットレベルのアクションを管理イベントとして記録します。S3 Express One Zone の CloudTrail 管理イベントの `eventsource` は、`s3express.amazonaws.com` です。

次のリージョンエンドポイント API オペレーションが CloudTrail に記録されます。
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListDirectoryBuckets.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListDirectoryBuckets.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html)

詳細については、「[S3 Express One Zone の AWS CloudTrail によるログ記録](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone-logging.html)」を参照してください。

## クロスアカウントのシナリオでの Amazon S3 オブジェクトレベルのアクション
<a name="cloudtrail-object-level-crossaccount"></a>

クロスアカウントのシナリオでオブジェクトレベルの API コールに関連する特殊なユースケースと CloudTrail ログが報告される方法を次に示します。CloudTrail は、ログエントリが編集または省略される一部のアクセス拒否ケースを除き、リクエスタ (API コールを行ったアカウント) にログを配信します。クロスアカウントアクセスを設定する際には、このセクションの例を検討します。

**注記**  
例では、CloudTrail ログが適切に設定されていることを前提とします。

### 例 1: CloudTrail がバケット所有者にログを配信する
<a name="cloudtrail-crossaccount-example1"></a>

CloudTrail は、バケット所有者が同じオブジェクト API オペレーションに対するアクセス許可を持たない場合でも、バケット所有者にログを配信します。次のクロスアカウントのシナリオを検討してください。
+ アカウント A がバケットを所有しています。
+ アカウント B (リクエスタ) が、そのバケット内のオブジェクトへのアクセスを試みます。
+ アカウント C がオブジェクトを所有しています。アカウント C はアカウント A と同じアカウントである場合とそうでない場合があります。

**注記**  
CloudTrail は、常にオブジェクトレベルの API ログをリクエスタ (アカウント B) に配信します。さらに、CloudTrail は、バケット所有者 (アカウント A) がそのオブジェクト (アカウント C) を所有していないか、そのオブジェクトに対する同じ API オペレーションへのアクセス許可がない場合でも、バケット所有者に同じログを配信します。

### 例 2: CloudTrail は設定オブジェクト ACL で使用されている E メールアドレスを拡散しない
<a name="cloudtrail-crossaccount-example2"></a>

次のクロスアカウントのシナリオを検討してください。
+ アカウント A がバケットを所有しています。
+  アカウント B (リクエスタ) は、E メールアドレスを使用してオブジェクト ACL の付与を設定するためのリクエストを送信します。ACL の詳細については、「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」を参照してください。

リクエスタは E メール情報と共にログを取得します。ただし、例 1 のようにバケット所有者がログの受信資格を持つ場合、バケット所有者はイベントを報告する CloudTrail ログを取得します。一方、バケット所有者は ACL 設定情報 (具体的には被付与者の E メールと権限) を取得しません。ログがバケット所有者に通知する情報は、アカウント B によって ACL API コールが行われたということだけです。

# Simple Storage Service (Amazon S3) と S3 on Outposts の CloudTrail ログファイルエントリ
<a name="cloudtrail-logging-understanding-s3-entries"></a>

**重要**  
Amazon S3 では、Amazon S3 内のすべてのバケットの基本レベルの暗号化として、Amazon S3 が管理するキー (SSE-S3) によるサーバー側の暗号化が適用されるようになりました。2023 年 1 月 5 日以降、Amazon S3 にアップロードされるすべての新しいオブジェクトは、追加費用なしで、パフォーマンスに影響を与えずに自動的に暗号化されます。S3 バケットのデフォルト暗号化設定と新しいオブジェクトのアップロードのための自動暗号化ステータスは、CloudTrail ログ、S3 インベントリ、S3 ストレージレンズ、Amazon S3 コンソール、および AWS CLI と AWS SDK の追加の Amazon S3 API レスポンスヘッダーとして利用できるようになりました。詳細については、「[デフォルト暗号化に関するよくある質問](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)」を参照してください。

各イベントは任意の送信元からの単一のリクエストを表し、リクエストされた API オペレーション、オペレーションの日時、リクエストパラメータなどに関する情報を含みます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、イベントは特定の順序で表示されません。

**注記**  
Amazon S3 Express One Zone の CloudTrail ログファイルの例を表示するには、「[S3 Express One Zone の CloudTrail ログファイルの例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-log-files.html)」を参照してください。

詳細については、以下の例を参照してください。

**Topics**
+ [例: Amazon S3 の CloudTrail ログファイルのエントリ](#example-ct-log-s3)

## 例: Amazon S3 の CloudTrail ログファイルのエントリ
<a name="example-ct-log-s3"></a>

次は、[GET サービス](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) および [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html) のアクションを示す CloudTrail ログエントリの例です。

```
{
    "Records": [
    {
        "eventVersion": "1.03",
        "userIdentity": {
            "type": "IAMUser",
            "principalId": "111122223333",
            "arn": "arn:aws:iam::111122223333:user/myUserName",
            "accountId": "111122223333",
            "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
            "userName": "myUserName"
        },
        "eventTime": "2019-02-01T03:18:19Z",
        "eventSource": "s3.amazonaws.com",
        "eventName": "ListBuckets",
        "awsRegion": "us-west-2",
        "sourceIPAddress": "127.0.0.1",
        "userAgent": "[]",
        "requestParameters": {
            "host": [
                "s3.us-west-2.amazonaws.com"
            ]
        },
        "responseElements": null,
        "additionalEventData": {
            "SignatureVersion": "SigV2",
            "AuthenticationMethod": "QueryString",
            "aclRequired": "Yes"
    },
        "requestID": "47B8E8D397DCE7A6",
        "eventID": "cdc4b7ed-e171-4cef-975a-ad829d4123e8",
        "eventType": "AwsApiCall",
        "recipientAccountId": "444455556666",
        "tlsDetails": {
            "tlsVersion": "TLSv1.2",
            "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
            "clientProvidedHostHeader": "s3.amazonaws.com"
    }      
    },
    {
       "eventVersion": "1.03",
       "userIdentity": {
            "type": "IAMUser",
            "principalId": "111122223333",
            "arn": "arn:aws:iam::111122223333:user/myUserName",
            "accountId": "111122223333",
            "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
            "userName": "myUserName"
        },
      "eventTime": "2019-02-01T03:22:33Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "PutBucketAcl",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "",
      "userAgent": "[]",
      "requestParameters": {
          "bucketName": "",
          "AccessControlPolicy": {
              "AccessControlList": {
                  "Grant": {
                      "Grantee": {
                          "xsi:type": "CanonicalUser",
                          "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
                          "ID": "d25639fbe9c19cd30a4c0f43fbf00e2d3f96400a9aa8dabfbbebe1906Example"
                       },
                      "Permission": "FULL_CONTROL"
                   }
              },
              "xmlns": "http://s3.amazonaws.com/doc/2006-03-01/",
              "Owner": {
                  "ID": "d25639fbe9c19cd30a4c0f43fbf00e2d3f96400a9aa8dabfbbebe1906Example"
              }
          },
          "host": [
              "s3.us-west-2.amazonaws.com"
          ],
          "acl": [
              ""
          ]
      },
      "responseElements": null,
      "additionalEventData": {
          "SignatureVersion": "SigV4",
          "CipherSuite": "ECDHE-RSA-AES128-SHA",
          "AuthenticationMethod": "AuthHeader"
      },
      "requestID": "BD8798EACDD16751",
      "eventID": "607b9532-1423-41c7-b048-ec2641693c47",
      "eventType": "AwsApiCall",
      "recipientAccountId": "111122223333",
      "tlsDetails": {
            "tlsVersion": "TLSv1.2",
            "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
            "clientProvidedHostHeader": "s3.amazonaws.com"
    }              
    },
    {
      "eventVersion": "1.03",
      "userIdentity": {
          "type": "IAMUser",
          "principalId": "111122223333",
          "arn": "arn:aws:iam::111122223333:user/myUserName",
          "accountId": "111122223333",
          "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
          "userName": "myUserName"
        },
      "eventTime": "2019-02-01T03:26:37Z",
      "eventSource": "s3.amazonaws.com",
      "eventName": "GetBucketVersioning",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "",
      "userAgent": "[]",
      "requestParameters": {
          "host": [
              "s3.us-west-2.amazonaws.com"
          ],
          "bucketName": "amzn-s3-demo-bucket1",
          "versioning": [
              ""
          ]
      },
      "responseElements": null,
      "additionalEventData": {
          "SignatureVersion": "SigV4",
          "CipherSuite": "ECDHE-RSA-AES128-SHA",
          "AuthenticationMethod": "AuthHeader"
    },
      "requestID": "07D681279BD94AED",
      "eventID": "f2b287f3-0df1-4961-a2f4-c4bdfed47657",
      "eventType": "AwsApiCall",
      "recipientAccountId": "111122223333",
      "tlsDetails": {
            "tlsVersion": "TLSv1.2",
            "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
            "clientProvidedHostHeader": "s3.amazonaws.com"
    }                 
    }
  ]
}
```

# S3 バケットとオブジェクトの CloudTrail イベントログ記録の有効化
<a name="enable-cloudtrail-logging-for-s3"></a>

CloudTrail データイベントを使用して、Amazon S3 のバケットおよびオブジェクトレベルのリクエストに関する情報を取得できます。すべてのバケットまたは特定のバケットのリストの CloudTrail データイベントを有効にするには、[CloudTrail で手動で証跡を作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)する必要があります。

**注記**  
CloudTrail のデフォルト設定では、管理イベントのみが検出されます。アカウントに対してデータイベントを有効にしていることをチェックして確認します。
 高いワークロードを生成している S3 バケットがある場合、短期間で数千のログを生成する可能性があります。ビジーなバケットでは、CloudTrail データイベントを有効にする期間にご注意ください。

 CloudTrail は、選択した S3 バケットに Amazon S3 データイベントを保存します。クエリと分析を簡素化するには、所有する複数のバケットのイベントを適切にまとめられるように別の AWS アカウント のバケットの使用を検討することをお勧めします。AWS Organizations では、モニタリングしているバケットを所有しているアカウントにリンクされた AWS アカウント を簡単に作成することができます。詳細については、「*AWS Organizations ユーザーガイド*」の「[What is AWS Organizations?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)」を参照してください。

CloudTrail で証跡のデータイベントをログに記録する場合、汎用バケットに保存されたオブジェクトのデータイベントを記録するために、高度なイベントセレクタとベーシックイベントセレクタのどちらを使用するかを選択できます。ディレクトリバケットに保存されているオブジェクトのデータイベントをログに記録するには、高度なイベントセレクタを使用する必要があります。詳細については、「[S3 Express One Zone の AWS CloudTrail によるログ記録](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone-logging.html)」を参照してください。

アドバンストイベントセレクタを使用して CloudTrail コンソールで証跡を作成する場合、データイベントセクションで、**[ログセレクタテンプレート]** の **[すべてのイベントをログに記録する]** を選択して、すべてのオブジェクトレベルのイベントをログ記録できます。ベーシックイベントセレクタを使用して CloudTrail コンソールで証跡を作成する場合、データイベントセクションで、**[アカウントのすべての S3 バケットを選択する]** チェックボックスを選択して、すべてのオブジェクトレベルイベントをログ記録できます。

**注記**  
ベストプラクティスとして、AWS CloudTrail データイベントバケットに対してライフサイクル設定を作成することをお勧めします。ログファイルを監査する必要があると考える期間が経過したらログファイルを定期的に削除するように、ライフサイクル設定を設定します。これにより、各クエリで Athena が分析するデータの量が減ります。詳細については、[バケットに S3 ライフサイクル設定を設定する](how-to-set-lifecycle-configuration-intro.md) を参照してください。
ロギング形式の詳細については、[AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md) を参照してください。
CloudTrail ログをクエリする方法の例については、*AWS ビッグデータブログ*の記事 [Analyze Security, Compliance, and Operational Activity Using AWS CloudTrail and Amazon Athena](https://aws.amazon.com/blogs/big-data/aws-cloudtrail-and-amazon-athena-dive-deep-to-analyze-security-compliance-and-operational-activity/) を参照してください。

## コンソールを使用してバケット内のオブジェクトのログ記録を有効にする
<a name="enable-cloudtrail-events"></a>

AWS CloudTrail コンソールを使用し、CloudTrail 証跡を設定して、S3 バケット内のオブジェクトのデータイベントをログに記録できます。CloudTrail では、`GetObject`、`DeleteObject`、`PutObject` など、Amazon S3 オブジェクトレベルの API オペレーションのログ記録がサポートされます。これらのイベントは、*データイベント*と呼ばれます。

デフォルトでは CloudTrail 証跡はデータイベントを記録しませんが、証跡を設定して、指定した S3 バケットのデータイベントを記録するか、AWS アカウントですべての Amazon S3 バケットのデータイベントを記録するようにできます。詳細については、[AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md) を参照してください。

CloudTrail では、CloudTrail イベント履歴にデータイベントが設定されません。さらに、すべてのバケットレベルのアクションが CloudTrail イベント履歴に入力されるわけではありません。CloudTrail のログ記録によって追跡される Amazon S3 バケットレベルの API アクションの詳細については、「[CloudTrail ログ記録によって追跡される Amazon S3 バケットレベルのアクション](cloudtrail-logging-s3-info.md#cloudtrail-bucket-level-tracking)」を参照してください。CloudTrail ログのクエリ方法の詳細については、[Amazon CloudWatch Logs のフィルタパターンと Amazon Athena を使用した CloudTrail ログのクエリ](https://aws.amazon.com/premiumsupport/knowledge-center/find-cloudtrail-object-level-events/)に関する AWS ナレッジセンターの記事を参照してください。

**注記**  
AWS CloudTrail でデータアクティビティをログに記録する場合、Amazon S3 `DeleteObjects` データイベントのイベントレコードには、そのオペレーションの一部として削除された各オブジェクトの `DeleteObjects` イベントと `DeleteObject` イベントの両方が含まれます。削除されたオブジェクトに関する追加の可視性をイベントレコードから除外できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[データイベントのフィルタリングの AWS CLI の例](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/filtering-data-events.html#filtering-data-events-deleteobjects)」を参照してください。

S3 汎用バケットまたは S3 ディレクトリバケットでオブジェクトの CloudTrail データイベントの記録を有効にするには、「*AWS CloudTrail ユーザーガイド*」の「[Creating a trail with the CloudTrail console](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time)」を参照してください。

S3 ディレクトリバケット内のオブジェクトのログ記録の詳細については、「[ディレクトリバケットの AWS CloudTrail を使用したログ記録](s3-express-one-zone-logging.md)」を参照してください。

CloudTrail コンソールを使用して S3 データイベントを記録するように証跡を設定する方法については、「*AWS CloudTrail ユーザーガイド*」の「[Logging data events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)」を参照してください。

S3 バケット内のオブジェクトの CloudTrail データイベントのログ記録を無効にするには、「*AWS CloudTrail ユーザーガイド*」の「[Deleting a trail with the CloudTrail console](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-delete-trails-console.html)」を参照してください。

**重要**  
追加の変更がイベントデータに適用されます。詳細については、[AWS CloudTrail 料金表](https://aws.amazon.com/cloudtrail/pricing/)を参照してください。

S3 バケットを使用した CloudTrail ログ記録の詳細については、以下のトピックを参照してください。
+ [汎用バケットの作成](create-bucket-overview.md)
+ [S3 汎用バケットのプロパティの表示](view-bucket-properties.md)
+ [AWS CloudTrail を使用した Amazon S3 API コールのログ記録](cloudtrail-logging.md)
+ [AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-working-with-log-files.html)の *Working with CloudTrail log files*

# CloudTrail を使用した Amazon S3 リクエストの識別
<a name="cloudtrail-request-identification"></a>

Amazon S3 では、AWS CloudTrail イベントログを使用してリクエストを識別することができます。AWS CloudTrail は、Amazon S3 リクエストを識別する上で推奨される方法ですが、Amazon S3 サーバーアクセスログを使用している場合は、[Amazon S3 アクセスログを使用したリクエストの識別](using-s3-access-logs-to-identify-requests.md) を参照してください。

**Topics**
+ [CloudTrail ログで Amazon S3 に対して行われたリクエストを特定する](#identify-S3-requests-using-in-CTlog)
+ [CloudTrail を使用した Amazon S3 Signature Version 2 リクエストの識別](#cloudtrail-identification-sigv2-requests)
+ [CloudTrail を使用した S3 オブジェクトへのアクセスの識別](#cloudtrail-identification-object-access)

## CloudTrail ログで Amazon S3 に対して行われたリクエストを特定する
<a name="identify-S3-requests-using-in-CTlog"></a>

バケットにイベントを送信するために CloudTrail をセットアップした後、Amazon S3 コンソールで送信先のバケットにオブジェクトが送信されるのを確認できるようになります。これらは次の形式になっています。

`s3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/Region/yyyy/mm/dd` 

CloudTrail によりログ記録されたイベントは、S3 バケットにある圧縮された gzipped JSON オブジェクトに保存されます。リクエストを効率的に見つけるには、Amazon Athena などのサービスを利用して CloudTrail ログにインデックスを作成し、クエリします。

CloudTrail と Athena の詳細については、「*Amazon Athena ユーザーガイド*」の「[パーティション射影を使用した Athena での AWS CloudTrail ログ用のテーブルの作成](https://docs.aws.amazon.com/athena/latest/ug/cloudtrail-logs.html#create-cloudtrail-table-partition-projection)」を参照してください。

## CloudTrail を使用した Amazon S3 Signature Version 2 リクエストの識別
<a name="cloudtrail-identification-sigv2-requests"></a>

CloudTrail イベントログを使用して、Amazon S3 でリクエストに署名するために使用された API 署名バージョンを特定できます。署名バージョン 2 のサポートがオフになる (廃止される) ため、この機能は重要です。その後、Amazon S3 は署名バージョン 2 を使用するリクエストを受け入れず、すべてのリクエストに *Signature Version 4* 署名を使用する必要があります。

CloudTrail を使用して、署名バージョン 2 の署名を使用しているワークフローがあるかどうかを確認することを*強く*お勧めします。業務に影響が出ないように、Signature Version 4 を使用してライブラリとコードをアップグレードし、修正します。

詳細については、AWS re:Post の「[お知らせ: Amazon S3 用の AWS CloudTrail は、セキュリティ監査を強化するための新しいフィールドを追加します](https://forums.aws.amazon.com/ann.jspa?annID=6551)」を参照してください。

**注記**  
Amazon S3 の CloudTrail イベントには、キー名である「`additionalEventData`」のリクエスト詳細に署名バージョンが含まれます。Amazon S3 にあるオブジェクトに対する `GET`、`PUT`、`DELETE` などのリクエストで Signature Version を見つけるには、CloudTrail データイベントを有効にする必要があります。(デフォルトでは、この機能はオフになっています。)

AWS CloudTrailSignature Version 2 リクエストを識別する方法として、 が推奨されます。Amazon S3 のサーバーアクセスログを使用している場合は、「[Amazon S3 アクセスログを使用した Signature Version 2 リクエストの識別](using-s3-access-logs-to-identify-requests.md#using-s3-access-logs-to-identify-sigv2-requests)」を参照してください。

**Topics**
+ [Amazon S3 署名バージョン 2 リクエストを識別する Athena クエリの例](#ct-examples-identify-sigv2-requests)
+ [署名バージョン 2 データのパーティション化](#partitioning-sigv2-data)

### Amazon S3 署名バージョン 2 リクエストを識別する Athena クエリの例
<a name="ct-examples-identify-sigv2-requests"></a>

**Example — Signature Version 2 のイベントをすべて選択し、`EventTime`、`S3_Action`、`Request_Parameters`、`Region`、`SourceIP`、`UserAgent` のみを印刷する**  
以下の Athena クエリで、*`s3_cloudtrail_events_db.cloudtrail_table`* を Athena の詳細と置き換え、必要に応じて上限を引き上げるか削除します。  

```
SELECT EventTime, EventName as S3_Action, requestParameters as Request_Parameters, awsregion as AWS_Region, sourceipaddress as Source_IP, useragent as User_Agent
FROM s3_cloudtrail_events_db.cloudtrail_table
WHERE eventsource='s3.amazonaws.com'
AND json_extract_scalar(additionalEventData, '$.SignatureVersion')='SigV2'
LIMIT 10;
```

**Example − 署名バージョン 2 トラフィックを送信しているすべてのリクエスタを選択します。**  
   

```
SELECT useridentity.arn, Count(requestid) as RequestCount
FROM s3_cloudtrail_events_db.cloudtrail_table
WHERE eventsource='s3.amazonaws.com'
    and json_extract_scalar(additionalEventData, '$.SignatureVersion')='SigV2'
Group by useridentity.arn
```

### 署名バージョン 2 データのパーティション化
<a name="partitioning-sigv2-data"></a>

クエリするデータが大量にある場合、パーティション化されたテーブルを作成することにより Athena のコストを削減しランタイムを短縮できます。

それには、次のようなパーティションがある新しいテーブルを作成します。

```
   CREATE EXTERNAL TABLE s3_cloudtrail_events_db.cloudtrail_table_partitioned(
        eventversion STRING,
        userIdentity STRUCT<
            type:STRING,
            principalid:STRING,
            arn:STRING,
            accountid:STRING,
            invokedby:STRING,
            accesskeyid:STRING,
            userName:STRING,
         sessioncontext:STRUCT<
                    attributes:STRUCT< 
                    mfaauthenticated:STRING,
                    creationdate:STRING>,
                    sessionIssuer:STRUCT<
                    type:STRING,
                    principalId:STRING,
                    arn:STRING,
                    accountId:STRING,
                    userName:STRING>
                >
             >,
        eventTime STRING,
        eventSource STRING,
        eventName STRING,
        awsRegion STRING,
        sourceIpAddress STRING,
        userAgent STRING,
        errorCode STRING,
        errorMessage STRING,
        requestParameters STRING,
        responseElements STRING,
        additionalEventData STRING,
        requestId STRING,
        eventId STRING,
        resources ARRAY<STRUCT<ARN:STRING,accountId: STRING,type:STRING>>, 
        eventType STRING,
        apiVersion STRING,
        readOnly STRING,
        recipientAccountId STRING,
        serviceEventDetails STRING,
        sharedEventID STRING,
        vpcEndpointId STRING
    )   
    PARTITIONED BY (region string, year string, month string, day string)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
    STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'
    OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
    LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/';
```

その後で個々にパーティションを作成します。作成していない日付から結果を取得することはできません。

```
ALTER TABLE s3_cloudtrail_events_db.cloudtrail_table_partitioned ADD
    PARTITION (region= 'us-east-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/us-east-1/2019/02/19/'
    PARTITION (region= 'us-west-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/us-west-1/2019/02/19/'
    PARTITION (region= 'us-west-2', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/us-west-2/2019/02/19/'
    PARTITION (region= 'ap-southeast-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/ap-southeast-1/2019/02/19/'
    PARTITION (region= 'ap-southeast-2', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/ap-southeast-2/2019/02/19/'
    PARTITION (region= 'ap-northeast-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/ap-northeast-1/2019/02/19/'
    PARTITION (region= 'eu-west-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/eu-west-1/2019/02/19/'
    PARTITION (region= 'sa-east-1', year= '2019', month= '02', day= '19') LOCATION 's3://amzn-s3-demo-bucket1/AWSLogs/111122223333/CloudTrail/sa-east-1/2019/02/19/';
```

これらのパーティションに基づいてリクエストを実行でき、バケット全体を読み込む必要はありません。

```
SELECT useridentity.arn,
Count(requestid) AS RequestCount
FROM s3_cloudtrail_events_db.cloudtrail_table_partitioned
WHERE eventsource='s3.amazonaws.com'
AND json_extract_scalar(additionalEventData, '$.SignatureVersion')='SigV2'
AND region='us-east-1'
AND year='2019'
AND month='02'
AND day='19'
Group by useridentity.arn
```

## CloudTrail を使用した S3 オブジェクトへのアクセスの識別
<a name="cloudtrail-identification-object-access"></a>

AWS CloudTrail イベントログを使用して、`GetObject`、`DeleteObject`、`PutObject` などのデータイベントに対する Amazon S3 オブジェクトアクセスリクエストを識別し、それらのリクエストに関する追加情報を確認できます。

**注記**  
AWS CloudTrail でデータアクティビティをログに記録する場合、Amazon S3 `DeleteObjects` データイベントのイベントレコードには、そのオペレーションの一部として削除された各オブジェクトの `DeleteObjects` イベントと `DeleteObject` イベントの両方が含まれます。削除されたオブジェクトに関する追加の可視性をイベントレコードから除外できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[データイベントのフィルタリングの AWS CLI の例](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/filtering-data-events.html#filtering-data-events-deleteobjects)」を参照してください。

以下の例は、AWS CloudTrail イベントログから Amazon S3 のすべての `PUT` オブジェクトリクエストを取得する方法を示しています。

**Topics**
+ [Amazon S3 オブジェクトアクセスリクエストを識別する Athena クエリの例](#ct-examples-identify-object-access-requests)

### Amazon S3 オブジェクトアクセスリクエストを識別する Athena クエリの例
<a name="ct-examples-identify-object-access-requests"></a>

以下の Athena クエリの例で、*`s3_cloudtrail_events_db.cloudtrail_table`* を Athena の詳細と置き換え、必要に応じてデータ範囲を変更します。

**Example — `PUT` オブジェクトアクセス要求のあるイベントをすべて選択し、`EventTime`、`EventSource`、`SourceIP`、`UserAgent`、`BucketName`、`object`、`UserARN` のみ印刷する**  

```
SELECT
  eventTime, 
  eventName, 
  eventSource, 
  sourceIpAddress, 
  userAgent, 
  json_extract_scalar(requestParameters, '$.bucketName') as bucketName, 
  json_extract_scalar(requestParameters, '$.key') as object,
  userIdentity.arn as userArn
FROM
  s3_cloudtrail_events_db.cloudtrail_table
WHERE
  eventName = 'PutObject'
  AND eventTime BETWEEN '2019-07-05T00:00:00Z' and '2019-07-06T00:00:00Z'
```

**Example — `GET` オブジェクトアクセス要求のあるイベントをすべて選択し、`EventTime`、`EventSource`、`SourceIP`、`UserAgent`、`BucketName`、`object`、`UserARN` のみ印刷する**  

```
SELECT
  eventTime, 
  eventName, 
  eventSource, 
  sourceIpAddress, 
  userAgent, 
  json_extract_scalar(requestParameters, '$.bucketName') as bucketName, 
  json_extract_scalar(requestParameters, '$.key') as object,
  userIdentity.arn as userArn
FROM
  s3_cloudtrail_events_db.cloudtrail_table
WHERE
  eventName = 'GetObject'
  AND eventTime BETWEEN '2019-07-05T00:00:00Z' and '2019-07-06T00:00:00Z'
```

**Example — 特定の期間にバケットに対して行われた匿名のリクエスタイベントをすべて選択し、`EventTime`、`EventName`、`EventSource`、`SourceIP`、`UserAgent`、`BucketName`、`UserARN`、`AccountID` のみ印刷する**  

```
SELECT
  eventTime, 
  eventName, 
  eventSource, 
  sourceIpAddress, 
  userAgent, 
  json_extract_scalar(requestParameters, '$.bucketName') as bucketName, 
  userIdentity.arn as userArn,
  userIdentity.accountId
FROM
  s3_cloudtrail_events_db.cloudtrail_table
WHERE
  userIdentity.accountId = 'anonymous'
  AND eventTime BETWEEN '2019-07-05T00:00:00Z' and '2019-07-06T00:00:00Z'
```

**Example — 承認に ACL が必要なリクエストをすべて特定する**  
 次の Amazon Athena のクエリの例は、承認のためにアクセスコントロールリスト (ACL) が必要な S3 バケットへのすべてのリクエストを特定する方法を示しています。リクエストに承認用の ACL が必要な場合、`additionalEventData` の `aclRequired` の値は `Yes` です。ACL が不要な場合は、`aclRequired` は存在しません。この情報を使用して、これらの ACL 権限を適切なバケットポリシーに移行できます。これらのバケットポリシーを作成したら、これらのバケットの ACL を無効にできます。ACL の無効化の詳細については、「[ACL を無効にする前提条件。](object-ownership-migrating-acls-prerequisites.md)」を参照してください。  

```
SELECT
  eventTime, 
  eventName, 
  eventSource, 
  sourceIpAddress, 
  userAgent, 
  userIdentity.arn as userArn,
  json_extract_scalar(requestParameters, '$.bucketName') as bucketName,
  json_extract_scalar(requestParameters, '$.key') as object,
  json_extract_scalar(additionalEventData, '$.aclRequired') as aclRequired
FROM 
  s3_cloudtrail_events_db.cloudtrail_table
WHERE
  json_extract_scalar(additionalEventData, '$.aclRequired') = 'Yes'
  AND eventTime BETWEEN '2022-05-10T00:00:00Z' and '2022-08-10T00:00:00Z'
```

**注記**  
このクエリの例は、セキュリティのモニタリングにも役立つ場合があります。予期しないまたは不正な IP アドレスやリクエスタからの `PutObject` または `GetObject` コールの結果を確認し、バケットへの匿名リクエストを特定できます。
 このクエリでは、ログ記録が有効になった時間以降の情報のみ取得されます。

Amazon S3 のサーバーアクセスログを使用している場合は、[Amazon S3 アクセスログを使用したオブジェクトアクセスリクエストの識別](using-s3-access-logs-to-identify-requests.md#using-s3-access-logs-to-identify-objects-access) を参照してください。

# サーバーアクセスログによるリクエストのログ記録
<a name="ServerLogs"></a>

サーバーアクセスのログには、バケットに対するリクエストの詳細が記録されます。サーバーアクセスのログは、多くのアプリケーションに役立ちます。例えば、アクセスのログ情報は、セキュリティやアクセスの監査に役立ちます。この情報は、顧客基盤の把握や Amazon S3 の請求の理解にもつながります。

**注記**  
サーバーアクセスログには、2019 年 3 月 20 日以降に開設されたリージョンで発生するリージョン違いによるリダイレクトエラーに関する情報は記録されません。リージョン違いによるリダイレクトエラーは、オブジェクトまたはバケットに対するリクエストがそのバケットがあるリージョン以外で行われた場合に発生します。

## ログ配信を有効にするにはどうすればよいですか?
<a name="server-access-logging-overview"></a>

ログ配信を有効にするには、次の基本的な手順を実行します。詳細については、「[Amazon S3 サーバーアクセスログを有効にします。](enable-server-access-logging.md)」を参照してください。

1. **送信先バケット (別名ターゲットバケット) の名前を指定**します。**このバケットは、Amazon S3 がアクセスログをオブジェクトとして保存する場所です。ソースと送信先バケットの両方が同じ AWS リージョン にあり、同じアカウントが所有している必要があります。送信先バケットには S3 オブジェクトロックのデフォルト保持期間設定を指定できません。また、送信先バケットでは [リクエスタ支払い] を有効にできません。

   ログの保存先のバケットとして、ソースバケットと同じリージョンにあるユーザー所有のバケットを指定できます。これにはソースバケット自体も含まれます。ただし、ログを管理しやすくするため、アクセスログは別のバケットに保存することをお勧めします。

   ソースバケットと送信先バケットが同じである場合、バケットに書き込まれるログに関する追加のログが作成されます。ストレージの請求額がいくらか増える可能性があるため、この方法はお勧めしていません。また、ログに関する追加のログのために、必要なログを見つけにくくなります。

   アクセス ログをソースバケットに保存する場合は、すべてのログオブジェクトキーに対して送信先プレフィックス (別名**ターゲットプレフィックス) を指定することをお勧めします。プレフィックスを指定すると、すべてのログオブジェクト名が共通の文字列で始まるため、ログオブジェクトを識別しやすくなります。

1. **(オプション) Amazon S3 のすべてのログオブジェクトのキーにプレフィックスを割り当てます。**送信先プレフィクス (**別名ターゲットプレフィックス) を使用すると、ログオブジェクトを識別しやすくなります。例えば、プレフィックスの値として `logs/` を指定すると、Amazon S3 で作成する各ログオブジェクトのキーの先頭に `logs/` というプレフィックスが付けられます。

   ```
   logs/2013-11-01-21-32-16-E568B2907131C0C0
   ```

   プレフィックス値 `logs` を指定すると、ログオブジェクトは次のように表示されます。

   ```
   logs2013-11-01-21-32-16-E568B2907131C0C0
   ```

   [プレフィックス](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix) は、複数のバケットログが同じ送信先バケットにログを記録する場合にもソースバケットの識別に役立ちます。

   キープレフィックスは、ログを削除する際にも役に立ちます。例えば、特定のキープレフィックスを使用して、Amazon S3 のライフサイクル設定ルールを指定することができます。詳細については、「[Amazon S3 ログファイルの削除](deleting-log-files-lifecycle.md)」を参照してください。

1. **(オプション) 生成されたログをその他のユーザーが利用するために、アクセス許可を設定します。****デフォルトでは、バケット所有者のみにログオブジェクトへのフルアクセスが許可されます。(サーバーアクセスログが保存されている) 送信先バケットが S3 オブジェクト所有権のバケット所有者強制設定を使用してアクセスコントロールリスト (ACL) を無効化する場合、ACL を使用する**送信先権限のアクセス許可を付与することはできません。ただし、送信先バケットのバケットポリシーを更新して、その他のユーザーにアクセスを付与することはできます。詳細については、「[Amazon S3 用 Identity and Access Management](security-iam.md)」および「[ログ配信許可](enable-server-access-logging.md#grant-log-delivery-permissions-general)」を参照してください。

1. **(オプション) ログファイルのログオブジェクトキー形式を設定します。**ログオブジェクトキーの形式 (**別名ターゲットオブジェクトキー形式) には 2 つのオプションがあります。
   + **日付ベース以外のパーティション分割** – これはオリジナルのログオブジェクトキーの形式です。この形式を選択すると、ログファイルのキー形式は次のとおりになります。

     ```
     [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
     ```

     例えば、`logs/` をプレフィックスとして指定すると、ログオブジェクトには次のような名前が付けられます。

     ```
     logs/2013-11-01-21-32-16-E568B2907131C0C0
     ```
   + **日付ベースのパーティション分割** – 日付ベースのパーティショニングを選択した場合、ログ形式で使用される日付ソースとして、ログファイルのイベント時間または配信時間を選択できます。この形式を使用すると、ログのクエリが簡単になります。

     日付ベースのパーティション分割を選択すると、ログファイルのキー形式は次のとおりになります。

     ```
     [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
     ```

     例えば、`logs/` をターゲットプレフィックスとして指定すると、ログオブジェクトには次のような名前が付けられます。

     ```
     logs/123456789012/us-west-2/amzn-s3-demo-source-bucket/2023/03/01/2023-03-01-21-32-16-E568B2907131C0C0
     ```

     配信時間配信の場合、ログファイル名の時刻はログファイルの配信時間に対応します。

     イベント時間配信の場合、年、月、日はイベントが発生した日に対応し、時、分、秒はキーで `00` に設定されます。このようなログファイルに配信されるログは、特定の日のみを対象とします。

   

   AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用してログを設定する場合は、`TargetObjectKeyFormat` を使用してログオブジェクトのキー形式を指定します。日付ベース以外のパーティション分割を指定するには、`SimplePrefix` を使用します。日付ベースのパーティション分割を指定するには、`PartitionedPrefix` を使用します。`PartitionedPrefix` を使用する場合は、`PartitionDateSource` で `EventTime` または `DeliveryTime` を指定します。

   `SimplePrefix` の場合、ログファイルキー形式は、次のとおりです。

   ```
   [TargetPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
   ```

   イベント時刻または配信時刻の `PartitionedPrefix` の場合、ログファイルのキー形式は次のとおりになります。

   ```
   [TargetPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
   ```

## ログオブジェクトのキーフォーマット
<a name="server-log-keyname-format"></a>

Amazon S3 では、送信先バケットにログオブジェクトをアップロードする際に、次のオブジェクトキー形式を使用します。
+ **日付ベース以外のパーティション分割** – これはオリジナルのログオブジェクトキーの形式です。この形式を選択すると、ログファイルのキー形式は次のとおりになります。

  ```
  [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
  ```
+ **日付ベースのパーティション分割** – 日付ベースのパーティショニングを選択した場合、ログ形式で使用される日付ソースとして、ログファイルのイベント時間または配信時間を選択できます。この形式を使用すると、ログのクエリが簡単になります。

  日付ベースのパーティション分割を選択すると、ログファイルのキー形式は次のとおりになります。

  ```
  [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]
  ```

ログオブジェクトキーでは、`YYYY`、`MM`、`DD`、`hh`、`mm`、`ss` は、ログファイルを配信した年、月、日、時、分、秒をそれぞれ表す数字になります。これらの日付と時刻は協定世界時 (UTC) です。

ある時点で配信されたログファイルには、その時点より前に書き込まれたレコードが含まれます。特定の期間のすべてのログレコードが配信されたかどうかを知る方法はありません。

キーの `UniqueString` コンポーネントは、ファイルの上書きを防止するためのものです。意味はないため、ログ処理ソフトウェアでは無視されます。

## ログを配信する方法
<a name="how-logs-delivered"></a>

Amazon S3 は定期的にアクセスログレコードを収集し、レコードをまとめてログファイルを作成し、そのログファイルを、ログオブジェクトとして送信先バケットにアップロードします。複数のソースバケットでログ記録の配信先が同じ送信先バケットである場合、これらのすべてのソースバケットのアクセスログが送信先バケットに配信されます。ただし、各ログオブジェクトは、ソースバケット別にアクセスログレコードをレポートします。

Amazon S3 は特別なログ配信アカウントを使用してサーバーアクセスログを書き込みます。このような書き込みは、通常のアクセスコントロールの制約に従います。送信先バケットのバケットポリシーを更新して、アクセスログ配信用のログ記録サービスプリンシパル (`logging.s3.amazonaws.com`) へのアクセス権を付与することをお勧めします。バケットのアクセスコントロールリスト (ACL) を介して S3 ログ配信グループにアクセスログ配信のためのアクセスを付与することもできます。ただし、バケット ACL を使用して S3 ログ配信グループへのアクセスを許可することはお勧めしません。

サーバーアクセスのログ記録を有効にして、バケットポリシーを通じてアクセスログ配信のアクセスを許可する場合は、送信先バケットのバケットポリシーを更新して、`s3:PutObject` にログ記録サービスプリンシパルのアクセスを許可します。Amazon S3 コンソールを使用してサーバーアクセスのログ記録を有効にすると、コンソールは、送信先バケットのバケットポリシーを自動的に更新して、ログ記録サービスのプリンシパルにこれらの許可を付与します。サーバーアクセスのログ配信許可の付与の詳細については、[ログ配信許可](enable-server-access-logging.md#grant-log-delivery-permissions-general) を参照してください。

**注記**  
S3 は、VPC エンドポイントポリシーで拒否されている場合、または VPC ポリシーが評価される前にリクエストが失敗した場合、VPC エンドポイントリクエストの CloudTrail ログまたはサーバーアクセスログのリクエスタまたはバケット所有者への配信をサポートしません。

**S3 オブジェクト所有権のバケット所有者強制設定**  
送信先バケットが、オブジェクト所有権のバケット所有者強制設定を使用している場合、ACL は無効になり、アクセス許可への影響はなくなります。送信先バケットのバケットポリシーを更新して、アクセスログ配信用のログ記録サービスプリンシパルへのアクセス権を付与する必要があります。オブジェクトの所有権の詳細については、「[サーバーアクセスのログ記録用の S3 ログ配信グループへのアクセスを付与する](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs)」を参照してください。

## ベストエフォート型のサーバーログ配信
<a name="LogDeliveryBestEffort"></a>

サーバーアクセスログレコードの配信は、ベストエフォートベースで行われます。ログ記録用に適切にバケットを設定した場合、そのバケットへのほとんどのリクエストについてログレコードが配信されます。ほとんどのログレコードは、記録された時間から数時間以内に配信されますが、配信間隔は短くなる場合もあります。

サーバーログの完全性や適時性は保証されません。リクエストのログレコードが、リクエストが実際に処理されてからかなり後に配信されたり、*配信すらされないこともあり得ます*。ログレコードが重複している場合さえあります。サーバーログの目的は、バケットに対するトラフィックの特性を理解することです。ログレコードが損失したり、ログレコードが重複したりすることはまれであるとはいえ、すべてのリクエストが完全に報告されるとは限りません。

サーバーログ作成機能はベストエフォート型であるため、使用状況レポートには、サーバーログに記録されていないアクセスリクエストが含まれる場合があります。このような使用状況レポートは、AWS Billing and Cost Management コンソールの **[Cost & usage reports]** で確認できます。

## バケットのログ記録ステータスの変更が有効になるまでには時間がかかる
<a name="BucketLoggingStatusChanges"></a>

バケットのログ記録ステータスの変更がログファイルの配信に反映されるまでには時間がかかります。例えば、バケットのログを有効にする場合、その後数時間に行われるリクエストは記録される場合もあれば、されない場合もあります。ログ記録の送信先バケットをバケット A からバケット B に変更すると、その後 1 時間は一部のログがバケット A に引き続き配信されたり、新しいターゲットバケット B に配信されたりします。いずれにしても、最終的に新しい設定が有効になるため、ユーザー側の操作は一切必要ありません。

ログ記録とログファイルの詳細については、次のセクションを参照してください。

**Topics**
+ [ログ配信を有効にするにはどうすればよいですか?](#server-access-logging-overview)
+ [ログオブジェクトのキーフォーマット](#server-log-keyname-format)
+ [ログを配信する方法](#how-logs-delivered)
+ [ベストエフォート型のサーバーログ配信](#LogDeliveryBestEffort)
+ [バケットのログ記録ステータスの変更が有効になるまでには時間がかかる](#BucketLoggingStatusChanges)
+ [Amazon S3 サーバーアクセスログを有効にします。](enable-server-access-logging.md)
+ [Amazon S3 サーバーアクセスログの形式](LogFormat.md)
+ [Amazon S3 ログファイルの削除](deleting-log-files-lifecycle.md)
+ [Amazon S3 アクセスログを使用したリクエストの識別](using-s3-access-logs-to-identify-requests.md)
+ [サーバーのアクセスログ記録のトラブルシューティング](troubleshooting-server-access-logging.md)

# Amazon S3 サーバーアクセスログを有効にします。
<a name="enable-server-access-logging"></a>

サーバーアクセスのログには、Amazon S3 バケットに対するリクエストの詳細が記録されます。サーバーアクセスのログは、多くのアプリケーションに役立ちます。例えば、アクセスのログ情報は、セキュリティやアクセスの監査に役立ちます。この情報は、顧客基盤の把握や Amazon S3 の請求の理解にもつながります。

デフォルトでは、Amazon S3 によってサーバーアクセスログは収集されません。ログ記録を有効にすると、Amazon S3 は、ソースバケットのアクセスログを選択された送信先バケット(**ターゲットバケット) に配信します。ソースと送信先バケットの両方が同じ AWS リージョン にあり、同じ AWS アカウント が所有している必要があります。

アクセスログのレコードには、バケットに対するリクエストの詳細が取り込まれます。この情報には、リクエストタイプ、リクエストで指定したリソース、リクエストを処理した日時などが含まれます。ログ記録の基本の詳細については、[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md) を参照してください。

**重要**  
Amazon S3 バケットに対してサーバーアクセスログ記録を有効にしても追加料金はかかりません。ただし、システムが配信するいずれのログファイルの格納に対しても通常の料金がかかります (ログはいつでも削除できます)。ログファイルの配信にデータ転送料金はかかりません。ただし、ログファイルへのアクセスには通常のデータ転送料金がかかります。
送信先バケットでサーバーアクセスのログ記録が有効になっているべきではありません。ログの保存先のバケットとして、ソースバケットと同じリージョンにあるユーザー所有のバケットを指定できます。これにはソースバケット自体も含まれます。ただし、ソースバケットにログを配信すると、ログの無限ループが発生するため、お勧めしません。ログを管理しやすくするため、アクセスログは別のバケットに保存することをお勧めします。詳細については、[ログ配信を有効にするにはどうすればよいですか?](ServerLogs.md#server-access-logging-overview)を参照してください。
S3 オブジェクトロックが有効になっている S3 バケットは、サーバーアクセスログの送信先バケットとして使用できません。送信先バケットにはデフォルト保持期間設定を指定できません。
送信先バケットでは [リクエスタ支払い] を有効にすることはできません。

サーバーアクセスのログ記録は、Amazon S3 コンソール、Amazon S3 API、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して有効または無効にできます。

## ログ配信許可
<a name="grant-log-delivery-permissions-general"></a>

Amazon S3 は特別なログ配信アカウントを使用してサーバーアクセスログを書き込みます。このような書き込みは、通常のアクセスコントロールの制約に従います。アクセスログを配信するには、ロギングサービスプリンシパル (`logging.s3.amazonaws.com`) に送信先バケットへのアクセス権を付与する必要があります。

Amazon S3 にログ配信アクセス許可を付与するには、送信先バケットの S3 オブジェクト所有権の設定に応じて、バケットポリシーまたはバケットアクセスコントロールリスト (ACL) を使用できます。ただし、ACL の代わりにバケットポリシーを使用することをお勧めします。

**S3 オブジェクト所有権のバケット所有者強制設定**  
送信先バケットが、オブジェクト所有権のバケット所有者強制設定を使用している場合、ACL は無効になり、アクセス許可への影響はなくなります。この場合は、送信先バケットのバケットポリシーを更新して、アクセスログ配信用のログ記録サービスプリンシパルへのアクセス権を付与する必要があります。S3 ログ配信グループへのアクセスを許可すると、バケット ACL を更新できません。また、送信先権限 (**別名ターゲット権限) [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) を設定に含めることもできません。

アクセスログ配信用の既存のバケット ACL をバケットポリシーに移行する方法については、「[サーバーアクセスのログ記録用の S3 ログ配信グループへのアクセスを付与する](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs)」を参照してください。オブジェクトの所有権の詳細については、「[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md)」を参照してください。新しいバケットを作成するとき、ACL はデフォルトでは無効になっています。

**バケットポリシーを使用したアクセスの付与**  
送信先バケットでバケットポリシーを使用してアクセスを許可するには、バケットポリシーを更新して、ログ記録サービスプリンシパルに `s3:PutObject` アクセス許可を付与します。Amazon S3 コンソールを使用してサーバーアクセスのログ記録を有効にすると、コンソールは、送信先バケットのバケットポリシーを自動的に更新して、ログ記録サービスプリンシパルにこのようなアクセス許可を付与します。プログラムでサーバーアクセスのログ記録を有効にする場合、送信先バケットのバケットポリシーを手動で更新して、アクセスログ配信用のログ記録サービスプリンシパルへのアクセス権を付与する必要があります。

ログ記録サービスプリンシパルのリソースへのアクセスを制限するバケットポリシーの例については、「[バケットポリシーを使用して、ロギングサービスプリンシパルに許可を付与](#grant-log-delivery-permissions-bucket-policy)」を参照してください。

**バケット ACL を使用したアクセスの付与**  
代わりに、バケット ACL を使用して、アクセスログ配信のアクセスを許可できます。S3 ログ配信グループに `WRITE` と `READ_ACP` の許可を付与する許可エントリーをバケット ACL に追加します。ただし、バケット ACL を使用して S3 ログ配信グループへのアクセスを許可することはお勧めしません。詳細については、「[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md)」を参照してください。アクセスログ配信用の既存のバケット ACL をバケットポリシーに移行する方法については、「[サーバーアクセスのログ記録用の S3 ログ配信グループへのアクセスを付与する](object-ownership-migrating-acls-prerequisites.md#object-ownership-server-access-logs)」を参照してください。ログ記録サービスプリンシパルのリソースへのアクセスを制限する ACL の例については、「[バケット ACL を使用して、ログ配信グループにアクセス許可を付与します。](#grant-log-delivery-permissions-acl)」を参照してください。

### バケットポリシーを使用して、ロギングサービスプリンシパルに許可を付与
<a name="grant-log-delivery-permissions-bucket-policy"></a>

このバケットポリシーの例は、`s3:PutObject` アクセス許可をログ記録サービスプリンシパル (`logging.s3.amazonaws.com`) に付与します。このバケットポリシーを実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。次のポリシーでは、`amzn-s3-demo-destination-bucket` はサーバーアクセスログが配信される送信先バケットで、`amzn-s3-demo-source-bucket` は送信元バケットです。`EXAMPLE-LOGGING-PREFIX` は、ログオブジェクトに使用するオプションの送信先のプレフィックス (別称 *ターゲットプレフィックス*) です。`SOURCE-ACCOUNT-ID` は、ソースバケットを所有する AWS アカウントです。

**注記**  
バケットポリシーに `Deny` ステートメントがある場合は、それらが Amazon S3 からのアクセスログの配信を防止していないことを確認します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/EXAMPLE-LOGGING-PREFIX*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                }
            }
        }
    ]
}
```

------

### バケット ACL を使用して、ログ配信グループにアクセス許可を付与します。
<a name="grant-log-delivery-permissions-acl"></a>

**注記**  
セキュリティ上のベストプラクティスとして、Amazon S3 はすべての新しいバケットのアクセスコントロールリスト (ACL) をデフォルトで無効にします。Amazon S3 コンソールでの ACL アクセス権限の詳細については、「[ACL の設定](managing-acls.md)」を参照してください。

バケット ACL を使用してログ配信グループに許可を付与することはできますが、この方法はお勧めしません。ただし、送信先バケットが、オブジェクト所有権のバケット所有者強制設定を使用している場合、バケット ACL や オブジェクト ACL を設定することはできません。また、送信先権限 (**別名ターゲット権限) [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) を設定に含めることもできません。代わりに、ロギングサービスプリンシパル (`logging.s3.amazonaws.com`) にアクセス許可を付与するために、バケットポリシーを使用する必要があります。詳細については、「[ログ配信許可](#grant-log-delivery-permissions-general)」を参照してください。

バケット ACL では、ログ配信グループは次の URL で示されます。

```
1. http://acs.amazonaws.com/groups/s3/LogDelivery
```

`WRITE` と `READ_ACP` (ACL 読み取り) アクセス許可を付与するには、送信先バケット ACL に次の権限を追加します。

```
 1. <Grant>
 2.     <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:type="Group">
 3.         <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> 
 4.     </Grantee>
 5.     <Permission>WRITE</Permission>
 6. </Grant>
 7. <Grant>
 8.     <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:type="Group">
 9.         <URI>http://acs.amazonaws.com/groups/s3/LogDelivery</URI> 
10.     </Grantee>
11.     <Permission>READ_ACP</Permission>
12. </Grant>
```

プログラムを使用して ACL アクセス権限を追加する例については、[ACL の設定](managing-acls.md) を参照してください。

**重要**  
バケットで AWS CloudFormation 使用して Amazon S3 サーバーアクセスロギングを有効にし、ACL を使用して S3 ログ配信グループへのアクセスを許可する場合は、CloudFormation テンプレートにも「`AccessControl": "LogDeliveryWrite"`」を追加する必要があります。このようなアクセス許可はバケット ACL を作成することによってのみ付与できます。CloudFormation ではバケットのカスタム ACL を作成できないため、これを実行することは重要です。CloudFormation で使用できるのは既定 ACL のみです。

## サーバーアクセスのログ記録を有効にします
<a name="enable-server-logging"></a>

Amazon S3 コンソール、Amazon S3 REST API、AWS SDK、AWS CLI を使用してサーバーアクセスのログ記録を有効にするには、次の手順を実行します。

### S3 コンソールの使用
<a name="server-access-logging"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、サーバーアクセスログを有効にするバケットの名前を選択します。

1. [**プロパティ**] を選択します。

1. [**サーバーアクセスのログ記録**] で、[**編集**] を選択します。

1. **[Server access logging]** (サーバーアクセスのログ記録) で**[Enable]** (有効) を選択します。

1. **[送信先バケット]** の下で、バケットとオプションのプレフィックスを指定します。プレフィックスを指定する場合は、ログを検出しやすくするために、プレフィックスの後にスラッシュ (`/`) を付けることをお勧めします。
**注記**  
スラッシュ (`/`) を使用したプレフィックスを指定すると、ログオブジェクトが見つけやすくなります。例えば、プレフィックスの値として `logs/` を指定すると、次のとおり Amazon S3 で作成する各ログオブジェクトのキーの先頭に `logs/` というプレフィックスが付けられます。  

   ```
   logs/2013-11-01-21-32-16-E568B2907131C0C0
   ```
プレフィックス値 `logs` を指定すると、ログオブジェクトは次のように表示されます。  

   ```
   logs2013-11-01-21-32-16-E568B2907131C0C0
   ```

1. **[ログオブジェクトキーの形式]** の下で、次を設定します。
   + 日付ベース以外のパーティション分割を選択するには、**[DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]** を選択します。
   + 日付ベースでパーティション分割するには、**[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]** を選択してから、**[S3 イベント時刻]** または **[ログファイルの配信時刻]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

   バケットでサーバーアクセスのログ記録を有効にすると、コンソールはソースバケットでのログ記録を有効にして、送信先バケットのバケットポリシーを更新し、ログ記録サービスプリンシパル (`logging.s3.amazonaws.com`) に `s3:PutObject` アクセス許可を付与します。バケットポリシーの詳細については、[バケットポリシーを使用して、ロギングサービスプリンシパルに許可を付与](#grant-log-delivery-permissions-bucket-policy) を参照してください。

   ログは 送信先バケットで確認できます。サーバーアクセスのログ記録を有効にすると、ログがターゲットバケットに配信されるまでに数時間かかることがあります。ログ配信の方法と間隔の詳細については、[ログを配信する方法](ServerLogs.md#how-logs-delivered) を参照してください。

詳細については、「[S3 汎用バケットのプロパティの表示](view-bucket-properties.md)」を参照してください。

### REST API の使用
<a name="enable-logging-rest"></a>

ログ記録を有効にするには、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) リクエストを送信してソースバケットにログ記録の設定を追加します。リクエストでは、送信先バケット (別名 **ターゲットバケット) を指定し、必要に応じて、すべてのログオブジェクトキーに使用するプレフィックスを指定します。

送信先バケットとして `amzn-s3-demo-destination-bucket` を、プレフィックスとして *`logs/`* を指定する例は次のとおりです。

```
1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2.   <LoggingEnabled>
3.     <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket>
4.     <TargetPrefix>logs/</TargetPrefix>
5.   </LoggingEnabled>
6. </BucketLoggingStatus>
```

送信先バケットとして `amzn-s3-demo-destination-bucket` を、プレフィックスとして *`logs/`* を、ログオブジェクトキーの形式として `EventTime` を指定する例は次のとおりです。

```
 1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
 2.   <LoggingEnabled>
 3.     <TargetBucket>amzn-s3-demo-destination-bucket</TargetBucket>
 4.     <TargetPrefix>logs/</TargetPrefix>
 5.     <TargetObjectKeyFormat>
 6.       <PartitionedPrefix>
 7.          <PartitionDateSource>EventTime</PartitionDateSource>
 8.       </PartitionedPrefix>
 9.   </TargetObjectKeyFormat>
10.   </LoggingEnabled>
11. </BucketLoggingStatus>
```

ログオブジェクトはログ配信アカウントが作成および所有し、バケット所有者はログオブジェクトへの完全な許可を付与されます。必要に応じて、送信先権限 (別名**ターゲット権限) をして、他のユーザーがログにアクセスできるようにアクセス許可を付与できます。詳細については、[ を参照してください。PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)

**注記**  
送信先バケットが、オブジェクト所有権のバケット所有者強制設定を使用している場合、送信先権限を使用してその他のユーザーにアクセス許可を付与することはできません。その他のユーザーにアクセス許可を付与するには、送信先バケットのバケットポリシーを更新します。詳細については、「[ログ配信許可](#grant-log-delivery-permissions-general)」を参照してください。

バケットのログ記録設定を取得するには、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETlogging.html) API オペレーションを使用します。

ログ記録設定を削除するには、`PutBucketLogging` リクエストで空の `BucketLoggingStatus` を指定して送信します。

```
1. <BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
2. </BucketLoggingStatus>
```

バケットでログ記録を有効にするには、Amazon S3 API または AWS SDK ラッパーライブラリを使用できます。

### AWS SDK の使用
<a name="enable-logging-sdk"></a>

バケットでログ記録を有効化する例は次のとおりです。ソースバケットと送信先 (ターゲット) バケットの 2 つのバケットを作成する必要があります。 この例ではまず、送信先バケットのバケット ACL を更新します。この例では、まず送信先バケットにログを書き込むために必要なアクセス許可をログ配信グループに付与して、次にソースバケットでのログ記録を有効にしています。

このような例では、オブジェクト所有権のバケット所有者の強制設定を使用する送信先バケットでは機能しません。

送信先 (ターゲット) バケットが、オブジェクト所有権にバケット所有者の強制設定を使用している場合、バケット ACL や オブジェクト ACL を設定することはできません。[PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) 設定には、送信先 (ターゲット) 権限を含めることもできません。ロギングサービスプリンシパル (`logging.s3.amazonaws.com`) に許可を付与するために、バケットポリシーを使用する必要があります。詳細については、「[ログ配信許可](#grant-log-delivery-permissions-general)」を参照してください。

------
#### [ .NET ]

**SDK for .NET**  
 GitHub には、その他のリソースもあります。[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/S3#code-examples)で完全な例を見つけて、設定と実行の方法を確認してください。

```
    using System;
    using System.IO;
    using System.Threading.Tasks;
    using Amazon.S3;
    using Amazon.S3.Model;
    using Microsoft.Extensions.Configuration;

    /// <summary>
    /// This example shows how to enable logging on an Amazon Simple Storage
    /// Service (Amazon S3) bucket. You need to have two Amazon S3 buckets for
    /// this example. The first is the bucket for which you wish to enable
    /// logging, and the second is the location where you want to store the
    /// logs.
    /// </summary>
    public class ServerAccessLogging
    {
        private static IConfiguration _configuration = null!;

        public static async Task Main()
        {
            LoadConfig();

            string bucketName = _configuration["BucketName"];
            string logBucketName = _configuration["LogBucketName"];
            string logObjectKeyPrefix = _configuration["LogObjectKeyPrefix"];
            string accountId = _configuration["AccountId"];

            // If the AWS Region defined for your default user is different
            // from the Region where your Amazon S3 bucket is located,
            // pass the Region name to the Amazon S3 client object's constructor.
            // For example: RegionEndpoint.USWest2 or RegionEndpoint.USEast2.
            IAmazonS3 client = new AmazonS3Client();

            try
            {
                // Update bucket policy for target bucket to allow delivery of logs to it.
                await SetBucketPolicyToAllowLogDelivery(
                    client,
                    bucketName,
                    logBucketName,
                    logObjectKeyPrefix,
                    accountId);

                // Enable logging on the source bucket.
                await EnableLoggingAsync(
                    client,
                    bucketName,
                    logBucketName,
                    logObjectKeyPrefix);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine($"Error: {e.Message}");
            }
        }

        /// <summary>
        /// This method grants appropriate permissions for logging to the
        /// Amazon S3 bucket where the logs will be stored.
        /// </summary>
        /// <param name="client">The initialized Amazon S3 client which will be used
        /// to apply the bucket policy.</param>
        /// <param name="sourceBucketName">The name of the source bucket.</param>
        /// <param name="logBucketName">The name of the bucket where logging
        /// information will be stored.</param>
        /// <param name="logPrefix">The logging prefix where the logs should be delivered.</param>
        /// <param name="accountId">The account id of the account where the source bucket exists.</param>
        /// <returns>Async task.</returns>
        public static async Task SetBucketPolicyToAllowLogDelivery(
            IAmazonS3 client,
            string sourceBucketName,
            string logBucketName,
            string logPrefix,
            string accountId)
        {
            var resourceArn = @"""arn:aws:s3:::" + logBucketName + "/" + logPrefix + @"*""";

            var newPolicy = @"{
                                ""Statement"":[{
                                ""Sid"": ""S3ServerAccessLogsPolicy"",
                                ""Effect"": ""Allow"",
                                ""Principal"": { ""Service"": ""logging.s3.amazonaws.com"" },
                                ""Action"": [""s3:PutObject""],
                                ""Resource"": [" + resourceArn + @"],
                                ""Condition"": {
                                ""ArnLike"": { ""aws:SourceArn"": ""arn:aws:s3:::" + sourceBucketName + @""" },
                                ""StringEquals"": { ""aws:SourceAccount"": """ + accountId + @""" }
                                        }
                                    }]
                                }";
            Console.WriteLine($"The policy to apply to bucket {logBucketName} to enable logging:");
            Console.WriteLine(newPolicy);

            PutBucketPolicyRequest putRequest = new PutBucketPolicyRequest
            {
                BucketName = logBucketName,
                Policy = newPolicy,
            };
            await client.PutBucketPolicyAsync(putRequest);
            Console.WriteLine("Policy applied.");
        }

        /// <summary>
        /// This method enables logging for an Amazon S3 bucket. Logs will be stored
        /// in the bucket you selected for logging. Selected prefix
        /// will be prepended to each log object.
        /// </summary>
        /// <param name="client">The initialized Amazon S3 client which will be used
        /// to configure and apply logging to the selected Amazon S3 bucket.</param>
        /// <param name="bucketName">The name of the Amazon S3 bucket for which you
        /// wish to enable logging.</param>
        /// <param name="logBucketName">The name of the Amazon S3 bucket where logging
        /// information will be stored.</param>
        /// <param name="logObjectKeyPrefix">The prefix to prepend to each
        /// object key.</param>
        /// <returns>Async task.</returns>
        public static async Task EnableLoggingAsync(
            IAmazonS3 client,
            string bucketName,
            string logBucketName,
            string logObjectKeyPrefix)
        {
            Console.WriteLine($"Enabling logging for bucket {bucketName}.");
            var loggingConfig = new S3BucketLoggingConfig
            {
                TargetBucketName = logBucketName,
                TargetPrefix = logObjectKeyPrefix,
            };

            var putBucketLoggingRequest = new PutBucketLoggingRequest
            {
                BucketName = bucketName,
                LoggingConfig = loggingConfig,
            };
            await client.PutBucketLoggingAsync(putBucketLoggingRequest);
            Console.WriteLine($"Logging enabled.");
        }

        /// <summary>
        /// Loads configuration from settings files.
        /// </summary>
        public static void LoadConfig()
        {
            _configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("settings.json") // Load settings from .json file.
                .AddJsonFile("settings.local.json", true) // Optionally, load local settings.
                .Build();
        }
    }
```
+  API の詳細については、「*AWS SDK for .NET API リファレンス*」の「[PutBucketLogging](https://docs.aws.amazon.com/goto/DotNetSDKV3/s3-2006-03-01/PutBucketLogging)」を参照してください。

------
#### [ Java ]

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.BucketLoggingStatus;
import software.amazon.awssdk.services.s3.model.LoggingEnabled;
import software.amazon.awssdk.services.s3.model.PartitionedPrefix;
import software.amazon.awssdk.services.s3.model.PutBucketLoggingRequest;
import software.amazon.awssdk.services.s3.model.TargetObjectKeyFormat;

// Class to set a bucket policy on a target S3 bucket and enable server access logging on a source S3 bucket.
public class ServerAccessLogging {
    private static S3Client s3Client;

    public static void main(String[] args) {
        String sourceBucketName = "SOURCE-BUCKET";
        String targetBucketName = "TARGET-BUCKET";
        String sourceAccountId = "123456789012";
        String targetPrefix = "logs/";

        // Create S3 Client.
        s3Client = S3Client.builder().
                region(Region.US_EAST_2)
                .build();

        // Set a bucket policy on the target S3 bucket to enable server access logging by granting the
        // logging.s3.amazonaws.com principal permission to use the PutObject operation.
        ServerAccessLogging serverAccessLogging = new ServerAccessLogging();
        serverAccessLogging.setTargetBucketPolicy(sourceAccountId, sourceBucketName, targetBucketName);

        // Enable server access logging on the source S3 bucket.
        serverAccessLogging.enableServerAccessLogging(sourceBucketName, targetBucketName,
                targetPrefix);

    }

    // Function to set a bucket policy on the target S3 bucket to enable server access logging by granting the
    // logging.s3.amazonaws.com principal permission to use the PutObject operation.
    public void setTargetBucketPolicy(String sourceAccountId, String sourceBucketName, String targetBucketName) {
        String policy = "{\n" +
                "    \"Version\": \"2012-10-17\",\n" +
                "    \"Statement\": [\n" +
                "        {\n" +
                "            \"Sid\": \"S3ServerAccessLogsPolicy\",\n" +
                "            \"Effect\": \"Allow\",\n" +
                "            \"Principal\": {\"Service\": \"logging.s3.amazonaws.com\"},\n" +
                "            \"Action\": [\n" +
                "                \"s3:PutObject\"\n" +
                "            ],\n" +
                "            \"Resource\": \"arn:aws:s3:::" + targetBucketName + "/*\",\n" +
                "            \"Condition\": {\n" +
                "                \"ArnLike\": {\n" +
                "                    \"aws:SourceArn\": \"arn:aws:s3:::" + sourceBucketName + "\"\n" +
                "                },\n" +
                "                \"StringEquals\": {\n" +
                "                    \"aws:SourceAccount\": \"" + sourceAccountId + "\"\n" +
                "                }\n" +
                "            }\n" +
                "        }\n" +
                "    ]\n" +
                "}";
        s3Client.putBucketPolicy(b -> b.bucket(targetBucketName).policy(policy));
    }

    // Function to enable server access logging on the source S3 bucket.
    public void enableServerAccessLogging(String sourceBucketName, String targetBucketName,
            String targetPrefix) {
        TargetObjectKeyFormat targetObjectKeyFormat = TargetObjectKeyFormat.builder()
                .partitionedPrefix(PartitionedPrefix.builder().partitionDateSource("EventTime").build())
                .build();
        LoggingEnabled loggingEnabled = LoggingEnabled.builder()
                .targetBucket(targetBucketName)
                .targetPrefix(targetPrefix)
                .targetObjectKeyFormat(targetObjectKeyFormat)
                .build();
        BucketLoggingStatus bucketLoggingStatus = BucketLoggingStatus.builder()
                .loggingEnabled(loggingEnabled)
                .build();
        s3Client.putBucketLogging(PutBucketLoggingRequest.builder()
                .bucket(sourceBucketName)
                .bucketLoggingStatus(bucketLoggingStatus)
                .build());
    }

}
```

------

### AWS CLI の使用
<a name="enabling-s3-access-logs-for-requests"></a>

S3 バケットがある各 AWS リージョンに専用のログ記録バケットを作成することをお勧めします。その後、Amazon S3 アクセスログをその S3 バケットに配信します。詳細と例については、「*AWS CLI リファレンス*」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-logging.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-logging.html)」を参照してください。

送信先 (ターゲット) バケットが、オブジェクト所有権にバケット所有者の強制設定を使用している場合、バケット ACL や オブジェクト ACL を設定することはできません。[PutBucketLogging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) 設定には、送信先 (ターゲット) 権限を含めることもできません。ロギングサービスプリンシパル (`logging.s3.amazonaws.com`) に許可を付与するために、バケットポリシーを使用する必要があります。詳細については、[ログ配信許可](#grant-log-delivery-permissions-general) を参照してください。

**Example − 2 つのリージョンの 5 つのバケットでアクセスログを有効にする**  
この例では、次の 5 つのバケットがあります。  
+ `amzn-s3-demo-source-bucket-us-east-1`
+ `amzn-s3-demo-source-bucket1-us-east-1`
+ `amzn-s3-demo-source-bucket2-us-east-1`
+ `amzn-s3-demo-bucket1-us-west-2`
+ `amzn-s3-demo-bucket2-us-west-2`
**注記**  
次の手順の最後のステップでは、ログ記録バケットを作成して、そのバケットでサーバーアクセスのログ記録を有効にするために使用できる bash スクリプトの例が示されています。このようなスクリプトを使用するには、次の手順で説明されるとおり、`policy.json` と `logging.json` ファイルを作成する必要があります。

1. 米国西部 (オレゴン) リージョンと米国東部 (バージニア北部) リージョンに 2 つのログ記録先バケットを作成して、次の名前を付けます。
   + `amzn-s3-demo-destination-bucket-logs-us-east-1`
   + `amzn-s3-demo-destination-bucket1-logs-us-west-2`

1. このステップの後半では、次のとおりサーバーアクセスのログ記録を有効にします。
   + `amzn-s3-demo-source-bucket-us-east-1` は、プレフィックス `amzn-s3-demo-destination-bucket-logs-us-east-1` を使用して S3 バケット `amzn-s3-demo-source-bucket-us-east-1` にログを記録します。
   + `amzn-s3-demo-source-bucket1-us-east-1` は、プレフィックス `amzn-s3-demo-destination-bucket-logs-us-east-1` を使用して S3 バケット `amzn-s3-demo-source-bucket1-us-east-1` にログを記録します。
   + `amzn-s3-demo-source-bucket2-us-east-1` は、プレフィックス `amzn-s3-demo-destination-bucket-logs-us-east-1` を使用して S3 バケット `amzn-s3-demo-source-bucket2-us-east-1` にログを記録します。
   + `amzn-s3-demo-bucket1-us-west-2` は、プレフィックス `amzn-s3-demo-destination-bucket1-logs-us-west-2` を使用して S3 バケット `amzn-s3-demo-bucket1-us-west-2` にログを記録します。
   + `amzn-s3-demo-bucket2-us-west-2` は、プレフィックス `amzn-s3-demo-destination-bucket1-logs-us-west-2` を使用して S3 バケット `amzn-s3-demo-bucket2-us-west-2` にログを記録します。

1. バケット ACL **またはバケットポリシーを使用して、サーバーアクセスのログ記録の配信の許可を付与します。
   + **バケットポリシーの更新** (推奨) – ロギングサービスプリンシパルにアクセス許可を付与するには、次の `put-bucket-policy` コマンドを使用します。`amzn-s3-demo-destination-bucket-logs` を、宛先のバケットの名前に置き換えます。

     ```
     1. aws s3api put-bucket-policy --bucket amzn-s3-demo-destination-bucket-logs --policy file://policy.json
     ```

     `Policy.json` は、次のバケットポリシーを含む現在のフォルダ内の JSON ドキュメントです。このバケットポリシーを実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。次のポリシーでは、*`amzn-s3-demo-destination-bucket-logs`* はサーバーアクセスログが配信される送信先バケットであり、`amzn-s3-demo-source-bucket` はソースバケットです。`SOURCE-ACCOUNT-ID` は、ソースバケットを所有する AWS アカウント です。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "S3ServerAccessLogsPolicy",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "logging.s3.amazonaws.com"
                 },
                 "Action": [
                     "s3:PutObject"
                 ],
                 "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket-logs/*",
                 "Condition": {
                     "ArnLike": {
                         "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-source-bucket"
                     },
                     "StringEquals": {
                         "aws:SourceAccount": "SOURCE-ACCOUNT-ID"
                     }
                 }
             }
         ]
     }
     ```

------
   + **バケット ACL の更新** – S3 ログ配信グループに許可を付与するには、次の `put-bucket-acl` コマンドを使用します。*`amzn-s3-demo-destination-bucket-logs`* は、送信先 (ターゲット) バケット名前に置き換えます。

     ```
     1. aws s3api put-bucket-acl --bucket amzn-s3-demo-destination-bucket-logs  --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery 
     ```

1. 次に、(次の 3 つの例のうちのいずれかに基づいた) ログ記録設定を含む `logging.json` ファイルを作成します。`logging.json` ファイルを作成したら、次の `put-bucket-logging` コマンドを使用してログ記録設定を適用できます。*`amzn-s3-demo-destination-bucket-logs`* は、送信先 (ターゲット) バケット名前に置き換えます。

   ```
   1. aws s3api put-bucket-logging --bucket amzn-s3-demo-destination-bucket-logs --bucket-logging-status file://logging.json 
   ```
**注記**  
この `put-bucket-logging` コマンドを使用して各送信先バケットにログ記録設定を適用する代わりに、次のステップで提供される bash スクリプトのいずれかを使用できます。このようなスクリプトを使用するには、次の手順のとおり、`policy.json` と `logging.json` ファイルを作成する必要があります。

   `logging.json` ファイルは、ログ記録設定を含む現在のフォルダ内の JSON ドキュメントです。送信先バケットがオブジェクト所有権に対してバケット所有者の強制設定を使用している場合、ログ記録設定に送信先 (ターゲット) の権限を含めることはできません。詳細については、「[ログ配信許可](#grant-log-delivery-permissions-general)」を参照してください。  
**Example — 送信先 (ターゲット) 権限なしの `logging.json`**  

   次の例の `logging.json` ファイルには、送信先 (ターゲット) 権限が含まれていません。そのため、オブジェクト所有権のバケット所有者の強制設定を使用する送信先 (ターゲット) バケットにこの設定を適用できます。

   ```
     {
         "LoggingEnabled": {
             "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
             "TargetPrefix": "amzn-s3-demo-destination-bucket/"
          }
      }
   ```  
**Example — 送信先 (ターゲット) 権限のある `logging.json`**  

   次の例の `logging.json` ファイルには、送信先 (ターゲット) 権限が含まれています。

   送信先バケットが、オブジェクト所有権のバケット所有者の強制設定を使用している場合、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLogging.html) 設定に送信先 (ターゲット) 権限を含めることはできません。詳細については、「[ログ配信許可](#grant-log-delivery-permissions-general)」を参照してください。

   ```
     {
         "LoggingEnabled": {
             "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
             "TargetPrefix": "amzn-s3-demo-destination-bucket/",
             "TargetGrants": [
                  {
                     "Grantee": {
                         "Type": "CanonicalUser",
                         "ID": "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"
                      },
                     "Permission": "FULL_CONTROL"
                  }
              ]
          }
      }
   ```

**被付与者の値**  
アクセス権を割り当てる先のユーザー (被付与者) は、以下の方法で (リクエスト要素を使用して) 指定できます。
   + ユーザーの ID の場合:

     ```
     {
       "Grantee": {
         "Type": "CanonicalUser",
         "ID": "ID"
       }
     }
     ```
   + URI の場合:

     ```
     {
       "Grantee": {
         "Type": "Group",
         "URI": "http://acs.amazonaws.com/groups/global/AuthenticatedUsers"
       }
     }
     ```  
**Example – ログオブジェクトキーを S3 イベント時刻に設定した `logging.json`**  

   次の `logging.json` ファイルは、ログオブジェクトキーの形式を S3 イベント時刻に変更します。暗号化キーの使用の詳細については、「[ログ配信を有効にするにはどうすればよいですか?](ServerLogs.md#server-access-logging-overview)」を参照してください。

   ```
     { 
       "LoggingEnabled": {
           "TargetBucket": "amzn-s3-demo-destination-bucket-logs",
           "TargetPrefix": "amzn-s3-demo-destination-bucket/",
           "TargetObjectKeyFormat": { 
               "PartitionedPrefix": { 
                   "PartitionDateSource": "EventTime" 
               }
            }
       }
   }
   ```

1. アカウントのすべてのバケットに対するアクセスログを追加するには、次の bash スクリプトのいずれかを使用します。*`amzn-s3-demo-destination-bucket-logs`* は、送信先 (ターゲット) バケットの名前に置き換え、`us-west-2` はバケットが配置されているリージョンの名前に置き換えます。
**注記**  
これはすべてのバケットが同じリージョンにある場合にのみ機能します。複数のリージョンにバケットがある場合は、スクリプトを調整する必要があります。  
**Example — バケットポリシーによるアクセスを許可し、アカウントのバケットのロギングを追加します**  

   ```
     loggingBucket='amzn-s3-demo-destination-bucket-logs'
     region='us-west-2'
     
     
     # Create the logging bucket.
     aws s3 mb s3://$loggingBucket --region $region
     
     aws s3api put-bucket-policy --bucket $loggingBucket --policy file://policy.json
     
     # List the buckets in this account.
     buckets="$(aws s3 ls | awk '{print $3}')"
     
     # Put a bucket logging configuration on each bucket.
     for bucket in $buckets
         do 
           # This if statement excludes the logging bucket.
           if [ "$bucket" == "$loggingBucket" ] ; then
               continue;
           fi
           printf '{
             "LoggingEnabled": {
               "TargetBucket": "%s",
               "TargetPrefix": "%s/"
           }
         }' "$loggingBucket" "$bucket"  > logging.json
         aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json
         echo "$bucket done"
     done
     
     rm logging.json
     
     echo "Complete"
   ```  
**Example — バケット ACL でアクセス権を付与し、アカウントのバケットのロギングを追加します**  

   ```
     loggingBucket='amzn-s3-demo-destination-bucket-logs'
     region='us-west-2'
     
     
     # Create the logging bucket.
     aws s3 mb s3://$loggingBucket --region $region
     
     aws s3api put-bucket-acl --bucket $loggingBucket --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery
     
     # List the buckets in this account.
     buckets="$(aws s3 ls | awk '{print $3}')"
     
     # Put a bucket logging configuration on each bucket.
     for bucket in $buckets
         do 
           # This if statement excludes the logging bucket.
           if [ "$bucket" == "$loggingBucket" ] ; then
               continue;
           fi
           printf '{
             "LoggingEnabled": {
               "TargetBucket": "%s",
               "TargetPrefix": "%s/"
           }
         }' "$loggingBucket" "$bucket"  > logging.json
         aws s3api put-bucket-logging --bucket $bucket --bucket-logging-status file://logging.json
         echo "$bucket done"
     done
     
     rm logging.json
     
     echo "Complete"
   ```

## サーバーアクセスログ設定の検証
<a name="verify-access-logs"></a>

サーバーアクセスロギングを有効にしたら、以下の手順を実行します。
+ 送信先バケットにアクセスして、ログファイルが配信されていることを確認します。アクセスログが設定されると、Amazon S3 はすぐにリクエストのキャプチャとログ記録を開始します。ただし、ログが送信先バケットに送られるまでに数時間かかる場合があります。詳細については、「[バケットのログ記録ステータスの変更が有効になるまでには時間がかかる](ServerLogs.md#BucketLoggingStatusChanges)」および「[ベストエフォート型のサーバーログ配信](ServerLogs.md#LogDeliveryBestEffort)」を参照してください。

  Amazon S3 リクエストメトリクスを使用し、これらのメトリックスに Amazon CloudWatch アラームを設定することで、ログ配信を自動的に検証することもできます。詳細については、「[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md)」を参照してください。
+ ログファイルのコンテンツを開いて読み取ることができることを確認します。

サーバアクセスロギングのトラブルシューティング情報については、[サーバーのアクセスログ記録のトラブルシューティング](troubleshooting-server-access-logging.md) を参照してください。

# Amazon S3 サーバーアクセスログの形式
<a name="LogFormat"></a>

サーバーアクセスのログには、Amazon S3 バケットに対するリクエストの詳細が記録されます。サーバーアクセスログは次の目的で使用できます。
+ セキュリティ監査とアクセス監査の実施
+ 顧客ベースについて学ぶ
+ Amazon S3 の請求書を理解する

このセクションでは、Amazon S3 サーバーアクセスログファイルの形式およびその他の詳細について説明します。

サーバーアクセスのログファイルは、一連のログレコードを改行で区切って構成します。各ログレコードは 1 個のリクエストを表し、各フィールドをスペースで区切って構成します。

次に示すのは、5 個のログレコードで構成されるログの例です。

**注記**  
任意のフィールドを `-` に設定して、データが不明または使用不可であること、またはフィールドがこのリクエストに適用されなかったことを示すことができます。

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 7 - "-" "S3Console/0.4" - s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 arn:aws:s3:us-west-1:123456789012:accesspoint/example-AP Yes us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 891CE47D2EXAMPLE REST.GET.LOGGING_STATUS - "GET /amzn-s3-demo-bucket1?logging HTTP/1.1" 200 - 242 - 11 - "-" "S3Console/0.4" - 9vKBE6vMhrNiWHZmb2L0mXOcqPGzQOI5XLnCtZNPxev+Hf+7tpT6sxDwDty4LHBUOZJG96N1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be A1206F460EXAMPLE REST.GET.BUCKETPOLICY - "GET /amzn-s3-demo-bucket1?policy HTTP/1.1" 404 NoSuchBucketPolicy 297 - 38 - "-" "S3Console/0.4" - BNaBsXZQQDbssi6xMBdBU2sLt+Yf5kZDmeBUP35sFoKa3sLLeMC78iwEIWxs99CRUrbS4n11234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:00 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 7B4A0FABBEXAMPLE REST.GET.VERSIONING - "GET /amzn-s3-demo-bucket1?versioning HTTP/1.1" 200 - 113 - 33 - "-" "S3Console/0.4" - Ke1bUcazaN1jWuUlPJaxF64cQVpUEhoZKEG/hmy/gijN/I1DeWqDfFvnpybfEseEME/u7ME1234= SigV4 ECDHE-RSA-AES128-GCM-SHA256 AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - - us-east-1
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be amzn-s3-demo-bucket1 [06/Feb/2019:00:01:57 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be DD6CC733AEXAMPLE REST.PUT.OBJECT s3-dg.pdf "PUT /amzn-s3-demo-bucket1/s3-dg.pdf HTTP/1.1" 200 - - 4406583 41754 28 "-" "S3Console/0.4" - 10S62Zv81kBW7BB6SX4XJ48o6kpcl6LPwEoizZQQxJd5qDSCTLX0TgS37kYUBKQW3+bPdrg1234= SigV4 ECDHE-RSA-AES128-SHA AuthHeader amzn-s3-demo-bucket1.s3.us-west-1.amazonaws.com TLSV1.2 - Yes us-east-1
```

**[チェックサムを計算]** オペレーションのログレコードの例を次に示します。

```
7cd47ef2be amzn-s3-demo-bucket [06/Feb/2019:00:00:38 +0000] - 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be e5042925-b524-4b3b-a869-f3881e78ff3a S3.COMPUTE.OBJECT.CHECKSUM example-object - - - - 1048576 - - - - - bPf7qjG4XwYdPgDQTl72GW/uotRhdPz2UryEyAFLDSRmKrakUkJCYLtAw6fdANcrsUYc1M/kIulXM1u5vZQT5g== - - - - - - - -
```

**Topics**
+ [ログレコードフィールド](#log-record-fields)
+ [コピーオペレーションの追加ログ記録](#AdditionalLoggingforCopyOperations)
+ [カスタムアクセスログ情報](#LogFormatCustom)
+ [拡張可能なサーバーアクセスログの形式のプログラミングに関する考慮事項](#LogFormatExtensible)

## ログレコードフィールド
<a name="log-record-fields"></a>

次のリストは、ログレコードのフィールドについて説明しています。

**Bucket Owner**  
ソースバケット所有者の正規ユーザー ID。正規ユーザー ID は、別の形式の AWS アカウント ID です。正規ユーザー ID の詳細については、*AWS 全般のリファレンス* の「[AWS アカウント IDID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)」を参照してください。アカウントの正規ユーザー ID を検索する方法については、「[AWS アカウントの正規ユーザー ID を検索する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)」を参照してください。  
**エントリ例**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**バケット**  
リクエストの処理ターゲットのバケットの名前。システムで受け取ったリクエストの形式に誤りがあり、バケットを特定できない場合、そのリクエストはサーバーアクセスログに表示されません。  
**エントリ例**  

```
amzn-s3-demo-bucket1
```

**時間**  
リクエストが受信された時間。これらの日付と時刻は協定世界時 (UTC) です。`strftime()` terminology を使用した形式は次のようになります: `[%d/%b/%Y:%H:%M:%S %z]`  
**エントリ例**  

```
[06/Feb/2019:00:00:38 +0000]
```

**Remote IP**  
リクエスタの表面上の IP アドレス。中間プロキシやファイアウォールにより、リクエストを作成したマシンの実際の IP アドレスが不明確になる場合があります。  
**エントリ例**  

```
192.0.2.3
```

**リクエスタ**  
リクエスタの正規ユーザー ID。認証されていないリクエストの場合は `-` です。リクエスタが IAM ユーザーであった場合、このフィールドは、リクエスタの IAM ユーザー名と IAM ユーザーが属する AWS アカウントを返します。この識別子は、アクセスコントロールに使用されるものと同じです。  
**エントリ例**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
リクエスタが引き受けたロールを使用している場合、このフィールドは、引き受けた IAM ロールを返します。  
**エントリ例**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**リクエスト ID**  
各リクエストを一意に識別するために Amazon S3 で生成される文字列。**[チェックサムを計算]** ジョブリクエストの場合、**[リクエスト ID]** フィールドには関連するジョブ ID が表示されます。詳細については、「[チェックサムの計算](batch-ops-compute-checksums.md)」を参照してください。  
**エントリ例**  

```
3E57427F33A59F07
```

**オペレーション**  
ここに表示されているオペレーションは、`SOAP.operation`、`REST.HTTP_method.resource_type`、`WEBSITE.HTTP_method.resource_type` または `BATCH.DELETE.OBJECT`、または `S3.action.resource_type` の [S3 ライフサイクルとログ記録](lifecycle-and-other-bucket-config.md#lifecycle-general-considerations-logging) として宣言されます。[https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-compute-checksums.html) ジョブリクエストの場合、オペレーションは `S3.COMPUTE.OBJECT.CHECKSUM` としてリストされます。  
**エントリ例**  

```
REST.PUT.OBJECT
S3.COMPUTE.OBJECT.CHECKSUM
```

**Key**  
リクエストのキー (オブジェクト名) 部分。  
**エントリ例**  

```
/photos/2019/08/puppy.jpg
```

**Request-URI**  
HTTP リクエストメッセージの `Request-URI` の部分。このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar HTTP/1.1"
```

**HTTP status**  
レスポンスの HTTP ステータスの数値。  
**エントリ例**  

```
200
```

**エラーコード**  
Amazon S3 [エラーレスポンス](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)、またはエラーが発生しなかった場合は「`-`」。  
**エントリ例**  

```
NoSuchBucket
```

**Bytes Sent**  
送信されたレスポンスのバイト数 (HTTP プロトコルオーバーヘッドを除きます)。ゼロの場合は「`-`」。  
**エントリ例**  

```
2662992
```

**Object Size**  
該当するオブジェクトの合計サイズ。  
**エントリ例**  

```
3462992
```

**Total Time**  
サーバーから見た、リクエストの転送中の時間数 (ミリ秒単位)。これは、リクエストが受信されてから、レスポンスの最終バイトが送信されるまでの時間を計測した値です。クライアント側での計測値は、ネットワーク遅延により長くなる場合があります。  
**エントリ例**  

```
70
```

**Turn−Around Time**  
Amazon S3 でリクエストの処理に要した時間数 (ミリ秒単位)。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。  
**エントリ例**  

```
10
```

**Referer**  
HTTP `Referer` ヘッダーの値 (存在する場合)。一般に、HTTP ユーザーエージェント (ブラウザなど) は、このヘッダーをリクエスト作成時のリンクページや埋め込みページの URL に設定します。このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"http://www.example.com/webservices"
```

**User-Agent**  
HTTP `User-Agent` ヘッダーの値 このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"curl/7.15.1"
```

**Version Id**  
リクエストのバージョン ID、または オペレーションが `versionId` パラメータを取らない場合は「`-`」。  
**エントリ例**  

```
3HL4kqtJvjVBH40Nrjfkd
```

**ホスト ID**  
`x-amz-id-2` または Amazon S3 拡張リクエスト ID。  
**エントリ例**  

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**署名バージョン**  
署名バージョン `SigV2` か `SigV4` (リクエストの認証に使用)、または `-` (認証されていないリクエストの場合)。  
**エントリ例**  

```
SigV2
```

**暗号スイート**  
HTTPS リクエストまたは HTTP の `-` に対してネゴシエートされた Transport Layer Security (TLS) 暗号。  
**エントリ例**  

```
ECDHE-RSA-AES128-GCM-SHA256
```

**認証タイプ**  
使用されるリクエスト認証のタイプ。認証ヘッダーは `AuthHeader`、クエリ文字列 (署名付き URL) は `QueryString`、認証されていないリクエストには「`-`」。  
**エントリ例**  

```
AuthHeader
```

**ホストヘッダー**  
Amazon S3 への接続に使用するエンドポイント。  
**エントリ例**  

```
s3.us-west-2.amazonaws.com
```
一部の古いリージョンでは、レガシーエンドポイントがサポートされています。これらのエンドポイントは、サーバーアクセスログまたは AWS CloudTrail ログに表示される場合があります。詳細については、「[レガシーエンドポイント](VirtualHosting.md#s3-legacy-endpoints)」を参照してください。Amazon S3 リージョンとエンドポイントの完全なリストについては、*Amazon Web Services 全般のリファレンス* の「[Amazon S3 エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/s3.html)」を参照してください。

**TLS のバージョン**  
クライアントによってネゴシエートされた Transport Layer Security (TLS) バージョン。値は `TLSv1.1`、`TLSv1.2`、`TLSv1.3`、`-` のいずれかです (TLS を使用しなかった場合)。  
**エントリ例**  

```
TLSv1.2
```

**アクセスポイント ARN**  
リクエストのアクセスポイントの Amazon リソースネーム (ARN) です。アクセスポイントの ARN の形式が不正、または使用されていない場合、このフィールドには「`-`」が含まれます。アクセスポイントの詳細については、「[汎用バケットでの Amazon S3 アクセスポイントの使用](using-access-points.md)」を参照してください。ARN の詳細については、「*AWS リファレンスガイド*」の「[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。  
**エントリ例**  

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**aclRequired**  
リクエストの承認のためにアクセスコントロールリスト (ACL) が必要かどうかを示す文字列。リクエストに承認用の ACL が必要な場合、文字列は「`Yes`」です。ACL が必要なかった場合、文字列は「`-`」です。ACL の詳細については、「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」を参照してください。`aclRequired` フィールドを使用して ACL を無効にする方法の詳細については、[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md) を参照してください。  
**エントリ例**  

```
Yes
```

**送信元リージョン**  
リクエストの送信元の AWS リージョン。このフィールドには、送信元リージョンを特定できない場合 (PrivateLink 接続、Direct Connect 接続、Bring your own IP addresses (BYOIP)、または非 AWS IP アドレスなど）、またはライフサイクルやチェックサムなど、お客様が設定したポリシーやアクションに基づいてトリガーされたオペレーションによってログが生成された場合、ダッシュ (`-`) が表示されます。  
**エントリ例**  

```
us-east-1
```

## コピーオペレーションの追加ログ記録
<a name="AdditionalLoggingforCopyOperations"></a>

コピーオペレーションには `GET` と `PUT` が含まれます。このため、コピーオペレーションの実行時には 2 つのログレコードが記録されます。前述のセクションでは、コピーオペレーションの `PUT` 部分に関連するフィールドを説明しています。次のリストでは、コピーオペレーションの `GET` 部分に関連するフィールドを説明します。

**バケット所有者**  
コピーされたオブジェクトを格納するバケットの正規ユーザー ID。正規ユーザー ID は、別の形式の AWS アカウント ID です。正規ユーザー ID の詳細については、*AWS 全般のリファレンス* の「[AWS アカウント IDID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html)」を参照してください。アカウントの正規ユーザー ID を検索する方法については、「[AWS アカウントの正規ユーザー ID を検索する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)」を参照してください。  
**エントリ例**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```

**バケット**  
コピー対象オブジェクトのオブジェクトを格納するバケットの名前。  
**エントリ例**  

```
amzn-s3-demo-bucket1
```

**時間**  
リクエストが受信された時間。これらの日付と時刻は協定世界時 (UTC) です。`strftime()` terminology を使用した形式は次のようになります: `[%d/%B/%Y:%H:%M:%S %z]`  
**エントリ例**  

```
[06/Feb/2019:00:00:38 +0000]
```

**Remote IP**  
リクエスタの表面上の IP アドレス。中間プロキシやファイアウォールにより、リクエストを作成したマシンの実際の IP アドレスが不明確になる場合があります。  
**エントリ例**  

```
192.0.2.3
```

**リクエスタ**  
リクエスタの正規ユーザー ID。認証されていないリクエストの場合は `-` です。リクエスタが IAM ユーザーであった場合、このフィールドは、リクエスタの IAM ユーザー名と IAM ユーザーが属する AWS アカウントのルートユーザーを返します。この識別子は、アクセスコントロールに使用されるものと同じです。  
**エントリ例**  

```
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be
```
リクエスタが引き受けたロールを使用している場合、このフィールドは、引き受けた IAM ロールを返します。  
**エントリ例**  

```
arn:aws:sts::123456789012:assumed-role/roleName/test-role
```

**リクエスト ID**  
各リクエストを一意に識別するために Amazon S3 で生成される文字列。**[チェックサムを計算]** ジョブリクエストの場合、**[リクエスト ID]** フィールドには関連するジョブ ID が表示されます。詳細については、「[チェックサムの計算](batch-ops-compute-checksums.md)」を参照してください。  
**エントリ例**  

```
3E57427F33A59F07
```

**オペレーション**  
ここに表示されているオペレーションは、`SOAP.operation`、`REST.HTTP_method.resource_type`、`WEBSITE.HTTP_method.resource_type` または `BATCH.DELETE.OBJECT` と表示されます。  
**エントリ例**  

```
REST.COPY.OBJECT_GET
```

**Key**  
コピー対象オブジェクトのキー (オブジェクト名) 部分。オペレーションがキーパラメータを取らない場合は「`-`」。  
**エントリ例**  

```
/photos/2019/08/puppy.jpg
```

**Request-URI**  
HTTP リクエストメッセージの `Request-URI` の部分。このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"GET /amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-foo=bar"
```

**HTTP status**  
コピーオペレーションの `GET` 部分の HTTP ステータスの数値。  
**エントリ例**  

```
200
```

**エラーコード**  
コピーオペレーションの `GET` 部分の Amazon S3 [エラーレスポンス](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)、またはエラーがない場合は「`-`」。  
**エントリ例**  

```
NoSuchBucket
```

**Bytes Sent**  
送信されたレスポンスのバイト数 (HTTP プロトコルオーバーヘッドを除く)。ゼロの場合は「`-`」。  
**エントリ例**  

```
2662992
```

**Object Size**  
該当するオブジェクトの合計サイズ。  
**エントリ例**  

```
3462992
```

**Total Time**  
サーバーから見た、リクエストの転送中の時間数 (ミリ秒単位)。これは、リクエストが受信されてから、レスポンスの最終バイトが送信されるまでの時間を計測した値です。クライアント側での計測値は、ネットワーク遅延により長くなる場合があります。  
**エントリ例**  

```
70
```

**Turn−Around Time**  
Amazon S3 でリクエストの処理に要した時間数 (ミリ秒単位)。これは、リクエストの最終バイトが受信されてから、レスポンスの先頭バイトが送信されるまでの時間を計測した値です。  
**エントリ例**  

```
10
```

**Referer**  
HTTP `Referer` ヘッダーの値 (存在する場合)。一般に、HTTP ユーザーエージェント (ブラウザなど) は、このヘッダーをリクエスト作成時のリンクページや埋め込みページの URL に設定します。このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"http://www.example.com/webservices"
```

**User-Agent**  
HTTP `User-Agent` ヘッダーの値 このフィールドには、ユーザー入力からエスケープされていない引用符を含めることができます。  
**エントリ例**  

```
"curl/7.15.1"
```

**Version Id**  
コピー対象オブジェクトのバージョン ID、または `x-amz-copy-source` ヘッダーでコピー元の一部として `versionId` パラメータを指定しなかった場合は「`-`」。  
**エントリ例**  

```
3HL4kqtJvjVBH40Nrjfkd
```

**ホスト ID**  
`x-amz-id-2` または Amazon S3 拡張リクエスト ID。  
**エントリ例**  

```
s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi31234=
```

**署名バージョン**  
Signature Version、`SigV2` か `SigV4` (リクエストの認証に使用)、または `-` (認証されていないリクエストの場合)。  
**エントリ例**  

```
SigV4
```

**暗号スイート**  
HTTPS リクエストまたは HTTP の `-` に対してネゴシエートされた Transport Layer Security (TLS) 暗号。  
**エントリ例**  

```
ECDHE-RSA-AES128-GCM-SHA256
```

**認証タイプ**  
使用されるリクエスト認証のタイプ。認証ヘッダーは `AuthHeader`、クエリ文字列 (署名付き URL) は `QueryString`、認証されていないリクエストには「`-`」。  
**エントリ例**  

```
AuthHeader
```

**ホストヘッダー**  
Amazon S3 への接続に使用するエンドポイント。  
**エントリ例**  

```
s3.us-west-2.amazonaws.com
```
一部の古いリージョンでは、レガシーエンドポイントがサポートされています。これらのエンドポイントは、サーバーアクセスログまたは AWS CloudTrail ログに表示される場合があります。詳細については、「[レガシーエンドポイント](VirtualHosting.md#s3-legacy-endpoints)」を参照してください。Amazon S3 リージョンとエンドポイントの完全なリストについては、*Amazon Web Services 全般のリファレンス* の「[Amazon S3 エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/s3.html)」を参照してください。

**TLS のバージョン**  
クライアントによってネゴシエートされた Transport Layer Security (TLS) バージョン。値は `TLSv1.1`、`TLSv1.2`、`TLSv1.3`、`-` のいずれかです (TLS を使用しなかった場合)。  
**エントリ例**  

```
TLSv1.2
```

**アクセスポイント ARN**  
リクエストのアクセスポイントの Amazon リソースネーム (ARN) です。アクセスポイントの ARN の形式が不正、または使用されていない場合、このフィールドには「`-`」が含まれます。アクセスポイントの詳細については、「[汎用バケットでの Amazon S3 アクセスポイントの使用](using-access-points.md)」を参照してください。ARN の詳細については、「*AWS リファレンスガイド*」の「[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。  
**エントリ例**  

```
arn:aws:s3:us-east-1:123456789012:accesspoint/example-AP
```

**aclRequired**  
リクエストの承認のためにアクセスコントロールリスト (ACL) が必要かどうかを示す文字列。リクエストに承認用の ACL が必要な場合、文字列は「`Yes`」です。ACL が必要なかった場合、文字列は「`-`」です。ACL の詳細については、「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」を参照してください。`aclRequired` フィールドを使用して ACL を無効にする方法の詳細については、[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md) を参照してください。  
**エントリ例**  

```
Yes
```

**送信元リージョン**  
リクエストの送信元の AWS リージョン。このフィールドには、送信元リージョンを特定できない場合 (PrivateLink 接続、Direct Connect 接続、Bring your own IP addresses (BYOIP)、または非 AWS IP アドレスなど）、またはライフサイクルやチェックサムなど、お客様が設定したポリシーやアクションに基づいてトリガーされたオペレーションによってログが生成された場合、ダッシュ (`-`) が表示されます。  
**エントリ例**  

```
us-east-1
```

## カスタムアクセスログ情報
<a name="LogFormatCustom"></a>

リクエストのアクセスログレコードに保存するカスタム情報を含めることができます。これを行うには、リクエストの URL にカスタムクエリ文字列パラメータを追加します。Amazon S3 では、「`x-`」で始まるクエリ文字列パラメータは無視されますが、これらのパラメータはログレコードの `Request-URI` フィールドの一部として、リクエストのアクセスログレコードに追加されます。

例えば、`GET` の `"s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg?x-user=johndoe"` リクエストは、`"s3.amazonaws.com/amzn-s3-demo-bucket1/photos/2019/08/puppy.jpg"` のリクエストと同じように動作します。ただし 、`"x-user=johndoe"` 文字列は関連付けられたログレコードの `Request-URI` フィールドに含まれている点が異なります。この機能は REST インターフェイスでのみ利用できます。

## 拡張可能なサーバーアクセスログの形式のプログラミングに関する考慮事項
<a name="LogFormatExtensible"></a>

場合によっては、新しいフィールドを各行末に追加することで、アクセスログレコードの形式を拡張することがあります。したがって、サーバーアクセスログを解析するコードは、理解できない可能性のある後続フィールドを処理するよう作成する必要があります。

# Amazon S3 ログファイルの削除
<a name="deleting-log-files-lifecycle"></a>

Amazon S3 バケットでサーバーアクセスのログ記録が有効になっていると、時間の経過とともに多数のサーバーログオブジェクトが蓄積される場合があります。アクセスログは、作成後アプリケーションで必要な期間が過ぎたら、削除できます。Amazon S3 のライフサイクル設定でルールを指定しておくことで、このようなオブジェクトのライフサイクルが終了すると、自動的にオブジェクトを削除キューに入れることができます。

共有プレフィックスを使用して、S3 バケット内のオブジェクトのサブセットのライフサイクル設定を定義できます。サーバーアクセスのログ記録設定でプレフィックスを指定した場合は、そのプレフィックスが付いたログオブジェクトを削除するライフサイクル設定ルールを指定できます。

例えば、ログオブジェクトに `logs/` というプレフィックスがあるとします。ライフサイクル設定ルールを指定して、指定した期間後に `logs/` プレフィックスを持つバケット内のすべてのオブジェクトを削除できます。

ライフサイクル設定についての詳細は、[オブジェクトのライフサイクルの管理](object-lifecycle-mgmt.md) を参照してください。

サーバーアクセスログ記録の一般情報については、[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md) を参照してください。

# Amazon S3 アクセスログを使用したリクエストの識別
<a name="using-s3-access-logs-to-identify-requests"></a>

Amazon S3 アクセスログを使用して、Amazon S3 リクエストを識別できます。

**注記**  
Amazon S3 リクエストを識別するには、Amazon S3 アクセスログの代わりに AWS CloudTrail データイベントを使用することをお勧めします。CloudTrail データイベントは、設定が容易で、より多くの情報が含まれています。詳細については、「[CloudTrail を使用した Amazon S3 リクエストの識別](cloudtrail-request-identification.md)」を参照してください。
取得したアクセスリクエスト数に応じて、ログの分析にリソースや時間がさらに必要になる場合があります。

**Topics**
+ [Amazon Athena を使用したリクエストのアクセスログのクエリ](#querying-s3-access-logs-for-requests)
+ [Amazon S3 アクセスログを使用した Signature Version 2 リクエストの識別](#using-s3-access-logs-to-identify-sigv2-requests)
+ [Amazon S3 アクセスログを使用したオブジェクトアクセスリクエストの識別](#using-s3-access-logs-to-identify-objects-access)

## Amazon Athena を使用したリクエストのアクセスログのクエリ
<a name="querying-s3-access-logs-for-requests"></a>

Amazon Athena を使って、Amazon S3 のアクセスログで、Amazon S3 リクエストを識別できます。

Amazon S3 は、サーバーのアクセスログを S3 バケット内のオブジェクトとして保存します。多くの場合、Amazon S3 のログを分析できるツールを使用する方が簡単です。Athena は S3 オブジェクトの分析をサポートしてしるため、Amazon S3 アクセスログに対してクエリを実行するのに使用できます。

**Example**  
次の例は、Amazon Athena で Amazon S3 サーバーアクセスログをクエリする方法を示しています。次の例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  
Athena クエリで Amazon S3 のロケーションを指定するには、ログの送信先となるバケットの S3 URI を指定する必要があります。この URI には、次の形式でバケット名とプレフィックスを含める必要があります。`s3://amzn-s3-demo-bucket1-logs/prefix/`

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. クエリエディタで、次のようなコマンドを実行します。`s3_access_logs_db` は、データベースにつける名前に置き換えます。

   ```
   CREATE DATABASE s3_access_logs_db
   ```
**注記**  
ベストプラクティスとして、データベースは、S3 バケットと同じ AWS リージョンで作成することをお勧めします。

1. クエリエディタで次のようなコマンドを実行して、ステップ 2 で作成したデータベースでテーブルスキーマを作成します。`s3_access_logs_db.mybucket_logs` は、テーブルにつける名前に置き換えます。`STRING` および `BIGINT` データ型の値はアクセスログのプロパティです。これらのプロパティは Athena でクエリできます。`LOCATION` の場合は、前述のように S3 バケットとプレフィックスパスを入力します。

------
#### [ Date-based partitioning ]

   ```
   CREATE EXTERNAL TABLE s3_access_logs_db.mybucket_logs( 
    `bucketowner` STRING, 
    `bucket_name` STRING, 
    `requestdatetime` STRING, 
    `remoteip` STRING, 
    `requester` STRING, 
    `requestid` STRING, 
    `operation` STRING, 
    `key` STRING, 
    `request_uri` STRING, 
    `httpstatus` STRING, 
    `errorcode` STRING, 
    `bytessent` BIGINT, 
    `objectsize` BIGINT, 
    `totaltime` STRING, 
    `turnaroundtime` STRING, 
    `referrer` STRING, 
    `useragent` STRING, 
    `versionid` STRING, 
    `hostid` STRING, 
    `sigv` STRING, 
    `ciphersuite` STRING, 
    `authtype` STRING, 
    `endpoint` STRING, 
    `tlsversion` STRING,
    `accesspointarn` STRING,
    `aclrequired` STRING,
    `sourceregion` STRING)
    PARTITIONED BY (
      `timestamp` string)
   ROW FORMAT SERDE 
    'org.apache.hadoop.hive.serde2.RegexSerDe' 
   WITH SERDEPROPERTIES ( 
    'input.regex'='([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) ([^ ]*)(?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$') 
   STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
   OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION
    's3://bucket-name/prefix-name/account-id/region/source-bucket-name/'
    TBLPROPERTIES (
     'projection.enabled'='true', 
     'projection.timestamp.format'='yyyy/MM/dd', 
     'projection.timestamp.interval'='1', 
     'projection.timestamp.interval.unit'='DAYS', 
     'projection.timestamp.range'='2024/01/01,NOW', 
     'projection.timestamp.type'='date', 
     'storage.location.template'='s3://bucket-name/prefix-name/account-id/region/source-bucket-name/${timestamp}')
   ```

------
#### [ Non-date-based partitioning ]

   ```
   CREATE EXTERNAL TABLE `s3_access_logs_db.mybucket_logs`(
     `bucketowner` STRING, 
     `bucket_name` STRING, 
     `requestdatetime` STRING, 
     `remoteip` STRING, 
     `requester` STRING, 
     `requestid` STRING, 
     `operation` STRING, 
     `key` STRING, 
     `request_uri` STRING, 
     `httpstatus` STRING, 
     `errorcode` STRING, 
     `bytessent` BIGINT, 
     `objectsize` BIGINT, 
     `totaltime` STRING, 
     `turnaroundtime` STRING, 
     `referrer` STRING, 
     `useragent` STRING, 
     `versionid` STRING, 
     `hostid` STRING, 
     `sigv` STRING, 
     `ciphersuite` STRING, 
     `authtype` STRING, 
     `endpoint` STRING, 
     `tlsversion` STRING,
     `accesspointarn` STRING,
     `aclrequired` STRING,
     `sourceregion` STRING)
   ROW FORMAT SERDE 
     'org.apache.hadoop.hive.serde2.RegexSerDe' 
   WITH SERDEPROPERTIES ( 
     'input.regex'='([^ ]*) ([^ ]*) \\[(.*?)\\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) (-|[0-9]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (\"[^\"]*\"|-) ([^ ]*)(?: ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*))?.*$') 
   STORED AS INPUTFORMAT 
     'org.apache.hadoop.mapred.TextInputFormat' 
   OUTPUTFORMAT 
     'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
   LOCATION
     's3://amzn-s3-demo-bucket1-logs/prefix/'
   ```

------

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

1. [**テーブル**] で、テーブル名の横にある、[**Preview table (テーブルのプレビュー)**] を選択します。

   [**結果**] ペインに、サーバーアクセスログのデータ (`bucketowner`、`bucket`、`requestdatetime` など) が表示されます。これは、Athena テーブルが正常に作成されたことを意味します。これで Amazon S3 サーバーアクセスログのクエリを実行できるようになりました。

**Example − 誰がいつオブジェクトを削除したか (タイムスタンプ、IP アドレス、および IAM ユーザー) を表示する**  

```
SELECT requestdatetime, remoteip, requester, key 
FROM s3_access_logs_db.mybucket_logs 
WHERE key = 'images/picture.jpg' AND operation like '%DELETE%';
```

**Example − IAM ユーザーによって実行されたすべてのオペレーションを表示する**  

```
SELECT * 
FROM s3_access_logs_db.mybucket_logs 
WHERE requester='arn:aws:iam::123456789123:user/user_name';
```

**Example − 特定の期間にオブジェクトに対して実行されたすべてのオペレーションを表示する**  

```
SELECT *
FROM s3_access_logs_db.mybucket_logs
WHERE Key='prefix/images/picture.jpg' 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2017-02-18:07:00:00','yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2017-02-18:08:00:00','yyyy-MM-dd:HH:mm:ss');
```

**Example − 特定の期間、特定の IP アドレスに送信されたデータの量を表示する**  

```
SELECT coalesce(SUM(bytessent), 0) AS bytessenttotal
FROM s3_access_logs_db.mybucket_logs
WHERE remoteip='192.0.2.1'
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2022-06-01','yyyy-MM-dd')
AND parse_datetime('2022-07-01','yyyy-MM-dd');
```

**Example — 特定の期間内の HTTP 5xx エラーに対応するリクエスト ID を検索する**  

```
SELECT requestdatetime, key, httpstatus, errorcode, requestid, hostid 
FROM s3_access_logs_db.mybucket_logs
WHERE httpstatus like '5%' AND timestamp
BETWEEN '2024/01/29'
AND '2024/01/30'
```

**注記**  
ログを保持する時間を短縮するために、サーバーアクセスログバケットの Amazon S3 ライフサイクル設定を作成できます。ライフサイクル設定ルールを作成して、定期的にログファイルを削除します。これにより、各クエリで Athena が分析するデータの量が減ります。詳細については、「[バケットに S3 ライフサイクル設定を設定する](how-to-set-lifecycle-configuration-intro.md)」を参照してください。

## Amazon S3 アクセスログを使用した Signature Version 2 リクエストの識別
<a name="using-s3-access-logs-to-identify-sigv2-requests"></a>

Signature Version 2 の Amazon S3 サポートがオフになります (非推奨)。その後、Amazon S3 は署名バージョン 2 を使用するリクエストを受け入れず、すべてのリクエストに Signature Version 4 署名を使用する必要があります。Amazon S3 アクセスログを使用して、Signature Version 2 アクセスリクエストを識別できます。

**注記**  
Signature Version 2 リクエストを識別するには、Amazon S3 アクセスログの代わりに AWS CloudTrail データイベントを使用することをお勧めします。CloudTrail データイベントは、サーバーアクセスログと比べ、設定が容易で、より多くの情報が含まれています。詳細については、「[CloudTrail を使用した Amazon S3 Signature Version 2 リクエストの識別](cloudtrail-request-identification.md#cloudtrail-identification-sigv2-requests)」を参照してください。

**Example − 署名バージョン 2 トラフィックを送信しているすべてのリクエスタを表示する**  

```
SELECT requester, sigv, Count(sigv) as sigcount 
FROM s3_access_logs_db.mybucket_logs
GROUP BY requester, sigv;
```

## Amazon S3 アクセスログを使用したオブジェクトアクセスリクエストの識別
<a name="using-s3-access-logs-to-identify-objects-access"></a>

Amazon S3 サーバーアクセスログに対するクエリを使用して、`GET`、`PUT`、`DELETE` などのオペレーションに対する Amazon S3 オブジェクトアクセスリクエストを識別し、それらのリクエストに関する詳細情報を確認することができます。

次の Amazon Athena クエリの例は、サーバーアクセスログから Amazon S3 に対するすべての `PUT` オブジェクトリクエストを取得する方法を示しています。

**Example − 一定期間内に `PUT` オブジェクトリクエストを送信しているすべてのリクエスタを表示する**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE operation='REST.PUT.OBJECT' 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42',yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

次の Amazon Athena クエリの例は、サーバーアクセスログから Amazon S3 に対するすべての `GET` オブジェクトリクエストを取得する方法を示しています。

**Example − 一定期間内に `GET` オブジェクトリクエストを送信しているすべてのリクエスタを表示する**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE operation='REST.GET.OBJECT' 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

次の Amazon Athena のクエリの例は、S3 バケットへのすべての匿名リクエストをサーバーアクセスログから取得する方法を示しています。

**Example − 特定の期間にバケットにリクエストを行っているすべての匿名リクエスタを表示する**  

```
SELECT bucket_name, requester, remoteip, key, httpstatus, errorcode, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE requester IS NULL 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z') 
BETWEEN parse_datetime('2019-07-01:00:42:42','yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2019-07-02:00:42:42','yyyy-MM-dd:HH:mm:ss')
```

次の Amazon Athena のクエリは、承認のためにアクセスコントロールリスト (ACL) が必要な S3 バケットへのすべてのリクエストを特定する方法を示しています。この情報を使用して、これらの ACL 権限を適切なバケットポリシーに移行し、ACL を無効にすることができます。これらのバケットポリシーを作成したら、これらのバケットの ACL を無効にできます。ACL の無効化の詳細については、「[ACL を無効にする前提条件。](object-ownership-migrating-acls-prerequisites.md)」を参照してください。

**Example — 承認に ACL が必要なリクエストをすべて特定する**  

```
SELECT bucket_name, requester, key, operation, aclrequired, requestdatetime
FROM s3_access_logs_db.mybucket_logs
WHERE aclrequired = 'Yes' 
AND parse_datetime(requestdatetime,'dd/MMM/yyyy:HH:mm:ss Z')
BETWEEN parse_datetime('2022-05-10:00:00:00','yyyy-MM-dd:HH:mm:ss')
AND parse_datetime('2022-08-10:00:00:00','yyyy-MM-dd:HH:mm:ss')
```

**注記**  
ニーズに合わせられるように、必要に応じてデータ範囲を変更することができます。
このクエリの例は、セキュリティのモニタリングにも役立つ場合があります。予期しないまたは不正な IP アドレスやリクエスタからの `PutObject` または `GetObject` コールの結果を確認し、バケットへの匿名リクエストを特定できます。
このクエリでは、ログ記録が有効になった時間以降の情報のみ取得されます。
AWS CloudTrail ログを使用している場合は、「[CloudTrail を使用した S3 オブジェクトへのアクセスの識別](cloudtrail-request-identification.md#cloudtrail-identification-object-access)」を参照してください。

# サーバーのアクセスログ記録のトラブルシューティング
<a name="troubleshooting-server-access-logging"></a>

次のトピックは、Amazon S3 でログ記録された問題をトラブルシューティングするのに役立ちます。

**Topics**
+ [ログ記録設定時のよくあるエラーメッセージ](#common-errors)
+ [配信失敗のトラブルシューティング](#delivery-failures)

## ログ記録設定時のよくあるエラーメッセージ
<a name="common-errors"></a>

AWS Command Line Interface (AWS CLI) と AWS SDK を使用してログ記録を有効にすると、次のようなエラーメッセージが表示されることがよくあります。

エラー: S3 ロケーションをまたがるロギングは許可されていません

送信先バケット (別名**ターゲットバケット) がソースバケットとは別のリージョンに配置されている場合、Cross S3 location logging not allowed エラーが発生します。このエラーを解決するには、アクセスログを受信するように設定された送信先バケットがソースバケットと同じ AWS リージョン の AWS アカウント にあることを確認します。

エラー: ログを記録するバケットの所有者とターゲットバケットの所有者は同じである必要があります

サーバーアクセスのログ記録を有効にしている場合、指定された送信先バケットが別のアカウントに属している場合にこのエラーが発生します。このエラーを解決するには、送信先バケットがソースバケットと同じ AWS アカウント にあることを確認します。

**注記**  
ソースバケットとは別のターゲットバケットを選択することをお勧めします。ソースバケットと送信先バケットが同じ場合、バケットに書き込まれるログに関する追加のログが作成され、ストレージ料金が増大する可能性があります。また、追加のログがあると、探している特定のログを見つけるのが難しくなることがあります。ログを管理しやすくするため、アクセスログは別のバケットに保存することをお勧めします。詳細については、「[ログ配信を有効にするにはどうすればよいですか?](ServerLogs.md#server-access-logging-overview)」を参照してください。

エラー: ログ記録のターゲットバケットが存在しません。

送信先バケットは、設定する前に存在している必要があります。このエラーは、送信先バケットが存在しないか、見つからないことを示しています。バケット名のスペルが正しいことを確認してから、もう一度試してください。

エラー: バケット所有者が強制するバケットにターゲット許可が付与されていません

このエラーは、送信先バケットが S3 オブジェクト所有権のバケット所有者の強制設定を使用していることを示しています。バケット所有者の強制設定は、送信先 (ターゲット) 権限をサポートしていません。詳細については、「[ログ配信許可](enable-server-access-logging.md#grant-log-delivery-permissions-general)」を参照してください。

## 配信失敗のトラブルシューティング
<a name="delivery-failures"></a>

サーバーアクセスのログ記録の問題を回避するには、次のベストプラクティスに従っていることを確認してください。
+ **S3 ログ配信グループに送信先バケットへの書き込みアクセス許可があること** - S3 ログ配信グループは、送信先バケットにサーバーアクセスログを配信します。バケットポリシーまたはバケットアクセスコントロールリスト (ACL) を使用して、送信先バケットへの書き込みアクセスを付与できます。ただし、ACL の代わりにバケットポリシーを使用することをお勧めします。送信先バケットへの書き込みアクセスを許可する方法の詳細については、「[ログ配信許可](enable-server-access-logging.md#grant-log-delivery-permissions-general)」を参照してください。
**注記**  
送信先バケットが、オブジェクト所有権にバケット所有者の強制設定を使用している場合は、次の点に注意します。  
ACL は無効になり、アクセス権限には影響しません。つまり、S3 ログ配信グループへのアクセスを許可すると、バケット ACL を更新できません。代わりに、ログサービスプリンシパルへのアクセスを許可するために、送信先バケットのバケットポリシーを更新する必要があります。
`PutBucketLogging` 設定には、送信先権限を含めることできません。
+ **送信先バケットのバケットポリシーがログへのアクセスを許可していること** – ターゲットバケットのバケットポリシーを確認します。`"Effect": "Deny"` を含むステートメントをバケットポリシーで検索します。次に、`Deny` ステートメントがアクセスログのバケットへの書き込みを妨げていないことを確認します。
+ **S3 オブジェクトロックがターゲットバケットで有効になっていないこと** – ターゲットバケットでオブジェクトロックが有効になっているかを確認します。オブジェクトロックにより、サーバーアクセスログの配信をブロックします。オブジェクトロックが有効になっていない送信先バケットを選択する必要があります。
+ **送信先バケットでデフォルトの暗号化が有効になっている場合、Amazon S3 マネージドキー (SSE-S3) が選択されていること** – Amazon S3 マネージドキー (SSE-S3) でサーバー側の暗号化を使用する場合に限り、送信先バケットでデフォルトのバケット暗号化を使用できます。サーバーアクセスのログ記録の送信先バケットでは、AWS Key Management Service (AWS KMS) キー (SSE-KMS) によるデフォルトのサーバー側の暗号化はサポートされていません。デフォルトの暗号化の有効にする方法の詳細については、「[デフォルトの暗号化の設定](default-bucket-encryption.md)」を参照してください。
+ **ターゲットバケットでリクエスタ支払いが有効になっていないこと** – サーバーアクセスのログ記録でのリクエスタ支払いバケットの使用はサポートされていません。サーバーアクセスログの配信を許可するには、ターゲットバケットのリクエスタ支払いオプションを無効にします。
+ **AWS Organizations のサービスコントロールポリシー (SCP) とリソースコントロールポリシー (RCP) を確認する** - AWS Organizations を使用している場合は、サービスコントロールポリシーとリソースコントロールポリシーをチェックして、Amazon S3 へのアクセスが許可されていることを確認します。これらのポリシーは、影響を受けるアカウントのプリンシパルとリソースに対する最大数のアクセス許可を指定します。`"Effect": "Deny"` を含むステートメントをポリシーで検索し、バケットへのアクセスログの書き込みを `Deny` ステートメントが妨げていないことを確認します。詳細については、「*AWS Organizations IAM ユーザーガイド*」の「[Authorization policies in AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_authorization_policies.html)」を参照してください。
+ **最新のロギング設定の変更が有効になるまで時間がかかること** - サーバーアクセスのログ記録を最初に有効にした場合や、ログの送信先バケットを変更した場合は、すべてが有効になるまでに時間がかかります。すべてのリクエストが正しく記録され、配信されるまでに 1 時間以上かかる場合があります。

  ログ配信の失敗を確認するには、Amazon CloudWatch でリクエストメトリクスを有効にします。ログが数時間以内に配信されない場合は、ログ配信の失敗を示す `4xxErrors` メトリクスを探してください。リクエストメトリクスの有効化の詳細については、「[バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する](configure-request-metrics-bucket.md)」を参照してください。

# Amazon CloudWatch によるメトリクスのモニタリング
<a name="cloudwatch-monitoring"></a>

Amazon S3 の Amazon CloudWatch メトリクスは、Amazon S3 を使用するアプリケーションのパフォーマンスを理解して向上させるのに役立つことがあります。Amazon S3 で CloudWatch を使用する方法は複数あります。

**バケットの日次ストレージメトリクス**  
バケットストレージは、CloudWatch を使用してモニタリングできます。これは、Amazon S3 からのストレージデータを収集し、読み取り可能な日次のメトリクスに加工します。これらの Amazon S3 のストレージメトリクスは 1 日に 1 回報告され、すべてのお客様に追加料金なしで提供されます。

**リクエストメトリクス**   
Amazon S3 リクエストをモニタリングし、オペレーションの問題をすばやく特定して対応します。メトリクスは、処理のレイテンシーの後に 1 分間隔で使用できます。これらの CloudWatch メトリクスは、Amazon CloudWatch カスタムメトリクスと同じレートで請求されます。CloudWatch の料金の詳細については、[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)をご覧ください。これらのメトリクスの取得をオプトインする方法の詳細については、[CloudWatch メトリクスの設定](metrics-configurations.md) を参照してください。  
有効にすると、すべてのオブジェクトオペレーションのリクエストメトリクスが報告されます。デフォルトでは、Amazon S3 バケットレベルでこれらの 1 分のメトリクスが利用可能です。共有プレフィックス、オブジェクトタグ、またはアクセスポイントを使用してメトリクスにフィルタを定義することもできます。  
+ **アクセスポイント** – アクセスポイントは、バケットに接続され、S3 の共有データセットの大規模なデータアクセスの管理を簡素化する名前付きネットワークエンドポイントです。アクセスポイントフィルタを使用すると、アクセスポイントの使用状況に関するインサイトを得ることができます。アクセスポイントの詳細については、[アクセスポイントのモニタリングとログ記録](access-points-monitoring-logging.md) を参照してください。
+ **プレフィックス** – Amazon S3 データモデルはフラット構造ですが、プレフィックスを使用して階層を推測できます。プレフィックスは、バケット内の類似オブジェクトをグループ化できるディレクトリ名に似ています。S3 コンソールはフォルダの概念でこれらのプレフィックスをサポートします。プレフィックスでフィルタリングした場合、同じプレフィックスを持つオブジェクトがメトリクス設定に含まれます。 プレフィックスの詳細については、[プレフィックスを使用してオブジェクトを整理する](using-prefixes.md) を参照してください。
+ **タグ** – タグは、オブジェクトに追加できるキーと値の名前のペアです。タグを使用すると、オブジェクトを簡単に検索および整理できます。メトリクス設定のフィルタとしてタグを使用して、それらのタグを持つオブジェクトのみがメトリクス設定に含められるようにすることもできます。オブジェクトタグの詳細については、[タグを使用したオブジェクトの分類](object-tagging.md)を参照してください。
共有プレフィックス、オブジェクトタグ、またはアクセスポイントでフィルタリングすると、こうしたメトリクスを特定のビジネスアプリケーション、ワークフロー、または内部組織に合わせることができます。

**レプリケーションメトリクス**  
レプリケーションを保留している S3 API オペレーションの合計数、レプリケーションを保留しているオブジェクトの合計サイズ、およびレプリケート先 AWS リージョンへの最大レプリケーション時間、およびレプリケーションに失敗したオペレーションの合計数をモニタリングします。S3 Replication Time Control (S3 RTC) または S3 レプリケーションメトリクスが有効になっているレプリケーションルールがレプリケーションメトリクスを発行します。  
詳細については、[メトリクス、イベント通知、ステータスによるレプリケーションのモニタリング](replication-metrics.md) または [S3 Replication Time Control (S3 RTC)を使用してコンプライアンス要件を満たす](replication-time-control.md) を参照してください。

**Amazon S3 ストレージレンズメトリクス**  
S3 StorageLens の使用状況とアクティビティのメトリクスを Amazon CloudWatch に公開して、CloudWatch [ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) で運用状態の統一されたビューを作成できます。`AWS/S3/Storage-Lens` 名前空間で S3 Storage Lens のメトリクスは可能です。CloudWatch 公開オプションは、*アドバンストメトリクスとレコメンデーション*にアップグレードされた S3 StorageLens ダッシュボードで利用できます。S3 Storage Lens の新規または既存のダッシュボード設定に対して CloudWatch 公開オプションを有効にできます。  
詳細については、[CloudWatch で S3 Storage Lens のメトリクスをモニタリング](storage_lens_view_metrics_cloudwatch.md) を参照してください。

すべての CloudWatch 統計は 15 か月間保持されるため、履歴情報にアクセスしてウェブアプリケーションまたはサービスの動作をより的確に把握することができます。CloudWatch の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)」を参照してください。ユースケースによっては、CloudWatch アラームに追加の設定が必要になる場合があります。例えば、メトリクスの数式を使用してアラームを作成できます。詳細については、「Amazon CloudWatch ユーザーガイド」の「[CloudWatch メトリクスを使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)」、「[Metric Math を使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」、「[Amazon CloudWatch アラームの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」、および「[メトリクス数式に基づく CloudWatch アラームの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」を参照してください。**

**ベストエフォート型の CloudWatch メトリクス配信**  
 CloudWatch メトリクスは、ベストエフォートで配信されます。リクエストメトリクスを持つ Amazon S3 オブジェクトのほとんどのリクエストにより、データポイントが CloudWatch に送信されます。

メトリクスの完全性や適時性は保証されません。特定のリクエストのデータポイントが、リクエストが実際に処理されたよりも後のタイムスタンプで返される場合があります。1 分のデータポイントは CloudWatch を通じて利用可能になるまで遅延する場合や、まったく提供されない場合があります。CloudWatch リクエストメトリクスは、バケットに対するトラフィックの特性をほぼリアルタイムで示します。すべてのリクエストを完全に報告するためのものではありません。

この機能はベストエフォート型であるため、[請求情報とコスト管理ダッシュボード](https://console.aws.amazon.com/billing/home?#/)で利用できるレポートには、バケットメトリクスに表示されない 1 つ以上のアクセスリクエストが含まれることがあります。

詳細については、以下のトピックを参照してください。

**Topics**
+ [メトリクスとディメンション](metrics-dimensions.md)
+ [CloudWatch メトリクスへのアクセス](cloudwatch-monitoring-accessing.md)
+ [CloudWatch メトリクスの設定](metrics-configurations.md)

# メトリクスとディメンション
<a name="metrics-dimensions"></a>

Amazon S3 が Amazon CloudWatch に送信するストレージメトリクスとディメンションを次の表に一覧表示します。

**ベストエフォート型の CloudWatch メトリクス配信**  
 CloudWatch メトリクスは、ベストエフォートで配信されます。リクエストメトリクスを持つ Amazon S3 オブジェクトのほとんどのリクエストにより、データポイントが CloudWatch に送信されます。

メトリクスの完全性や適時性は保証されません。特定のリクエストのデータポイントが、リクエストが実際に処理されたよりも後のタイムスタンプで返される場合があります。1 分のデータポイントは CloudWatch を通じて利用可能になるまで遅延する場合や、まったく提供されない場合があります。CloudWatch リクエストメトリクスは、バケットに対するトラフィックの特性をほぼリアルタイムで示します。すべてのリクエストを完全に報告するためのものではありません。

この機能はベストエフォート型であるため、[請求情報とコスト管理ダッシュボード](https://console.aws.amazon.com/billing/home?#/)で利用できるレポートには、バケットメトリクスに表示されない 1 つ以上のアクセスリクエストが含まれることがあります。

**Topics**
+ [CloudWatch のバケットの Amazon S3 デイリーストレージメトリクス。](#s3-cloudwatch-metrics)
+ [CloudWatch の Amazon S3 リクエストメトリクス](#s3-request-cloudwatch-metrics)
+ [CloudWatch の S3 レプリケーションメトリクス](#s3-cloudwatch-replication-metrics)
+ [CloudWatch での S3 Storage Lens のメトリクス](#storage-lens-metrics-cloudwatch-publish)
+ [CloudWatch の S3 Object Lambda リクエスト](#olap-cloudwatch-metrics)
+ [CloudWatch の Amazon S3 ディメンション](#s3-cloudwatch-dimensions)
+ [CloudWatch の S3 レプリケーションディメンション](#s3-replication-dimensions)
+ [CloudWatch の S3 Storage Lens のディメンション。](#storage-lens-dimensions)
+ [CloudWatch の S3 Object Lambda リクエストのディメンション](#olap-dimensions)
+ [Amazon S3 使用状況メトリクス](#s3-service-quota-metrics)

## CloudWatch のバケットの Amazon S3 デイリーストレージメトリクス。
<a name="s3-cloudwatch-metrics"></a>

`AWS/S3` 名前空間には、バケットの以下の日次ストレージメトリクスが含まれます。


| メトリクス | 説明 | 
| --- | --- | 
| BucketSizeBytes |  次のストレージクラスのバケットに保存されているデータ量 (バイト単位):  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/metrics-dimensions.html) この値は、バケット内のすべてのオブジェクト (現行オブジェクトと旧オブジェクトの両方) とメタデータ (バケット名など) のサイズを合計することによって計算され、これにはバケットに対する未完了のすべてのマルチパートアップロードのすべてのパートのサイズも含まれます。  S3 Express One Zone ストレージクラスは、ディレクトリバケットでのみ使用できます。  有効なストレージタイプのフィルタ (`StorageType` ディメンションを参照)  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/metrics-dimensions.html) 単位: バイト 有効な統計: Average `StorageType` ディメンションの詳細については、[CloudWatch の Amazon S3 ディメンション](#s3-cloudwatch-dimensions)を参照してください。  | 
| NumberOfObjects |  すべてのストレージクラスのバケットに保存されたオブジェクトの合計数。この値を計算するには、バケット内のすべてのオブジェクト (最新のオブジェクトと最新でないオブジェクトの両方)、削除マーカー、およびバケットに対するすべての不完全なマルチパートアップロードの合計パート数をカウントします。S3 Express One Zone ストレージクラスのオブジェクトがあるディレクトリバケットの場合、この値はバケット内のすべてのオブジェクトをカウントすることによって算出されます。ただし、バケットへの完了しなかったマルチパートアップロードは含まれません。 有効なストレージタイプのフィルタ: `AllStorageTypes` (`StorageType` ディメンションを参照) 単位: 個 有効な統計: Average  | 

## CloudWatch の Amazon S3 リクエストメトリクス
<a name="s3-request-cloudwatch-metrics"></a>

`AWS/S3` 名前空間には、次のリクエストメトリクスが含まれます。これらのメトリクスには、請求対象外のリクエスト (`CopyObject` および Replication からの `GET` リクエストの場合) が含まれます。

**注記**  
CloudWatch の Amazon S3 リクエストメトリクスは、ディレクトリバケットではサポートされません。


| メトリクス | 説明 | 
| --- | --- | 
| AllRequests |  タイプに関係なく、Amazon S3 バケットに対して行われた HTTP リクエストの総数。フィルターでメトリクス設定を使用している場合、このメトリクスはフィルターの要件を満たす HTTP リクエストのみを返します。 単位: カウント 有効な統計: Sum  | 
| GetRequests |  Amazon S3 バケット内のオブジェクトに対して行われた HTTP `GET` リクエストの数。これには、リストオペレーションは含まれません。このメトリクスは、`CopyObject` リクエストのリクエスト元ごとに増加します。 単位: カウント 有効な統計: Sum  [https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListMPUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListMPUpload.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListParts.html](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListParts.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETVersion.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETVersion.html) など、ページ分割されたリスト指向のリクエストは、このメトリクスに含まれません。   | 
| PutRequests |  Amazon S3 バケット内のオブジェクトに対して行われた HTTP `PUT` リクエストの数。このメトリクスは、`CopyObject` リクエストのリクエスト先ごとに増加します。 単位: カウント 有効な統計: Sum  | 
| DeleteRequests |  Amazon S3 バケット内のオブジェクトに対して行われた HTTP `DELETE` リクエストの数。このメトリクスには [https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html](https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html) リクエストも含まれます。このメトリクスは、削除されるオブジェクトの数ではなく作成されたリクエストの数を示します。 単位: カウント 有効な統計: Sum  | 
| HeadRequests |  Amazon S3 バケットに対して行われた HTTP `HEAD` リクエストの数。 単位: カウント 有効な統計: Sum  | 
| PostRequests |  Amazon S3 バケットに対して行われた HTTP `POST` リクエストの数。 単位: カウント 有効な統計: Sum  [https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html](https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html) および [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html) リクエストはこのメトリクスに含まれません。   | 
| SelectRequests |  Amazon S3 バケット内のオブジェクトに対して行われた Amazon S3 の [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html) リクエストの数。 単位: カウント 有効な統計: Sum  | 
| SelectBytesScanned |  Amazon S3 バケットの Amazon S3 の [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html) リクエストでスキャンされたデータのバイト数。  単位: バイト  有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| SelectBytesReturned |  Amazon S3 バケットの Amazon S3 の [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html) リクエストで返されたデータのバイト数。  単位: バイト  有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| ListRequests |  バケットの内容をリストする HTTP リクエストの数。 単位: 個 有効な統計: Sum  | 
| BytesDownloaded |  Amazon S3 バケットに対する、レスポンスに本文が含まれるリクエストに対してダウンロードしたバイト数。 単位: バイト 有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| BytesUploaded |  Amazon S3 バケットに対する、リクエストに本文が含まれるリクエストに対してアップロードしたバイト数。 単位: バイト 有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| 4xxErrors |  Amazon S3 バケットに対して行われた、値が 0 または 1 の HTTP 4*xx* クライアントエラーステータスコードリクエストの数。Average 統計はエラーレートを示し、Sum 統計は各期間中のそのタイプのエラー数を示します。 単位: カウント 有効な統計: Average (リクエストあたりの報告数)、Sum (期間あたりの報告数)、Min、Max、Sample Count  | 
| 5xxErrors |  Amazon S3 バケットに対して行われた、値が 0 または 1 の HTTP 5*xx* サーバーエラーステータスコードリクエストの数。Average 統計はエラーレートを示し、Sum 統計は各期間中のそのタイプのエラー数を示します。 単位: カウント 有効な統計: Average (リクエストあたりの報告数)、Sum (期間あたりの報告数)、Min、Max、Sample Count  | 
| FirstByteLatency |  Amazon S3 バケットがリクエスト全体を受信してからレスポンスの返信が開始するまでのリクエストあたりの時間。 単位: ミリ秒 有効な統計: Average、Sum、Min、Max (p100 と同じ)、Sample Count、p0.0～p100 のパーセンタイル  | 
| TotalRequestLatency |  最初のバイトが受信されてから Amazon S3 バケットに最後のバイトが送信されるまでのリクエストあたりの経過時間。このメトリクスには、`FirstByteLatency` には含まれない、リクエストボディの受信とレスポンス本文の送信にかかった時間が含まれます。 単位: ミリ秒 有効な統計: Average、Sum、Min、Max (p100 と同じ)、Sample Count、p0.0～p100 のパーセンタイル  | 

## CloudWatch の S3 レプリケーションメトリクス
<a name="s3-cloudwatch-replication-metrics"></a>

保留中のバイト数、保留中のオペレーション、およびレプリケーションのレイテンシーを追跡することにより、S3 レプリケーションメトリクスを使用してレプリケーションの進行状況をモニタリングできます。詳細については、「[レプリケーションメトリクスによる進捗状況のモニタリング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication-metrics.html)」をご参照ください。

**注記**  
Amazon CloudWatch でレプリケーションメトリクスのアラームを有効にできます。レプリケーションメトリクスのアラームを設定する場合は、[**Missing data treatment (欠落データの処理)**] フィールドを [**Treat missing data as ignore (maintain the alarm state) (欠落データの処理方法: 無視 (アラームの状態を維持)**] に設定します。


| メトリクス | 説明 | 
| --- | --- | 
| ReplicationLatency |  特定のレプリケーションルールについて、レプリケート先 AWS リージョン がレプリケート元 AWS リージョン より遅れる最大秒数。 単位: 秒 有効な統計: Max  | 
| BytesPendingReplication |  特定のレプリケーションルールについて、レプリケーションが保留中のオブジェクトの合計バイト数。 単位: バイト 有効な統計: Max  | 
| OperationsPendingReplication |  特定のレプリケーションルールについて、レプリケーションが保留中のオペレーションの数。 単位: カウント 有効な統計: Max  | 
| OperationsFailedReplication |  特定のレプリケーションルールについて、レプリケートに失敗したオペレーションの数。 単位: カウント  有効な統計: 合計 (失敗した操作の総数)、平均 (失敗率)、サンプル数 (レプリケーションオペレーションの総数)  | 

## CloudWatch での S3 Storage Lens のメトリクス
<a name="storage-lens-metrics-cloudwatch-publish"></a>

S3 StorageLens の使用状況とアクティビティのメトリクスを Amazon CloudWatch に公開して、CloudWatch [ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用状態の統一されたビューを作成できます。CloudWatch 内の `AWS/S3/Storage-Lens` 名前空間 S3 Storage Lens メトリクスを公開します。CloudWatch 公開オプションは、アドバンストメトリクスとレコメンデーションにアップグレードされている S3 StorageLens ダッシュボードで利用できます。

CloudWatch に公開された S3 Storage Lens メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。ディメンションの詳細なリストについては、[ディメンション](storage-lens-cloudwatch-metrics-dimensions.md#storage-lens-cloudwatch-dimensions) を参照してください。

## CloudWatch の S3 Object Lambda リクエスト
<a name="olap-cloudwatch-metrics"></a>

S3 Object Lambda には、次のリクエストメトリクスが含まれます。


| メトリクス | 説明 | 
| --- | --- | 
| AllRequests |  Object Lambda アクセスポイントを使用して Amazon S3 バケットに対して行われた HTTP リクエストの総数。 単位: カウント 有効な統計: Sum  | 
| GetRequests |  Object Lambda アクセスポイントを使用してオブジェクトに対して行われた HTTP `GET` リクエストの数。このメトリクスにはリストオペレーションは含まれません。 単位: カウント 有効な統計: Sum  | 
| BytesUploaded |  Object Lambda アクセスポイントを使用して Amazon S3 バケットにアップロードされたバイト数。リクエストには本文が含まれます。 単位: バイト 有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| PostRequests |  Object Lambda アクセスポイントを使用して Amazon S3 バケットに対して行われた HTTP `POST` リクエストの数。 単位: カウント 有効な統計: Sum  | 
| PutRequests |  Object Lambda アクセスポイントを使用して Amazon S3 バケット内のオブジェクトに対して行われた HTTP `PUT` リクエストの数。 単位: カウント  有効な統計: Sum  | 
| DeleteRequests |  Object Lambda アクセスポイントを使用して Amazon S3 バケット内のオブジェクトに対して行われた HTTP `DELETE` リクエストの数。このメトリクスには [https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html](https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html) リクエストが含まれます。このメトリクスは、削除されるオブジェクトの数ではなく作成されたリクエストの数を示します。 単位: カウント 有効な統計: Sum  | 
| BytesDownloaded |  Amazon S3 バケットに対する、レスポンスに本文が含まれる Object Lambda のアクセスポイントを使用したリクエストに対してダウンロードしたバイト数。 単位: バイト  有効な統計: Average (リクエストあたりのバイト数)、Sum (期間あたりのバイト数)、Sample Count、Min、Max (p100 と同じ)、p0.0～p99.9 のパーセンタイル  | 
| FirstByteLatency |  Amazon S3 バケットが Object Lambda を経由してリクエスト全体を受信してからレスポンスの返信が開始するまでのリクエストあたりの時間。このメトリクスは、AWS Lambda 関数が Object Lambda アクセスポイントにバイトを返すまでにオブジェクトを変換する関数の実行時間によって異なります。 単位: ミリ秒  有効な統計: Average、Sum、Min、Max (p100 と同じ)、Sample Count、p0.0～p100 のパーセンタイル  | 
| TotalRequestLatency |  最初のバイトが受信されてから Object Lambda アクセスポイントに最後のバイトが送信されるまでのリクエストあたりの経過時間。このメトリクスには、`FirstByteLatency` には含まれない、リクエストボディの受信とレスポンス本文の送信にかかった時間が含まれます。 単位: ミリ秒 有効な統計: Average、Sum、Min、Max (p100 と同じ)、Sample Count、p0.0～p100 のパーセンタイル  | 
| HeadRequests |  Object Lambda アクセスポイントを使用して Amazon S3 バケットに対して行われた HTTP `HEAD` リクエストの数。 単位: カウント 有効な統計: Sum  | 
| ListRequests |  Amazon S3 バケットの内容をリストする HTTP `GET` リクエストの数。このメトリクスには、`ListObjects` および `ListObjectsV2` オペレーションの両方が含まれます。 単位: カウント 有効な統計: Sum  | 
| 4xxErrors |  Object Lambda アクセスポイントを使用して Amazon S3 バケットに対して行われた、値が 0 または 1 の HTTP 4*xx* クライアントエラーステータスコードリクエストの数。AAverage 統計はエラーレートを示し、Sum 統計は各期間中のそのタイプのエラー数を示します。 単位: カウント  有効な統計: Average (リクエストあたりの報告数)、Sum (期間あたりの報告数)、Min、Max、Sample Count  | 
| 5xxErrors |  Object Lambda アクセスポイントを使用して Amazon S3 バケットに対して行われた、値が 0 または 1 の HTTP 5*xx* サーバーエラーステータスコードリクエストの数。AAverage 統計はエラーレートを示し、Sum 統計は各期間中のそのタイプのエラー数を示します。 単位: カウント  有効な統計: Average (リクエストあたりの報告数)、Sum (期間あたりの報告数)、Min、Max、Sample Count  | 
| ProxiedRequests |  標準の Amazon S3 API レスポンスを返す Object Lambda アクセスポイントへの HTTP リクエストの数。(このようなリクエストには Lambda 関数は設定されていません。) 単位: カウント 有効な統計: Sum  | 
| InvokedLambda |  Lambda 関数が呼び出された S3 オブジェクトへの HTTP リクエストの数。 単位: カウント 有効な統計: Sum  | 
| LambdaResponseRequests |  Lambda 関数によって行われた `WriteGetObjectResponse` リクエストの数。このメトリクスは、`GetObject` リクエストにのみ適用されます。  | 
| LambdaResponse4xx |  Lambda 関数から `WriteGetObjectResponse` を呼び出すときに発生する HTTP 4*xx* クライアントエラーの数。このメトリクスは `4xxErrors` 呼び出しと同じ情報を提供しますが、対象は `WriteGetObjectResponse` 呼び出しのみです。  | 
| LambdaResponse5xx |  Lambda 関数から `WriteGetObjectResponse` を呼び出すときに発生する HTTP 5*xx* サーバーエラーの数。このメトリクスは `5xxErrors` 呼び出しと同じ情報を提供しますが、対象は `WriteGetObjectResponse` 呼び出しのみです。  | 

## CloudWatch の Amazon S3 ディメンション
<a name="s3-cloudwatch-dimensions"></a>

以下のディメンションは、Amazon S3 メトリクスをフィルタリングするために使用されます。


|  ディメンション  |  説明  | 
| --- | --- | 
|  BucketName  |  このディメンションを指定すると、リクエストしたデータがフィルタリングされて、指定のバケットのものだけになります。  | 
|  StorageType  |  このディメンションは、バケットに保存されたデータを、以下のストレージタイプでフィルタリングします。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/metrics-dimensions.html)  | 
| FilterId | このディメンションは、バケットに対するリクエストメトリクスに対して指定するメトリクス設定をフィルタリングします。メトリクス設定を作成するときは、フィルター ID（プレフィックス、タグ、アクセスポイントなど）を指定します。詳細については、[メトリクス設定の作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/metrics-configurations.html)を参照してください。 | 

## CloudWatch の S3 レプリケーションディメンション
<a name="s3-replication-dimensions"></a>

以下のディメンションは、S3 レプリケーションメトリクスをフィルタリングするために使用されます。


|  ディメンション  |  説明  | 
| --- | --- | 
|  SourceBucket  |  オブジェクトのレプリケート元となるバケットの名前。  | 
|  DestinationBucket  |  オブジェクトのレプリケート先となるバケットの名前。  | 
|  RuleId  |  このレプリケーションメトリクスの更新をトリガーしたルールの一意の識別子。  | 

## CloudWatch の S3 Storage Lens のディメンション。
<a name="storage-lens-dimensions"></a>

CloudWatch で S3 Storage Lens メトリクスのフィルタリングに使用されるディメンションのリストについては、「[ディメンション](storage-lens-cloudwatch-metrics-dimensions.md#storage-lens-cloudwatch-dimensions)」を参照してください。

## CloudWatch の S3 Object Lambda リクエストのディメンション
<a name="olap-dimensions"></a>

次のディメンションを使用して、Object Lambda アクセスポイントからのデータをフィルタリングします。


| ディメンション | 説明 | 
| --- | --- | 
| AccessPointName |  リクエストが行われているアクセスポイントの名前。  | 
| DataSourceARN |  Object Lambda アクセスポイントがデータを取得しているソース。リクエストが Lambda 関数を呼び出す場合、これは Lambda Amazon リソースネーム (ARN) を指します。それ以外の場合は、アクセスポイント ARN を指します。  | 

## Amazon S3 使用状況メトリクス
<a name="s3-service-quota-metrics"></a>

CloudWatch 使用状況メトリクスを使用して、アカウントのリソースの使用状況を把握できます。これらのメトリクスを使用して、CloudWatch グラフやダッシュボードで現在のサービスの使用状況を可視化できます。

Amazon S3 使用状況メトリクスは、AWS の Service Quotas に対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。CloudWatch とサービスクオータの統合については、「*Amazon CloudWatch ユーザーガイド*」の「[AWS 使用状況メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)」を参照してください。

Amazon S3 は、`AWS/Usage` 名前空間に以下のメトリクスを公開します。


| メトリクス | 説明 | 
| --- | --- | 
| `ResourceCount` |  アカウントで実行されている指定されたリソースの数。リソースはメトリクスに関連付けられたディメンションによって定義されます。  | 

次のディメンションは、Amazon S3 によって発行される使用状況メトリクスを絞り込むために使用されます。


| ディメンション | 説明 | 
| --- | --- | 
|  Service  |  リソースを含む AWS のサービスの名前。Amazon S3 使用状況メトリクスの場合、このディメンションの値は `S3` です。  | 
|  Type  |  報告されるエンティティタイプ。現在、Amazon S3 使用状況メトリクスの有効な値は `Resource` のみです。  | 
|  Resource  |  実行中のリソースタイプ。現在、Amazon S3 使用状況メトリクスの有効な値は `GeneralPurposeBuckets` のみです。これは、AWS アカウント内の汎用バケットの数を返します。汎用バケットでは、S3 Express One Zone 以外のすべてのストレージクラスにオブジェクトを保存できます。  | 

# CloudWatch メトリクスへのアクセス
<a name="cloudwatch-monitoring-accessing"></a>

以下の手順を使用して、Amazon S3 のストレージメトリクスを表示できます。Amazon S3 メトリクスを含めるには、開始と終了のタイムスタンプを設定する必要があります。特定の 24 時間あたりのメトリクスの場合は、期間を 1 日の秒数である 86400 秒に設定します。また、`BucketName` および `StorageType` ディメンションを忘れずに設定してください。

## AWS CLI の使用
<a name="accessing-cw-metrics-cli"></a>

例えば、AWS CLI を使用して特定のバケットの平均サイズ (バイト単位) を取得する場合、次のコマンドを使用できます。

```
aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --namespace AWS/S3 --start-time 2016-10-19T00:00:00Z --end-time 2016-10-20T00:00:00Z --statistics Average --unit Bytes --region us-west-2 --dimensions Name=BucketName,Value=amzn-s3-demo-bucket Name=StorageType,Value=StandardStorage --period 86400 --output json
```

この例では、次の出力が生成されます。

```
{
    "Datapoints": [
        {
            "Timestamp": "2016-10-19T00:00:00Z", 
            "Average": 1025328.0, 
            "Unit": "Bytes"
        }
    ], 
    "Label": "BucketSizeBytes"
}
```

## S3 コンソールの使用
<a name="accessing-cw-metrics-console"></a>

**Amazon CloudWatch コンソールを使用してメトリクスを表示するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. 左のナビゲーションペインで **[Metrics]** (メトリクス) を選択します。

1. [**S3**] 名前空間を選択します。

1. (オプション) メトリクスを表示するには、検索ボックスにメトリクス名を入力します。

1. (オプション) [**StorageType**] ディメンションでフィルタする場合は、検索ボックスにストレージクラスの名前を入力します。

**AWS CLI を使用して AWS アカウント に保存された有効なメトリクスのリストを表示するには**
+ コマンドプロンプトで、以下のコマンドを使用します。

  ```
  1. aws cloudwatch list-metrics --namespace "AWS/S3"
  ```

CloudWatch のアクセス許可の詳細については「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch ダッシュボード許可の更新](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/dashboard-permissions-update.html)」を参照してください。

# CloudWatch メトリクスの設定
<a name="metrics-configurations"></a>

Amazon S3 の Amazon CloudWatch リクエストメトリクスを使うと、1 分の CloudWatch メトリクスの受信、CloudWatch アラームの設定、および CloudWatch ダッシュボードへのアクセスによって、Amazon S3 ストレージの運用とパフォーマンスをほぼリアルタイムで確認できます。クラウドストレージに依存するアプリケーションの場合、これらのメトリクスを使用すると、オペレーションの問題を迅速に特定して対応できます。有効になっている場合、デフォルトでは、Amazon S3 バケットレベルでこれらの 1 分のメトリクスが利用可能です。

バケット内のオブジェクトに対する CloudWatch リクエストメトリクスを取得するには、そのバケットのメトリクス設定を作成する必要があります。詳細については、[バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する](configure-request-metrics-bucket.md) を参照してください。

共有プレフィックス、オブジェクトタグ、またはアクセスポイントを使用して、収集したメトリクスのフィルタを定義することもできます。フィルタを定義するこの方法を使用すると、メトリクスフィルタを特定のビジネスアプリケーション、ワークフロー、または内部組織に合わせることができます。詳細については、[プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成](metrics-configurations-filter.md) を参照してください。使用可能な CloudWatch メトリクスとストレージおよびリクエストメトリクスの違いの詳細については、[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md) を参照してください。

メトリクス設定を使用するときは、以下に注意してください。
+ バケットあたりの最大メトリクス設定数は 1000 です。
+ フィルタを使用して、メトリクス設定に含めるバケット内のオブジェクトを選択できます。共有プレフィックス、オブジェクトタグ、またはアクセスポイントでフィルタリングすると、メトリクスを特定のビジネスアプリケーション、ワークフロー、または内部組織に合わせることができます。バケット全体のメトリクスをリクエストするには、フィルタのないメトリクス設定を作成します。
+ メトリクス設定は、リクエストメトリクスを有効にするためにのみ必要です。バケットレベルでの日次ストレージメトリクスは常にオンになり、追加料金なしで提供されます。現在、フィルタリングされたオブジェクトサブセットの日次ストレージメトリクスを取得することはできません。
+ 各メトリクス設定では、[使用可能なリクエストメトリクス](metrics-dimensions.md#s3-request-cloudwatch-metrics)のフルセットが有効になります。オペレーション固有のメトリクス (`PostRequests` など) は、バケットまたはフィルタにそのタイプのリクエストがある場合にのみ報告されます。
+ リクエストメトリクスは、オブジェクトレベルのオペレーションに対して報告されます。また、[バケットの取得 (オブジェクトのリスト)](https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html)、[バケットオブジェクトバージョンの取得](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETVersion.html)、[マルチパートアップロードのリスト](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadListMPUpload.html)などのバケットコンテンツをリストするオペレーションに対しても報告されますが、バケットでのその他のオペレーションに対しては報告されません。
+ リクエストメトリクスでは、プレフィックス、オブジェクトタグ、またはアクセスポイントによるフィルタリングがサポートされますが、ストレージメトリクスではサポートされません。

**ベストエフォート型の CloudWatch メトリクス配信**  
 CloudWatch メトリクスは、ベストエフォートで配信されます。リクエストメトリクスを持つ Amazon S3 オブジェクトのほとんどのリクエストにより、データポイントが CloudWatch に送信されます。

メトリクスの完全性や適時性は保証されません。特定のリクエストのデータポイントが、リクエストが実際に処理されたよりも後のタイムスタンプで返される場合があります。1 分のデータポイントは CloudWatch を通じて利用可能になるまで遅延する場合や、まったく提供されない場合があります。CloudWatch リクエストメトリクスは、バケットに対するトラフィックの特性をほぼリアルタイムで示します。すべてのリクエストを完全に報告するためのものではありません。

この機能はベストエフォート型であるため、[請求情報とコスト管理ダッシュボード](https://console.aws.amazon.com/billing/home?#/)で利用できるレポートには、バケットメトリクスに表示されない 1 つ以上のアクセスリクエストが含まれることがあります。

Amazon S3 での CloudWatch メトリクスの操作方法の詳細については、以下のトピックを参照してください。

**Topics**
+ [バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する](configure-request-metrics-bucket.md)
+ [プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成](metrics-configurations-filter.md)
+ [メトリクスフィルタの削除](delete-request-metrics-filter.md)

# バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する
<a name="configure-request-metrics-bucket"></a>

リクエストメトリクスを設定するときは、バケット内のすべてのオブジェクトに対して CloudWatch メトリクス設定を作成するか、プレフィックス、オブジェクトタグ、またはアクセスポイントでフィルタリングすることができます。このトピックの手順は、バケット内のすべてのオブジェクトに対して設定を作成する方法を説明します。オブジェクトタグ、プレフィックス、またはアクセスポイントでフィルタリングする設定を作成するには、[プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成](metrics-configurations-filter.md) を参照してください。

Amazon S3 の Amazon CloudWatch メトリクスには、ストレージメトリクス、リクエストメトリクス、レプリケーションメトリクスの 3 種類があります。ストレージメトリクスは、1 日に 1 回レポートされ、すべてのお客様に追加料金なしで提供されます。リクエストメトリクスは、処理のレイテンシーの後に 1 分間隔で使用できます。リクエストメトリクスには、CloudWatch の標準料金が課金されます。コンソールで設定するか、Amazon S3 API を使用して、リクエストメトリクスを取得する必要があります。[S3 レプリケーションメトリクス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/viewing-replication-metrics.html) は、レプリケーション設定のレプリケーションルールの詳細なメトリクスを提供します。レプリケーションメトリクスを使って、保留中のバイト数、保留中のオペレーション、レプリケーションに失敗したオペレーション、レプリケーションのレイテンシーを追跡すると、レプリケーションの進行状況を 1 分単位でモニタリングできます。

Amazon S3 の CloudWatch メトリクスの詳細については、「[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md)」を参照してください。

Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、または Amazon S3 REST API を使用して、バケットにメトリクス設定を追加できます。

## S3 コンソールの使用
<a name="configure-metrics"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、メトリクスをリクエストするオブジェクトが含まれるバケットの名前を選択します。

1. [**Metrics**] (メトリクス) タブをクリックします。

1. **[バケットメトリクス]** で、**[その他のグラフを表示]** をクリックします。

1. **[リクエストメトリクス]** タブをクリックします。

1. **[フィルターの作成]** をクリックします。

1. **[フィルタ名]** ボックスに、フィルタ名を入力します。

   名前には、文字、数字、ピリオド、ダッシュ、アンダースコアのみを使用できます。すべてのオブジェクトに適用されるフィルタには、名前 `EntireBucket` を使用することをお勧めします。

1. **[フィルタ範囲]** で、**[このフィルタはバケット内のすべてのオブジェクトに適用されます]** を選択します。

   フィルタを定義することで、バケット内のオブジェクトのサブセットに関するメトリクスのみを収集してレポートすることもできます。詳細については、[プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成](metrics-configurations-filter.md) を参照してください。

1. **[Save changes]** (変更の保存) をクリックします。

1. **[リクエストメトリクス]** タブの **[フィルタ]** で、作成したフィルタを選択します。

   約 15 分後、CloudWatch はこれらのリクエストメトリクスの追跡を開始します。これらは、[**リクエストメトリクス**] タブで確認できます。メトリクスのグラフは、Amazon S3 または CloudWatch コンソールでレプリケーションメトリクスで表示できます。リクエストメトリクスには、CloudWatch の標準料金が課金されます。詳細については、[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)を参照してください。

## REST API の使用
<a name="metrics-configuration-api"></a>

Amazon S3 REST API でメトリクス設定をプログラムで追加することもできます。メトリクス設定の追加と使用の詳細については、**「Amazon Simple Storage Service API リファレンス」で以下のトピックを参照してください。
+ [PUT Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
+ [GET Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETMetricConfiguration.html)
+ [List Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTListBucketMetricsConfiguration.html)
+ [DELETE Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTDeleteBucketMetricsConfiguration.html)

## AWS CLI の使用
<a name="add-metrics-configurations"></a>

1. AWS CLI をインストールしてセットアップします。手順については、**「AWS Command Line Interface ユーザーガイド」の「[AWS CLI のインストール、更新、およびアンインストール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)」を参照してください。

1. ターミナルを開きます。

1. 以下のコマンドを実行してメトリクス設定を追加します。

   ```
   aws s3api put-bucket-metrics-configuration --endpoint https://s3.us-west-2.amazonaws.com --bucket bucket-name --id metrics-config-id --metrics-configuration '{"Id":"metrics-config-id"}'
   ```

# プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成
<a name="metrics-configurations-filter"></a>

Amazon S3 の Amazon CloudWatch メトリクスには、ストレージメトリクス、リクエストメトリクス、レプリケーションメトリクスの 3 種類があります。ストレージメトリクスは、1 日に 1 回レポートされ、すべてのお客様に追加料金なしで提供されます。リクエストメトリクスは、処理のレイテンシーの後に 1 分間隔で使用できます。リクエストメトリクスには、CloudWatch の標準料金が課金されます。コンソールで設定するか、Amazon S3 API を使用して、リクエストメトリクスを取得する必要があります。[S3 レプリケーションメトリクス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/viewing-replication-metrics.html) は、レプリケーション設定のレプリケーションルールの詳細なメトリクスを提供します。レプリケーションメトリクスを使って、保留中のバイト数、保留中のオペレーション、レプリケーションに失敗したオペレーション、レプリケーションのレイテンシーを追跡すると、レプリケーションの進行状況を 1 分単位でモニタリングできます。

Amazon S3 の CloudWatch メトリクスの詳細については、「[Amazon CloudWatch によるメトリクスのモニタリング](cloudwatch-monitoring.md)」を参照してください。

CloudWatch メトリクスを設定する場合、バケット内のすべてのオブジェクトに対してフィルタを作成することも、1 つのバケット内の関連オブジェクトのグループに設定をフィルタリングすることもできます。以下のフィルタタイプの 1 つ以上に基づいて、メトリクス設定に含めるバケット内のオブジェクトをフィルタリングできます。
+ **オブジェクトキー名のプレフィックス** – Amazon S3 データモデルはフラット構造ですが、プレフィックスを使用して階層を推測できます。Amazon S3 コンソールはフォルダの概念でこれらのプレフィックスをサポートします。プレフィックスでフィルタリングした場合、同じプレフィックスを持つオブジェクトがメトリクス設定に含まれます。 プレフィックスの詳細については、[プレフィックスを使用してオブジェクトを整理する](using-prefixes.md) を参照してください。
+ **タグ** – オブジェクトにタグ (キー値と名前のペア) を追加できます。タグを使用すると、オブジェクトを簡単に検索および整理できます。メトリクス設定のフィルタとしてタグを使用することもできます。オブジェクトタグの詳細については、[タグを使用したオブジェクトの分類](object-tagging.md)を参照してください。
+ **アクセスポイント** – S3 アクセスポイントは、バケットに接続され、S3 の共有データセットの大規模なデータアクセスの管理を簡素化する名前付きネットワークエンドポイントです。アクセスポイントフィルタを作成すると、Amazon S3 には、メトリクス設定で指定したアクセスポイントへのリクエストが含まれます。詳細については、[アクセスポイントのモニタリングとログ記録](access-points-monitoring-logging.md) を参照してください。
**注記**  
アクセスポイントでフィルタリングするメトリクス設定を作成する場合は、アクセスポイントのエイリアスではなく、アクセスポイントの Amazon リソースネーム (ARN) を使用する必要があります。ARN は、特定のオブジェクトの ARN ではなく、アクセスポイント自体に使用してください。アクセスポイントの ARN の詳細については、「[汎用バケットでの Amazon S3 アクセスポイントの使用](using-access-points.md)」を参照してください。

フィルタを指定した場合、単一のオブジェクトで機能するリクエストのみがフィルタと一致し、報告されたメトリクスに含められます。[https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html](https://docs.aws.amazon.com/AmazonS3/latest/API/multiobjectdeleteapi.html) や `ListObjects` のリクエストは、フィルターによる設定のメトリクスを一切返しません。

より複雑なフィルタリングをリクエストするには、複数のエレメントを選択します。これらのすべてのエレメントを持つオブジェクトのみがメトリクス設定に含められます。フィルタを設定しない場合、バケット内のすべてのオブジェクトがメトリクス設定に含められます。

## S3 コンソールの使用
<a name="configure-metrics-filter"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、メトリクスをリクエストするオブジェクトが含まれるバケットの名前を選択します。

1. [**Metrics**] (メトリクス) タブをクリックします。

1. **[バケットメトリクス]** で、**[その他のグラフを表示]** をクリックします。

1. **[リクエストメトリクス]** タブをクリックします。

1. **[フィルターの作成]** をクリックします。

1. **[フィルタ名]** ボックスに、フィルタ名を入力します。

   名前には、文字、数字、ピリオド、ダッシュ、アンダースコアのみを使用できます。

1. [**フィルタの範囲**] で、**プレフィックス、オブジェクトタグ、S3 アクセスポイント、または 3 つすべての組み合わせを使用して、このフィルタの範囲を制限します。**。

1. [**フィルタのタイプ**で、フィルタタイプを**プレフィックス**、**オブジェクトタグ**、または**アクセスポイント**から少なくとも 1 つ選択します。

1. [**プレフィックス**] ボックスにプレフィックスを入力して、プレフィックスフィルタを定義し、フィルタの範囲を単一のパスに制限します。

1. オブジェクトタグフィルタを定義するには、**[オブジェクトタグ]** で、**[タグの追加]** を選択し、タグの**キー**および**値**を入力します。

1. アクセスポイントフィルタを定義するには、**[S3 アクセスポイント]** フィールドに、アクセスポイント ARN を入力するか、**[S3 を参照]** を選択して、アクセスポイントに移動します。
**重要**  
アクセスポイントのエイリアスは入力できません。特定のオブジェクトの ARN ではなく、アクセスポイント自体の ARN を入力する必要があります。

1. **[Save changes]** (変更の保存) をクリックします。

   Amazon S3 は、指定したプレフィックス、タグ、またはアクセスポイントを使用するフィルタを作成します。

1. **[リクエストメトリクス]** タブの **[フィルタ]** で、作成したフィルタを選択します。

   これで、リクエストメトリクスの範囲をプレフィックス、タグ、またはアクセスポイントで制限するフィルタが作成されました。CloudWatch がこれらのリクエストメトリクスの追跡を開始してから約 15 分後に、Amazon S3 コンソールと CloudWatch コンソールの両方でメトリクスのグラフを表示できるようになります。リクエストメトリクスには、CloudWatch の標準料金が課金されます。詳細については、[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)を参照してください。

   バケットレベルでリクエストメトリクスを設定することもできます。詳細については、「[バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する](configure-request-metrics-bucket.md)」を参照してください。

## AWS CLI の使用
<a name="add-metrics-configurations"></a>

1. AWS CLI をインストールしてセットアップします。手順については、**「AWS Command Line Interface ユーザーガイド」の「[AWS CLI のインストール、更新、およびアンインストール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)」を参照してください。

1. ターミナルを開きます。

1. 以下のコマンドを実行してメトリクス設定を追加します。  
**Example : プレフィックスでフィルタリングするには**  

   ```
   aws s3api put-bucket-metrics-configuration --bucket amzn-s3-demo-bucket --id metrics-config-id --metrics-configuration '{"Id":"metrics-config-id", "Filter":{"Prefix":"prefix1"}} '
   ```  
**Example : タグでフィルタリングするには**  

   ```
   aws s3api put-bucket-metrics-configuration --bucket amzn-s3-demo-bucket --id metrics-config-id --metrics-configuration '{"Id":"metrics-config-id", "Filter":{"Tag": {"Key": "string", "Value": "string"}} '
   ```  
**Example : アクセスポイントでフィルタリングするには**  

   ```
   aws s3api put-bucket-metrics-configuration --bucket amzn-s3-demo-bucket --id metrics-config-id --metrics-configuration '{"Id":"metrics-config-id", "Filter":{"AccessPointArn":"arn:aws:s3:Region:account-id:accesspoint/access-point-name"}} '
   ```  
**Example : プレフィックス、タグ、アクセスポイントでフィルタリングするには**  

   ```
   aws s3api put-bucket-metrics-configuration --endpoint https://s3.Region.amazonaws.com --bucket amzn-s3-demo-bucket --id metrics-config-id --metrics-configuration '
   {
       "Id": "metrics-config-id",
       "Filter": {
           "And": {
               "Prefix": "string",
               "Tags": [
                   {
                       "Key": "string",
                       "Value": "string"
                   }
               ],
               "AccessPointArn": "arn:aws:s3:Region:account-id:accesspoint/access-point-name"
           }
       }
   }'
   ```

## REST API の使用
<a name="configure-cw-filter-rest"></a>

Amazon S3 REST API でメトリクス設定をプログラムで追加することもできます。メトリクス設定の追加と使用の詳細については、**「Amazon Simple Storage Service API リファレンス」で以下のトピックを参照してください。
+ [PUT Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
+ [GET Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETMetricConfiguration.html)
+ [List Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTListBucketMetricsConfiguration.html)
+ [DELETE Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTDeleteBucketMetricsConfiguration.html)

# メトリクスフィルタの削除
<a name="delete-request-metrics-filter"></a>

Amazon CloudWatch リクエストメトリクスフィルタが不要になった場合は、削除できます。フィルタを削除すると、その*特定のフィルタ*を使用するリクエストメトリクスに対して課金されなくなります。ただし、存在する他のフィルタ設定については、引き続き課金されます。

フィルタを削除すると、リクエストメトリクスにフィルタを使用できなくなります。フィルタを削除すると、元に戻すことはできません。

リクエストメトリクスフィルタの作成については、次のトピックを参照してください。
+ [バケット内のすべてのオブジェクトに対する CloudWatch メトリクス設定を作成する](configure-request-metrics-bucket.md)
+ [プレフィックス、オブジェクトタグ、またはアクセスポイントでのメトリクス設定の作成](metrics-configurations-filter.md)

## S3 コンソールの使用
<a name="delete-request-metrics-filter-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、リクエストメトリクスフィルタを削除するバケットの名前を選択します。

1. [**Metrics**] (メトリクス) タブをクリックします。

1. **[バケットメトリクス]** で、**[その他のグラフを表示]** をクリックします。

1. [**Request metrics**] (リクエストメトリクス) タブをクリックします。

1. **[フィルタの管理]** を選択します。

1. フィルタを選択します。
**重要**  
フィルタを削除すると、元に戻すことはできません。

1. [**削除**] を選択します。

   Amazon S3 によってフィルタが削除されます。

## REST API の使用
<a name="delete-request-metrics-filter-rest"></a>

Amazon S3 REST API でメトリクス設定をプログラムで追加することもできます。メトリクス設定の追加と使用の詳細については、**「Amazon Simple Storage Service API リファレンス」で以下のトピックを参照してください。
+ [PUT Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
+ [GET Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETMetricConfiguration.html)
+ [List Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTListBucketMetricsConfiguration.html)
+ [DELETE Bucket Metric Configuration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTDeleteBucketMetricsConfiguration.html)

# Amazon S3 イベント通知
<a name="EventNotifications"></a>

Amazon S3 イベント通知機能を使用して、S3 バケットで特定のイベントが発生したときに通知を受け取ることができます。通知を有効にするには、Amazon S3 から発行するイベントを識別する通知設定を追加します。Amazon S3 から通知を送信する宛先も指定されていることを確認してください。この設定は、バケットに関連付けられた*通知*サブリソースに保存します 詳細については、[汎用バケットの設定オプション](UsingBucket.md#bucket-config-options-intro) を参照してください。Amazon S3 では、このサブリソースを管理するための API も利用できます。

**重要**  
Amazon S3 イベント通知は、少なくとも 1 回配信されるように設計されています。通常、イベント通知は数秒で配信されますが、1 分以上かかる場合もあります。

## Amazon S3 イベント通知の概要。
<a name="notification-how-to-overview"></a>

現在、Amazon S3 は次のイベントの通知を発行できます。
+ 新しいオブジェクトの作成イベント
+ オブジェクトの削除イベント
+ オブジェクトイベントの復元
+ 低冗長化ストレージ (RRS) オブジェクトの紛失イベント
+ レプリケーションイベント
+ S3 ライフサイクルの有効期限イベント
+ S3 ライフサイクルの移行イベント
+ S3 Intelligent−Tiering 自動アーカイブイベント
+ オブジェクトのタグ付けイベント
+ オブジェクト ACL PUT イベント

サポートしたすべてのイベントタイプの詳細は、[SQS、SNS、および Lambda でサポートされているイベントタイプ](notification-how-to-event-types-and-destinations.md#supported-notification-event-types) を参照してください。

Amazon S3 は、次の宛先にイベントの通知メッセージを送信できます。通知設定でこれらの送信先の Amazon リソースネーム (ARN) 値を指定します。
+ Amazon Simple Notification Service (Amazon SNS) のトピック
+ Amazon Simple Queue Service Amazon SQS キュー
+ AWS Lambda 関数
+ Amazon EventBridge

詳細については、「[サポートされているイベントの送信先](notification-how-to-event-types-and-destinations.md#supported-notification-destinations)」を参照してください。

**注記**  
Amazon Simple キューサービス FIFO (先入れ先出し) キューは、Amazon S3 イベント通知の送信先としてサポートされていません。Amazon S3 イベントの通知を Amazon SQS FIFO キューに送信するには、Amazon EventBridge を使用できます。詳細については、「[Amazon EventBridge を有効にします](enable-event-notifications-eventbridge.md)」を参照してください。

**警告**  
通知が通知をトリガーするのと同じバケットに書き込むと、実行ループが発生する可能性があります。例えば、オブジェクトがアップロードされるたびにバケットで Lambda 関数をトリガーし、その関数によってオブジェクトがバケットにアップロードされると、その関数によって間接的にその関数自体がトリガーされます。これを回避するには、2 つのバケットを使用するか、受信オブジェクトで使用されるプレフィックスにのみ適用されるようにトリガーを設定します。  
AWS Lambda で Amazon S3 通知を使用する方法の詳細と例については、**「AWS Lambda デベロッパーガイド」の「[AWS Lambda を Amazon S3 に使用する](https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html)」を参照してください。

バケットごとに作成できるイベント通知設定数の詳細については、*AWS 全般のリファレンス*の[「Amazon S3 サービスクォータ」](https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3)を参照してください。

イベント通知の詳細については、以下のセクションを参照してください。

**Topics**
+ [Amazon S3 イベント通知の概要。](#notification-how-to-overview)
+ [イベント通知のタイプおよび送信先](notification-how-to-event-types-and-destinations.md)
+ [Amazon SQS、Amazon SNS、Lambda を使用します](how-to-enable-disable-notification-intro.md)
+ [EventBridge の使用](EventBridge.md)

# イベント通知のタイプおよび送信先
<a name="notification-how-to-event-types-and-destinations"></a>

Amazon S3 では、通知を発行できるいくつかのイベント通知のタイプと送信先がサポートされています。イベント通知を設定するときに、イベントタイプと送信先を指定できます。各イベント通知に指定できる送信先は 1 つだけです。Amazon S3 イベント通知は、通知メッセージごとに 1 つのイベントエントリを送信します。

**Topics**
+ [サポートされているイベントの送信先](#supported-notification-destinations)
+ [SQS、SNS、および Lambda でサポートされているイベントタイプ](#supported-notification-event-types)
+ [Amazon EventBridge でサポートされているイベントタイプ。](#supported-notification-event-types-eventbridge)
+ [イベントの順序付けと重複イベント](#event-ordering-and-duplicate-events)

## サポートされているイベントの送信先
<a name="supported-notification-destinations"></a>

Amazon S3 は、次の宛先にイベントの通知メッセージを送信できます。
+ Amazon Simple Notification Service (Amazon SNS)のトピック
+ Amazon Simple Queue Service Amazon SQS キュー
+ AWS Lambda
+ Amazon EventBridge

ただし、各イベント通知に指定できる送信先タイプは 1 つだけです。

**注記**  
Amazon SNS トピックまたは Amazon SQS キューにメッセージを投稿するには、Amazon S3 のアクセス許可を付与する必要があります。また、ユーザーに代わって AWS Lambda 関数を呼び出すためにも Amazon S3 の許可を付与する必要があります。これらの許可を付与する方法については、[宛先にイベント通知メッセージを発行するアクセス許可の付与](grant-destinations-permissions-to-s3.md) を参照してください。

### Amazon SNS トピック
<a name="amazon-sns-topic"></a>

Amazon SNS は、柔軟性に優れたフルマネージド型のプッシュメッセージングサービスです。このサービスを使用すると、モバイルデバイスまたは配信サービスにメッセージを配信できます。SNS で 一度メッセージを送信すると、1 回または複数回配信できます。現在 、 標準 SNS は S3 イベント通知の宛先としてのみ許可されていますが、SNS FIFO は許可されていません。

Amazon SNS は承認エンドポイントやクライアントへのメッセージの配信または送信の調整と管理を行います。Amazon SNS コンソールを使用して、通知の送信先にする Amazon SNS トピックを作成できます。

トピックは、Amazon S3 バケットと同じ AWS リージョンにある必要があります。Amazon SNS トピックの作成方法の詳細については、*Amazon Simple Notification Service デベロッパーガイド*の [Amazon SNS の開始方法](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html)および [Amazon SNS のよくある質問](https://aws.amazon.com/sns/faqs/) を参照してください。

イベント通知宛先として作成した Amazon SNS トピックを使用するには、以下のものが必要です。
+ Amazon SNS トピックの Amazon リソースネーム (ARN)
+ 有効な Amazon SNS トピックサブスクリプション。これにより、Amazon SNS トピックにメッセージが公開されると、トピックのサブスクライバーに通知されます。

### Amazon SQS キュー
<a name="amazon-sqs-queue"></a>

Amazon SQS には、コンピュータ間で送受信されるメッセージを格納するための、信頼性の高いスケーラブルなホストされたキューが用意されています。Amazon SQS を使用すると、どのような量のデータでも転送することができ、他のサービスが常に利用可能である必要もありません。Amazon SQS コンソールを使用すると、通知の送信先にする Amazon SQS キューを作成できます。

Amazon SQS キューは、Amazon S3 バケットと同じ AWS リージョン に存在する必要があります。Amazon SQS キューの作成方法の説明は、**「Amazon Simple Queue Service デベロッパーガイド」の「[Amazon Simple Queue Service とは](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)」および「[Amazon SQS の開始方法](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html)」を参照してください。

イベント通知の送信先として Amazon SQS キューを使用するには、以下が必要です。
+ Amazon SQS キューの Amazon リソースネーム (ARN)

**注記**  
Amazon Simple キューサービス FIFO (先入れ先出し) キューは、Amazon S3 イベント通知の送信先としてサポートされていません。Amazon S3 イベントの通知を Amazon SQS FIFO キューに送信するには、Amazon EventBridge を使用できます。詳細については、「[Amazon EventBridge を有効にします](enable-event-notifications-eventbridge.md)」を参照してください。

### Lambda 関数
<a name="lambda-function"></a>

AWS Lambda を使用して、AWS の他のサービスをカスタムロジックで拡張したり、AWS のスケール、パフォーマンス、セキュリティで動作する独自のバックエンドを作成したりすることができます。Lambda を使用すると、必要な場合にのみ実行される離散イベント駆動型アプリケーションを作成できます。また、これを使用して、これらのアプリケーションを 1 日数回のリクエストから 1 秒あたり数千回のリクエストに自動的にスケーリングすることもできます。

Lambda は、Amazon S3 バケットイベントに応答してカスタムコードを実行できます。カスタムコードを Lambda にアップロードし、Lambda 関数と呼ばれるものを作成します。Amazon S3 は特定のタイプのイベントを検出すると、そのイベントを AWS Lambda に公開し、Lambda で関数を呼び出すことができます。それに応じて、Lambda が関数を実行します。例えば、検出される可能性のあるイベントタイプの 1 つは、オブジェクトで作成されたイベントです。

AWS Lambda コンソールを使用すると、AWS インフラストラクチャを使用してユーザーに代わってコードを実行する Lambda 関数を作成できます。Lambda 関数は S3 バケットと同じリージョンに存在する必要があります。Lambda 関数をイベント通知の送信先として設定するには、Lambda 関数の名前または ARN も必要になります。

**警告**  
通知が通知をトリガーするのと同じバケットに書き込むと、実行ループが発生する可能性があります。例えば、オブジェクトがアップロードされるたびにバケットで Lambda 関数をトリガーし、その関数によってオブジェクトがバケットにアップロードされると、その関数によって間接的にその関数自体がトリガーされます。これを回避するには、2 つのバケットを使用するか、受信オブジェクトで使用されるプレフィックスにのみ適用されるようにトリガーを設定します。  
AWS Lambda で Amazon S3 通知を使用する方法の詳細と例については、**「AWS Lambda デベロッパーガイド」の「[AWS Lambda を Amazon S3 に使用する](https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html)」を参照してください。

### Amazon EventBridge
<a name="eventbridge-dest"></a>

Amazon EventBridge はサーバーレスのイベントバスで、AWS サービスからのイベントを受信します。イベントに一致するルールを設定し、それらを AWS サービスや HTTP エンドポイントなどのターゲットに配信できます。詳細については、**「Amazon EventBridge ユーザーガイド」の「[Amazon EventBridge とは](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)」を参照してください。

他の宛先とは異なり、バケットの EventBridge へのイベントの配信を有効または無効にすることができます。配信を有効にすると、すべてのイベントが EventBridge に送信されます。さらに、EventBridge ルールを使用して、イベントを追加のターゲットに送信することもできます。

## SQS、SNS、および Lambda でサポートされているイベントタイプ
<a name="supported-notification-event-types"></a>

Amazon S3 は、次のタイプのイベントを発行できます。通知設定で、これらのイベントタイプを指定します。


|  イベントタイプ |  説明  | 
| --- | --- | 
|  `s3:TestEvent`  |  通知が有効な場合、Amazon S3 はテスト通知を公開します これは、トピックが存在し、バケット所有者が指定されたトピックを公開する許可があることを保証するためです。 通知の有効化に失敗した場合、テスト通知を受信しません。  | 
|  `s3:ObjectCreated:*` `s3:ObjectCreated:Put` `s3:ObjectCreated:Post` `s3:ObjectCreated:Copy` `s3:ObjectCreated:CompleteMultipartUpload`  |  `PUT`、`POST`、`COPY` などの Amazon S3 API オペレーションはオブジェクトを作成できます。これらのイベントタイプで、特定の API を使用してオブジェクトが作成されたときに通知を有効にできます。または、オブジェクトの作成に使用された API に関係なく、`s3:ObjectCreated:*` イベントタイプを使用して通知を要求できます。 `s3:ObjectCreated:CompleteMultipartUpload` には、コピーオペレーションの [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) を使用して作成されたオブジェクトが含まれます。  | 
|  `s3:ObjectRemoved:*` `s3:ObjectRemoved:Delete` `s3:ObjectRemoved:DeleteMarkerCreated`  |  `ObjectRemoved` イベントタイプを使用することで、オブジェクトまたはオブジェクトのバッチがバケットから削除されたときに通知を有効にできます。 `s3:ObjectRemoved:Delete` イベントタイプを使用することで、オブジェクトが削除されたとき、またはバージョニングが有効なオブジェクトが完全に削除されたときに通知が送信されるようにリクエストできます。その代わりに、`s3:ObjectRemoved:DeleteMarkerCreated` を使用することで、削除マーカーがバージョニング・オブジェクトを作成すると、通知が送信されるようにリクエストできます。バージョン管理されたオブジェクトを削除する方法については、[バージョニングが有効なバケットからのオブジェクトバージョンの削除](DeletingObjectVersions.md) を参照してください。ワイルドカードとして `s3:ObjectRemoved:*` を使用することで、オブジェクトが削除されるたびに通知が送信されるようにリクエストできます。 これらのイベント通知では、ライフサイクル設定や失敗したオペレーションから自動削除のアラートはありません。  | 
|  `s3:ObjectRestore:*` `s3:ObjectRestore:Post` `s3:ObjectRestore:Completed` `s3:ObjectRestore:Delete`  |  `ObjectRestore` イベントタイプを使用することで、S3 Glacier Flexible Retrieval ストレージクラス、S3 Glacier Deep Archive ストレージクラス、S3 Intelligent-Tiering アーカイブアクセス階層、および S3 Intelligent-Tiering Deep アーカイブアクセス階層からオブジェクトを復元するときに、開始および完了の通知を受け取ることができます。オブジェクトの復元されたコピーの有効期限が切れたときの通知を受け取ることもできます。 `s3:ObjectRestore:Post` イベントタイプは、オブジェクトの復元開始を通知します。`s3:ObjectRestore:Completed` イベントタイプは、復元完了を通知します。`s3:ObjectRestore:Delete` イベントタイプは、復元されたオブジェクトの一時コピーの有効期限が切れると通知します。  | 
| s3:ReducedRedundancyLostObject | この通知イベントは、Amazon S3 が RRS ストレージクラスのオブジェクトが失われたことを検出したときに受け取ります。 | 
|  `s3:Replication:*` `s3:Replication:OperationFailedReplication` `s3:Replication:OperationMissedThreshold` `s3:Replication:OperationReplicatedAfterThreshold` `s3:Replication:OperationNotTracked`  |  `Replication` イベントタイプを使用すると、S3 レプリケーションメトリクスまたは S3 Replication Time Control (S3 RTC) が有効になっているレプリケーション構成の通知を受信できます。保留中のバイト数、保留中のオペレーション、およびレプリケーションのレイテンシーを追跡すると、レプリケーションイベントの進行状況を 1 分単位でモニタリングできます。レプリケーションメトリクスについては、「[メトリクス、イベント通知、ステータスによるレプリケーションのモニタリング](replication-metrics.md)」をご参照ください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinations.html)  | 
|  `s3:LifecycleExpiration:*` `s3:LifecycleExpiration:Delete` `s3:LifecycleExpiration:DeleteMarkerCreated`  |  `LifecycleExpiration` イベントタイプを使用すると、Amazon S3 が S3 ライフサイクル設定に基づいてオブジェクトを削除したときに通知を受け取ることができます。 `s3:LifecycleExpiration:Delete` イベントタイプは、バージョン管理されていないバケット内のオブジェクトが削除されたときに通知します。また、S3 ライフサイクル設定によってオブジェクトバージョンが完全に削除された場合にも通知されます。`s3:LifecycleExpiration:DeleteMarkerCreated` イベントタイプは、バージョン対応バケット内のオブジェクトの現在のバージョンが削除されたときに S3 ライフサイクル が削除マーカーを作成したときに通知します。  | 
| s3:LifecycleTransition | この通知イベントは、S3 ライフサイクル設定によってオブジェクトが別の Amazon S3 ストレージクラスに移行されたときに受信されます。 | 
| s3:IntelligentTiering | この通知イベントは、S3 Intelligent−Tiering ストレージクラス内のオブジェクトがアーカイブアクセス層またはディープアーカイブアクセス層に移動したときに受信されます。 | 
|  `s3:ObjectTagging:*` `s3:ObjectTagging:Put` `s3:ObjectTagging:Delete`  |  `ObjectTagging` イベントタイプを使用すると、オブジェクトタグがオブジェクトに追加またはオブジェクトから削除されたときに通知を有効にできます。 `s3:ObjectTagging:Put` イベントタイプは、タグがオブジェクトの PUT であるか、既存のタグが更新されたときに通知します。`s3:ObjectTagging:Delete` イベントタイプは、タグがオブジェクトから削除されたときに通知します。 | 
| s3:ObjectAcl:Put | この通知イベントは、ACL がオブジェクトに PUT されたとき、または既存の ACL が変更されたときに受け取ります。リクエストによってオブジェクトの ACL が変更されない場合、イベントは生成されません。 | 

## Amazon EventBridge でサポートされているイベントタイプ。
<a name="supported-notification-event-types-eventbridge"></a>

Amazon S3 から Amazon EventBridge に送信するイベントタイプのリストについては、「[EventBridge の使用](EventBridge.md)」を参照してください。

## イベントの順序付けと重複イベント
<a name="event-ordering-and-duplicate-events"></a>

Amazon S3 イベント通知は、通知を少なくとも 1 回配信するように設計されていますが、イベントが発生したのと同じ順序で通知が受信されるとは限りません。まれに、Amazon S3 の再試行メカニズムによって、同じオブジェクトイベントに対して重複する S3 イベント通知が発生することがあります。重複イベントまたは順序が異なるイベント処理の詳細については、「**AWS Storage Blog」の「[Manage event ordering and duplicate events with Amazon S3 Event Notifications](https://aws.amazon.com/blogs/storage/manage-event-ordering-and-duplicate-events-with-amazon-s3-event-notifications/)」を参照してください。

# Amazon SQS、Amazon SNS、Lambda を使用します
<a name="how-to-enable-disable-notification-intro"></a>

通知の有効化は、バケットレベルのオペレーションです。バケットに関連付けられた *通知* サブリソースに通知設定情報が格納されます。通常、バケット通知設定を作成または変更してから、変更が有効になるまで通常 5 分かかります。通知が最初に有効になったとき、`s3:TestEvent` が発生します。次のいずれかの方法を使用して通知設定の管理を行います。
+ **Amazon S3 コンソールの使用** − コンソール UI では、コードを記述しなくても、バケットの通知設定を指定できます。詳細については、[Amazon S3 コンソールを使用したイベント通知の有効化と設定](enable-event-notifications.md) を参照してください。
+ ** AWS SDK をプログラムで使用する** − 内部的には、コンソールも SDK も Amazon S3 REST API を呼び出して、バケットに関連付けられた*通知*サブリソースを管理します。AWS SDK を使用した通知設定の例については、[チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md) を参照してください。
**注記**  
コードから直接 Amazon S3 REST API を呼び出すこともできます。しかし、そうするのはリクエストを認証するためのコードを作成する必要があるため面倒な場合もあります。

使用する方法を問わず、Amazon S3 は通知設定を XML として、バケットに関連付けられた *通知* サブリソースに保存します。バケットのサブリソースの詳細については、[汎用バケットの設定オプション](UsingBucket.md#bucket-config-options-intro) を参照してください。

**注記**  
削除された送信先が原因で複数の失敗したイベント通知を受け取った場合、削除しようとすると **[以下の送信先設定を検証できません]** と表示される場合があります。これは、S3 コンソールで失敗した通知をすべて同時に削除することで解決できます。

**Topics**
+ [宛先にイベント通知メッセージを発行するアクセス許可の付与](grant-destinations-permissions-to-s3.md)
+ [Amazon S3 コンソールを使用したイベント通知の有効化と設定](enable-event-notifications.md)
+ [プログラムによるイベント通知の設定](#event-notification-configuration)
+ [チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md)
+ [オブジェクトキー名のフィルタリングを使用したイベント通知の設定](notification-how-to-filtering.md)
+ [イベントメッセージの構造](notification-content-structure.md)

# 宛先にイベント通知メッセージを発行するアクセス許可の付与
<a name="grant-destinations-permissions-to-s3"></a>

Amazon S3 プリンシパルに、SNS トピック、SQS キュー、Lambda 関数へメッセージを公開する関連する API を呼び出すため必要なアクセス許可を付与する必要があります。これは、Amazon S3 がイベント通知メッセージを宛先に公開できるようにするためです。

イベント通知メッセージを送信先に公開する場合のトラブルシューティングについては、[「Amazon S3 イベント通知を Amazon Simple Notification Service に公開するためのトラブルシューティング](https://repost.aws/knowledge-center/sns-not-receiving-s3-event-notifications)」トピックを参照してください。

**Topics**
+ [AWS Lambda 関数を呼び出すアクセス許可の付与](#grant-lambda-invoke-permission-to-s3)
+ [SNS トピックまたは SQS キューにメッセージを発行するアクセス許可の付与](#grant-sns-sqs-permission-for-s3)

## AWS Lambda 関数を呼び出すアクセス許可の付与
<a name="grant-lambda-invoke-permission-to-s3"></a>

Amazon S3 は Lambda 関数を呼び出してイベントメッセージを AWS Lambda に発行し、イベントメッセージを引数として指定します。

Amazon S3 コンソールを使用して Lambda 関数の AmazonS3 バケットにイベント通知を設定すると、コンソールは Lambda 関数に必要なアクセス許可を設定します。これは、Amazon S3 がバケットから関数を呼び出す許可があるからです。詳細については、[Amazon S3 コンソールを使用したイベント通知の有効化と設定](enable-event-notifications.md) を参照してください。

AWS Lambda から Amazon S3 の許可を付与して、Lambda 関数を呼び出すこともできます。詳細については、*AWS Lambda デベロッパーガイド*の[チュートリアル: Amazon S3 で AWS Lambda を使用する](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html)を参照してください。

## SNS トピックまたは SQS キューにメッセージを発行するアクセス許可の付与
<a name="grant-sns-sqs-permission-for-s3"></a>

SNS トピックや SQS キューにメッセージを発行する許可を Amazon S3 に付与するには、AWS Identity and Access Management (IAM) ポリシーを宛先 SNS トピックや SQS キューにアタッチします。

SNS トピックや SQS キューにポリシーをアタッチする方法の例については、[チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md) を参照してください。アクセス許可の詳細については、次のトピックを参照してください。
+ 「[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/AccessPolicyLanguage_UseCases_Sns.html)」の「*Amazon SNS アクセスコントロールのケース例*」
+ **「Amazon Simple Queue サービスデベロッパーガイド」の「[Amazon SQS での Identity and Access Management](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/UsingIAM.html)」

### 発行先 SNS トピックの IAM ポリシー
<a name="sns-topic-policy"></a>

以下は、発行先 SNS トピックにアタッチする AWS Identity and Access Management (IAM) ポリシーの例です。このポリシーを使用してイベント通知の宛先 Amazon SNS トピックを設定する方法については、[チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md) を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-ID",
    "Statement": [
        {
            "Sid": "Example SNS topic policy",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": [
                "SNS:Publish"
            ],
            "Resource": "arn:aws:sns:us-east-1:111122223333:example-sns-topic",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "bucket-owner-123456789012"
                }
            }
        }
    ]
}
```

------

### 発行先 SQS キューの IAM ポリシー
<a name="sqs-queue-policy"></a>

以下は、発行先 SQS キューにアタッチする IAM ポリシーの例です。このポリシーを使用してイベント通知の宛先 Amazon SQS キューを設定する方法については、[チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md) を参照してください。

このポリシーを使用するには、Amazon SQS キューの ARN、バケット名、およびバケット所有者の AWS アカウント ID を更新する必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-ID",
    "Statement": [
        {
            "Sid": "example-statement-ID",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": [
                "SQS:SendMessage"
            ],
            "Resource": "arn:aws:sqs:us-east-1:111122223333:queue-name",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "bucket-owner-123456789012"
                }
            }
        }
    ]
}
```

------

Amazon SNS および Amazon SQS IAM ポリシーの両方について、`StringLike` 条件の代わりにポリシーで `ArnLike` 条件を指定できます。

`ArnLike` を使用する場合、ARN のパーティション、サービス、アカウント ID、リソースタイプ、および部分的なリソース ID 部分が、リクエストコンテキストの ARN と完全に一致する必要があります。部分一致が許可されるのは、リージョンとリソースパスのみです。

 `ArnLike` の代わりに `StringLike` を使用すると、マッチングでは ARN 構造が無視され、ワイルドカード文字で置換される部分に関係なく部分一致が可能になります。詳細については、「*IAM ユーザーガイド*」の「[IAM JSON のポリシー要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)」を参照してください。

```
"Condition": {         
  "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:amzn-s3-demo-bucket" }
  }
```

### AWS KMS キーポリシー
<a name="key-policy-sns-sqs"></a>

SQS キューまたは SNS トピックが AWS Key Management Service (AWS KMS) カスタマーマネージドキーで暗号化されている場合は、暗号化されたトピックまたはキューを操作するための許可を Amazon S3 サービスプリンシパルに付与する必要があります。Amazon S3 サービスプリンシパルに許可を付与するには、カスタマーマネージドキーのキーポリシーに次のステートメントを追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-ID",
    "Statement": [
        {
            "Sid": "example-statement-ID",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

AWS KMS キーポリシーの詳細については、*AWS Key Management Service デベロッパーガイド*の [AWS KMS でキーポリシーを使用する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)を参照してください。

Amazon SQS および Amazon SNS 用の AWS KMS でのサーバー側の暗号化の使用の詳細については、以下を参照してください。
+ 「**Amazon Simple Notification Service デベロッパーガイド」の「[キー管理](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html)」。
+ **「Amazon Simple Queue Service デベロッパーガイド」の「[キー管理](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)」。
+ [AWS KMS コンピューティングブログ](https://aws.amazon.com/blogs/compute/encrypting-messages-published-to-amazon-sns-with-aws-kms/) の *Encrypting messages published to Amazon SNS with AWS*。

# Amazon S3 コンソールを使用したイベント通知の有効化と設定
<a name="enable-event-notifications"></a>

イベントが発生するたびに送信先へ通知メッセージを送信する特定の Amazon S3 汎用バケットイベントを有効にできます。このセクションでは、Amazon S3 コンソールを使用してイベント通知を有効にする方法について説明します。AWS SDK および Amazon S3 REST API でイベント通知を使用する方法については、[プログラムによるイベント通知の設定](how-to-enable-disable-notification-intro.md#event-notification-configuration) を参照してください。

**前提条件**: バケットのイベント通知を有効にするには、送信先タイプのいずれか 1 つを設定し、アクセス許可を設定する必要があります。詳細については、[サポートされているイベントの送信先](notification-how-to-event-types-and-destinations.md#supported-notification-destinations) および [宛先にイベント通知メッセージを発行するアクセス許可の付与](grant-destinations-permissions-to-s3.md) を参照してください。

**注記**  
Amazon Simple キューサービス FIFO (先入れ先出し) キューは、Amazon S3 イベント通知の送信先としてサポートされていません。Amazon S3 イベントの通知を Amazon SQS FIFO キューに送信するには、Amazon EventBridge を使用できます。詳細については、「[Amazon EventBridge を有効にします](enable-event-notifications-eventbridge.md)」を参照してください。

**Topics**
+ [Amazon S3 コンソールを使用して Amazon SNS、Amazon SQS、または Lambda 通知を有効にします。](#enable-event-notifications-sns-sqs-lam)

## Amazon S3 コンソールを使用して Amazon SNS、Amazon SQS、または Lambda 通知を有効にします。
<a name="enable-event-notifications-sns-sqs-lam"></a>

**S3 バケットのイベント通知を有効化および設定するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、イベントを有効にするバケットの名前を選択します。

1. [**プロパティ**] を選択します。

1. [**Event Notifications (イベント通知)**] セクションに移動し、[**Create event notification (イベント通知の作成)**] を選択します。

1. [**General configuration (全般設定)**] セクションで、イベント通知にわかりやすいイベント名を指定します。オプションで、プレフィックスとサフィックスを指定して、指定した文字で終わるキーを持つオブジェクトのみに通知を制限することもできます。

   1. [**Event name (イベント名)**] の説明を入力します。

      名前を入力しない場合は、グローバル一意識別子 (GUID) が生成され、名前に使用されます。

   1. (オプション) プレフィックスでイベント通知をフィルタリングするには、**プレフィックス**を入力します。

      例えば、特定のフォルダ (`images/` など) にファイルが追加されたときにのみ通知を受信するようにプレフィックスフィルタを設定できます。

   1. (オプション) サフィックスでイベント通知をフィルタリングするには、**サフィックス**を入力します。

      詳細については、[オブジェクトキー名のフィルタリングを使用したイベント通知の設定](notification-how-to-filtering.md) を参照してください。

1. **イベントタイプ**セクションで、通知を受信する 1 つ以上のイベントタイプを選択します。

   異なるイベントタイプのリスト化については、[SQS、SNS、および Lambda でサポートされているイベントタイプ](notification-how-to-event-types-and-destinations.md#supported-notification-event-types) を参照してください。

1. [**Destination (ターゲット)**] セクションで、イベント通知の送信先を選択します。
**注記**  
イベント通知を公開する前に、Amazon S3 プリンシパルが関連 API を呼び出すために必要なアクセス許可を付与する必要があります。これは、Lambda 関数、SNS トピック、または SQS キューに通知を発行できるようにするためです。

   1. ターゲットタイプ ([**Lambda Function (Lambda 関数)**]、[**SNS Topic (SNS トピック)**]、または [**SQS Queue (SQS キュー)**]) を選択します。

   1. ターゲットタイプを選択したら、リストから関数、トピック、またはキューを選択します。

   1. または、Amazon リソースネーム (ARN) を指定する場合は、[**Enter ARN (ARN を入力)**] を選択して ARN を入力します。

   詳細については、[サポートされているイベントの送信先](notification-how-to-event-types-and-destinations.md#supported-notification-destinations) を参照してください。

1. [**Save Changes (変更の保存)**] を選択すると、Amazon S3 がテストメッセージをイベント通知の送信先に送信します。

## プログラムによるイベント通知の設定
<a name="event-notification-configuration"></a>

デフォルトで、通知はどのタイプのイベントにも有効ではありません。したがって、*通知*サブリソースに最初は空の設定で格納されています。

```
<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
</NotificationConfiguration>
```

特定のタイプのイベントに対して通知を有効にするには、XML を、Amazon S3 がパブリッシュするイベントのタイプとパブリッシュ先を識別する適切な設定に置き換えます。各宛先には、対応する XML 設定を追加します。

**イベントメッセージを SQS キューに発行するには**  
1 つ以上のイベントタイプの通知の送信先として SQS キューを設定するには、`QueueConfiguration` を追加します。

```
<NotificationConfiguration>
  <QueueConfiguration>
    <Id>optional-id-string</Id>
    <Queue>sqs-queue-arn</Queue>
    <Event>event-type</Event>
    <Event>event-type</Event>
     ...
  </QueueConfiguration>
   ...
</NotificationConfiguration>
```

**イベントメッセージを SNS トピックに発行するには**  
特定のイベントタイプの通知の送信先として SNS トピックを設定するには、`TopicConfiguration` を追加します。

```
<NotificationConfiguration>
  <TopicConfiguration>
     <Id>optional-id-string</Id>
     <Topic>sns-topic-arn</Topic>
     <Event>event-type</Event>
     <Event>event-type</Event>
      ...
  </TopicConfiguration>
   ...
</NotificationConfiguration>
```

**AWS Lambda 関数を呼び出し、イベントメッセージを引数として指定するには**  
特定のイベントタイプの通知の送信先として Lambda 関数を設定するには、`CloudFunctionConfiguration` を追加します。

```
<NotificationConfiguration>
  <CloudFunctionConfiguration>   
     <Id>optional-id-string</Id>   
     <CloudFunction>cloud-function-arn</CloudFunction>        
     <Event>event-type</Event>      
     <Event>event-type</Event>      
      ...  
  </CloudFunctionConfiguration>
   ...
</NotificationConfiguration>
```

**バケットで設定されているすべての通知を削除するには**  
バケットに設定されたすべての通知を削除するには、*notification* サブリソースに空の `<NotificationConfiguration/>` エレメントを保存します。

Amazon S3 は、特定のタイプのイベントを検出すると、そのイベント情報を含むメッセージを発行します。詳細については、[イベントメッセージの構造](notification-content-structure.md) を参照してください。

イベント通知の設定の詳細については、次のトピックを参照してください。
+ [チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する](ways-to-add-notification-config-to-bucket.md).
+ [オブジェクトキー名のフィルタリングを使用したイベント通知の設定](notification-how-to-filtering.md)

# チュートリアル: 通知 (SNS トピックまたは SQS キュー) のバケットを設定する
<a name="ways-to-add-notification-config-to-bucket"></a>

Amazon S3 通知は、Amazon Simple Notification Service (Amazon SNS) または Amazon Simple Queue Service (Amazon SQS) を使用して受信できます。このチュートリアルでは、Amazon SNS トピックと Amazon SQS キューを使用して、バケットに通知設定を追加します。

**注記**  
Amazon Simple キューサービス FIFO (先入れ先出し) キューは、Amazon S3 イベント通知の送信先としてサポートされていません。Amazon S3 イベントの通知を Amazon SQS FIFO キューに送信するには、Amazon EventBridge を使用できます。詳細については、「[Amazon EventBridge を有効にします](enable-event-notifications-eventbridge.md)」を参照してください。

**Topics**
+ [チュートリアルの概要](#notification-walkthrough-summary)
+ [ステップ 1: Amazon SQS キューを作成する](#step1-create-sqs-queue-for-notification)
+ [ステップ 2: Amazon SNS トピックを作成する](#step1-create-sns-topic-for-notification)
+ [ステップ 3: 通知設定をバケットに追加する](#step2-enable-notification)
+ [ステップ 4: セットアップをテストする](#notification-walkthrough-1-test)

## チュートリアルの概要
<a name="notification-walkthrough-summary"></a>

このチュートリアルは、以下を行う際に役立ちます。
+ `s3:ObjectCreated:*` タイプのイベントを Amazon SQS キューに発行する。
+ `s3:ReducedRedundancyLostObject` タイプのイベントを Amazon SNS トピックに発行する。

通知設定の情報については、[Amazon SQS、Amazon SNS、Lambda を使用します](how-to-enable-disable-notification-intro.md) を参照してください。

コンソールを使用して、コードを記述することなく、これらの手順をすべて実行できます。また、通知設定をプログラムで追加できるように、AWS SDK for Java および .NET を使用したコード例も用意されています。

この手順には、以下のステップが含まれます。

1. Amazon SQS キュー を作成する。

   Amazon SQS コンソールを使用して、SQS キューを作成します。Amazon S3 がそのキューにプログラムで送信するどのメッセージにもアクセスできます。ただし、このチュートリアルでは、コンソールで通知メッセージを確認します。

   キューにアクセスポリシーをアタッチして、メッセージを発行するための Amazon S3 アクセス許可を付与します。

1. Amazon SNS トピックを作成する。

   Amazon SNS コンソールを使用して、SNS トピックを作成し、トピックにサブスクライブします。これにより、そこに投稿されたすべてのイベントが配信されます。通信プロトコルとして E メールを指定します。トピックを作成すると、Amazon SNS から E メールが送信されます。E メール内のリンクを使用して、トピックのサブスクリプションを確認します。

   トピックにアクセスポリシーをアタッチして、メッセージを発行するための Amazon S3 アクセス許可を付与します。

1. 通知設定をバケットに追加します。

## ステップ 1: Amazon SQS キューを作成する
<a name="step1-create-sqs-queue-for-notification"></a>

次の手順に従い、Amazon Simple Queue Service (Amazon SQS) キューを作成し、このキューにサブスクライブします。

1. Amazon SQS コンソールを使用して、キューを作成します。手順については、「[Amazon Simple Queue Service デベロッパーガイド](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html)」の「*Getting Started with Amazon SQS*」を参照してください。

1. キューに添付したアクセスポリシーを次のポリシーに置き換えます。

   1. Amazon SQS コンソールの [**Queues**] (キュー) リストで、キューの名前を選択します。

   1. [**Access policy**] (アクセスポリシー) タブで [**Edit**] (編集) をクリックします。

   1. キューに添付されているアクセスポリシーを置き換えます。その中で、Amazon SQS ARN、ソースバケット名、バケット所有者アカウント ID を提供します。

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Id": "example-ID",
          "Statement": [
              {
                  "Sid": "example-statement-ID",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "s3.amazonaws.com"
                  },
                  "Action": [
                      "SQS:SendMessage"
                  ],
                  "Resource": "arn:aws:sqs:us-west-2:111122223333:s3-notification-queue",
                  "Condition": {
                      "ArnLike": {
                          "aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1"
                      },
                      "StringEquals": {
                          "aws:SourceAccount": "bucket-owner-123456789012"
                      }
                  }
              }
          ]
      }
      ```

------

   1. **[保存]** を選択します。

1. (オプション) Amazon SQS キューまたは Amazon SNS トピックで、AWS Key Management Service (AWS KMS) によるサーバー側の暗号化が有効になっている場合は、次のポリシーを関連する対称暗号化カスタマーマネージドキーに追加します。

   Amazon SQS または Amazon SNS 用の AWS マネージドキーは変更できないため、カスタマーマネージドキーにポリシーを追加する必要があります。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "example-ID",
       "Statement": [
           {
               "Sid": "example-statement-ID",
               "Effect": "Allow",
               "Principal": {
                   "Service": "s3.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   AWS KMS で Amazon SQS および Amazon SNS で SSE を使用する方法の詳細については、以下を参照してください。
   + 「[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html)」の「*Key management*」。
   + 「[Amazon Simple Queue Service デベロッパーガイド](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html)」の「*Key management*」。

1. キューの ARN を書き留めます。

   作成した SQS キューは、AWS アカウント 内の別のリソースです。固有の Amazon リソースネーム (ARN) があります。この ARN は次のステップで必要になります。ARN の形式は次のとおりです。

   ```
   arn:aws:sqs:aws-region:account-id:queue-name
   ```

## ステップ 2: Amazon SNS トピックを作成する
<a name="step1-create-sns-topic-for-notification"></a>

手順に従って、Amazon SNS トピックを作成してサブスクライブします。

1. Amazon SNS コンソールを使用してトピックを作成します。詳細については、「[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)」の「*Creating an Amazon SNS topic*」を参照してください。

1. トピックを受信します。この演習では、通信プロトコルとしてメールを使用します。手順については、[Amazon Simple Notification Service デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)の *Amazon SNS トピックへのサブスクライブ*を参照してください。

   トピックのサブスクリプションの確認を求めるメールがお客様宛てに送信されます。サブスクリプションを確認します。

1. トピックにアタッチされたアクセスポリシーを次のポリシーに置き換えます。その中で、SNS トピックの ARN、バケット名、バケット所有者のアカウント ID を提供します。

1. トピックの ARN を書き留めておきます。

   作成した SNS トピックは、AWS アカウント内の別のリソースであり、一意の ARN があります。この ARN は次のステップで必要になります。ARN は次のような形式になります。

   ```
   arn:aws:sns:aws-region:account-id:topic-name
   ```

## ステップ 3: 通知設定をバケットに追加する
<a name="step2-enable-notification"></a>

Amazon S3 コンソールを使用するか、プログラムで AWS SDK を使用して、バケットの通知を有効にすることができます。バケットでの通知を設定するオプションのいずれかを選択します。このセクションでは、AWS SDK for Java および .NET を使用するコード例を示します。

### オプション A: コンソールを使用してバケットの通知を有効にする
<a name="step2-enable-notification-using-console"></a>

Amazon S3 コンソールを使用して、Amazon S3 に次のアクションをリクエストする通知設定を追加します。
+ [**All object create events (すべてのオブジェクト作成イベント)**] タイプのイベントを Amazon SQS キューに発行する。
+ [**Object in RRS lost (RRS オブジェクトの紛失)**] タイプのイベントを Amazon SNS トピックに発行する。

通知設定を保存すると、Amazon S3 からテストメッセージが発行され、このメッセージが E メールで送信されます。

手順については、[Amazon S3 コンソールを使用したイベント通知の有効化と設定](enable-event-notifications.md) を参照してください。

### オプション B: AWS SDK を使用してバケットの通知を有効にする
<a name="step2-enable-notification-using-awssdk-dotnet"></a>

------
#### [ .NET ]

次の C\$1 のコード例では、バケットに通知設定を追加する完全なコードのリストを示します。コードを更新して、バケット名と SNS トピックの ARN を提供する必要があります。コード例を設定および実行する方法の詳細については、「*AWS SDK for .NET デベロッパーガイド*」の「[AWS SDK for .NET の開始方法](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html)」 を参照してください。

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class EnableNotificationsTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string snsTopic = "*** SNS topic ARN ***";
        private const string sqsQueue = "*** SQS topic ARN ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            EnableNotificationAsync().Wait();
        }

        static async Task EnableNotificationAsync()
        {
            try
            {
               PutBucketNotificationRequest request = new PutBucketNotificationRequest
                {
                    BucketName = bucketName
                };

                TopicConfiguration c = new TopicConfiguration
                {
                    Events = new List<EventType> { EventType.ObjectCreatedCopy },
                    Topic = snsTopic
                };
                request.TopicConfigurations = new List<TopicConfiguration>();
                request.TopicConfigurations.Add(c);
                request.QueueConfigurations = new List<QueueConfiguration>();
                request.QueueConfigurations.Add(new QueueConfiguration()
                {
                    Events = new List<EventType> { EventType.ObjectCreatedPut },
                    Queue = sqsQueue
                });
                
                PutBucketNotificationResponse response = await client.PutBucketNotificationAsync(request);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' ", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown error encountered on server. Message:'{0}' ", e.Message);
            }
        }
    }
}
```

------
#### [ Java ]

AWS SDK for Java を使用してバケット通知を設定する方法の例については、「*Amazon S3 API リファレンス*」の「[Process S3 event notifications](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ProcessS3EventNotification_section.html)」を参照してください。

------

## ステップ 4: セットアップをテストする
<a name="notification-walkthrough-1-test"></a>

さて、バケットにオブジェクトをアップロードしたり、Amazon SQS コンソールのイベント通知を検証することでセットアップをテストできます。手順については、*Amazon Simple Queue Service デベロッパーガイドの開始方法」セクション*の[メッセージの受信](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.htmlReceiveMessage.html)を参照してください。

# オブジェクトキー名のフィルタリングを使用したイベント通知の設定
<a name="notification-how-to-filtering"></a>

Amazon S3 イベント通知を設定する場合、Amazon S3 による通知の送信をトリガーするサポートターゲットの Amazon S3 イベントタイプを指定する必要があります。指定しなかったイベントタイプが S3 バケットで発生しても、Amazon S3 は通知を送信しません。

通知がオブジェクトのキー名のプレフィックスまたはサフィックスでフィルタリングされるように設定できます。例えば、ファイル名の拡張子が `.jpg` であるイメージファイルがバケットに追加されたときにのみ、通知が送信されるように設定できます。または、「`images/`」というプレフィックスの付いたオブジェクトがバケットに追加されたときに Amazon SNS トピックに通知が送信されるように設定し、同じバケット内にある「`logs/`」というプレフィックスの付いたオブジェクトの通知が AWS Lambda 関数に渡されるようにすることができます。

**注記**  
ワイルドカード文字 (「\$1」) は、フィルタでプレフィックスまたはサフィックスとして使用することはできません。プレフィックスまたはサフィックスにスペースが含まれている場合は、それを「\$1」文字に置き換える必要があります。プレフィックスまたはサフィックスの値に他の特殊文字を使用する場合は、[URL エンコード (パーセントエンコード) 形式](https://en.wikipedia.org/wiki/Percent-encoding)で入力する必要があります。イベント通知のプレフィックスまたはサフィックスに使用する場合で、URL エンコード形式に変換する必要がある特殊文字の一覧については、「[セーフ文字](object-keys.md#object-key-guidelines-safe-characters)」を参照してください。

Amazon S3 コンソールでオブジェクトキー名フィルタリングを使用する通知設定を設定できます。これを行うには、AWS SDK または REST API を介して、Amazon S3 API を直接使用します。コンソール UI を使用してバケットの通知設定をセットアップする方法については、[Amazon S3 コンソールを使用したイベント通知の有効化と設定](enable-event-notifications.md) を参照してください。

Amazon S3 は、「[Amazon SQS、Amazon SNS、Lambda を使用します](how-to-enable-disable-notification-intro.md)」で説明されているように、バケットに関連付けられている *notification* サブリソースに通知設定を XML 形式で保存します。`Filter` XML 構造を使用して、オブジェクトキー名のプレフィックスまたはサフィックスでフィルタして通知のルールを定義します。`Filter` XML 構造の詳細については、*Amazon Simple Storage Service API リファレンス*の [PUT Bucket 通知](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTnotification.html) を参照してください。

`Filter` を使用する通知設定では、プレフィックスの重複、サフィックスの重複、またはプレフィックスとサフィックスの重複があるフィルタリングルールを定義できません。以下のセクションでは、オブジェクトキー名フィルタリングを使用した有効な通知設定の例を示します。プレフィックス/サフィックスが重複しているために無効である通知設定の例も示します。

**Topics**
+ [オブジェクトキー名によるフィルタ処理を使用した有効な通知設定の例](#notification-how-to-filtering-example-valid)
+ [無効なプレフィックスやサフィックスの重複がある通知設定の例。](#notification-how-to-filtering-examples-invalid)

## オブジェクトキー名によるフィルタ処理を使用した有効な通知設定の例
<a name="notification-how-to-filtering-example-valid"></a>

次の通知設定には、Amazon SQS キューを識別するキュー設定が含まれており、これにより Amazon S3 は `s3:ObjectCreated:Put` タイプのイベントを発行できます。イベントは、`images/` のプレフィックスと `jpg` サフィックスの付いたオブジェクトがバケットに PUT されるたびに発行されます。

```
<NotificationConfiguration>
  <QueueConfiguration>
      <Id>1</Id>
      <Filter>
          <S3Key>
              <FilterRule>
                  <Name>prefix</Name>
                  <Value>images/</Value>
              </FilterRule>
              <FilterRule>
                  <Name>suffix</Name>
                  <Value>jpg</Value>
              </FilterRule>
          </S3Key>
     </Filter>
     <Queue>arn:aws:sqs:us-west-2:444455556666:s3notificationqueue</Queue>
     <Event>s3:ObjectCreated:Put</Event>
  </QueueConfiguration>
</NotificationConfiguration>
```

次の通知設定には、複数の重複していないプレフィックスがあります。この設定では、`images/` フォルダ内の PUT リクエストの通知を queue−A に送信し、`logs/` フォルダ内の PUT リクエストの通知を queue−B に送信するように定義しています。

```
<NotificationConfiguration>
  <QueueConfiguration>
     <Id>1</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>prefix</Name>
                    <Value>images/</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-A</Queue>
     <Event>s3:ObjectCreated:Put</Event>
  </QueueConfiguration>
  <QueueConfiguration>
     <Id>2</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>prefix</Name>
                    <Value>logs/</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-B</Queue>
     <Event>s3:ObjectCreated:Put</Event>
  </QueueConfiguration>
</NotificationConfiguration>
```

次の通知設定には、複数の重複していないサフィックスがあります。この設定では、バケットに新しく追加される `.jpg` イメージは Lambda の cloud−function−A によって処理され、新しく追加される `.png` イメージは cloud−function−B によって処理されるように定義されています。`.png` と `.jpg` は、末尾の 1 文字が同じであっても、重複していると見なされません。文字列が両方のサフィックスで終わる可能性がある場合には、2 つのサフィックスは、重複していると見なされます。文字列が `.png` と `.jpg` の両方で終わることはないので、この設定例の 2 つのサフィックスは重複していません。

```
<NotificationConfiguration>
  <CloudFunctionConfiguration>
     <Id>1</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>suffix</Name>
                    <Value>.jpg</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</CloudFunction>
     <Event>s3:ObjectCreated:Put</Event>
  </CloudFunctionConfiguration>
  <CloudFunctionConfiguration>
     <Id>2</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>suffix</Name>
                    <Value>.png</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</CloudFunction>
     <Event>s3:ObjectCreated:Put</Event>
  </CloudFunctionConfiguration>
</NotificationConfiguration>
```

`Filter` を使用する通知設定では、同じイベントタイプのプレフィックスが重複するフィルタリングルールを定義できません。重複しないサフィックスと一緒に使用される重複するプレフィックスがある場合にのみ、そうすることができます。次の設定例は、プレフィックスは重複しており、サフィックスは重複していないオブジェクトがどのように別々の場所に送られるかを示しています。

```
<NotificationConfiguration>
  <CloudFunctionConfiguration>
     <Id>1</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>prefix</Name>
                    <Value>images</Value>
                </FilterRule>
                <FilterRule>
                    <Name>suffix</Name>
                    <Value>.jpg</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</CloudFunction>
     <Event>s3:ObjectCreated:Put</Event>
  </CloudFunctionConfiguration>
  <CloudFunctionConfiguration>
     <Id>2</Id>
     <Filter>
            <S3Key>
                <FilterRule>
                    <Name>prefix</Name>
                    <Value>images</Value>
                </FilterRule>
                <FilterRule>
                    <Name>suffix</Name>
                    <Value>.png</Value>
                </FilterRule>
            </S3Key>
     </Filter>
     <CloudFunction>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</CloudFunction>
     <Event>s3:ObjectCreated:Put</Event>
  </CloudFunctionConfiguration>
</NotificationConfiguration>
```

## 無効なプレフィックスやサフィックスの重複がある通知設定の例。
<a name="notification-how-to-filtering-examples-invalid"></a>

ほとんどの場合、`Filter` を使用する通知構成では、同じイベントタイプのプレフィックス、サフィックス、またはプレフィックスとサフィックスの組み合わせが重複するフィルタのルールを定義できません。サフィックスが重複していなければ、プレフィックスが重複していても問題ありません。例については、[オブジェクトキー名のフィルタリングを使用したイベント通知の設定](#notification-how-to-filtering) を参照してください。

イベントタイプが異なれば、重複しているオブジェクトキー名フィルタを使用できます。例えば、`image/` イベントタイプにプレフィックス `ObjectCreated:Put` と `image/` イベントタイプにプレフィックス `ObjectRemoved:*` を使用する通知設定を作成できます。

Amazon S3 コンソールまたは API の使用時に、同じイベントタイプに対して名前が重複する無効なフィルタを使用する通知設定を保存しようとすると、エラーが発生します。このセクションでは、重複する名前のフィルタにより、無効である通知設定の例を示します。

既存の通知構成ルールには、他のプレフィックスとサフィックスとそれぞれ一致するデフォルトのプレフィックスとサフィックスがあると想定されます。次の通知設定は、重複するプレフィックスがあるために無効です。具体的には、ルートプレフィックスが他のプレフィックスと重複します。この例のように、プレフィックスではなくサフィックスを使用するのも true です。ルートサフィックスが他のサフィックスと重複します。

```
<NotificationConfiguration>
     <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-one</Topic>
         <Event>s3:ObjectCreated:*</Event>
    </TopicConfiguration>
    <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-two</Topic>
         <Event>s3:ObjectCreated:*</Event>
         <Filter>
             <S3Key>
                 <FilterRule>
                     <Name>prefix</Name>
                     <Value>images</Value>
                 </FilterRule>
            </S3Key>
        </Filter>
    </TopicConfiguration>             
</NotificationConfiguration>
```

次の通知設定は、重複するサフィックスがあるために無効です。文字列が両方のサフィックスで終わる可能性がある場合には、2 つのサフィックスは、重複していると見なされます。文字列は `jpg` と`pg` で終わることができます。したがって、サフィックスは重なり合います。プレフィックスについても同様です。文字列が両方のプレフィックスで始まる可能性があれば、2 つのプレフィックスは重複していると見なされます。

```
 <NotificationConfiguration>
     <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic>
         <Event>s3:ObjectCreated:*</Event>
         <Filter>
             <S3Key>
                 <FilterRule>
                     <Name>suffix</Name>
                     <Value>jpg</Value>
                 </FilterRule>
            </S3Key>
        </Filter>
    </TopicConfiguration>
    <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-two</Topic>
         <Event>s3:ObjectCreated:Put</Event>
         <Filter>
             <S3Key>
                 <FilterRule>
                     <Name>suffix</Name>
                     <Value>pg</Value>
                 </FilterRule>
            </S3Key>
        </Filter>
    </TopicConfiguration>
</NotificationConfiguration
```

次の通知設定は、重複するプレフィックスとサフィックスがあるために無効です。

```
<NotificationConfiguration>
     <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic>
         <Event>s3:ObjectCreated:*</Event>
         <Filter>
             <S3Key>
                 <FilterRule>
                     <Name>prefix</Name>
                     <Value>images</Value>
                 </FilterRule>
                 <FilterRule>
                     <Name>suffix</Name>
                     <Value>jpg</Value>
                 </FilterRule>
            </S3Key>
        </Filter>
    </TopicConfiguration>
    <TopicConfiguration>
         <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-two</Topic>
         <Event>s3:ObjectCreated:Put</Event>
         <Filter>
             <S3Key>
                 <FilterRule>
                     <Name>suffix</Name>
                     <Value>jpg</Value>
                 </FilterRule>
            </S3Key>
        </Filter>
    </TopicConfiguration>
</NotificationConfiguration>
```

# イベントメッセージの構造
<a name="notification-content-structure"></a>

Amazon S3 がイベントを発行するために送信する通知メッセージは JSON 形式です。

イベント通知の設定に関する一般的な概要と手順については、[Amazon S3 イベント通知](EventNotifications.md) を参照してください。

次の例は、イベント通知 JSON 構造体の*バージョン 2.1* を示します。Amazon S3 は、このイベント構造体の*バージョン 2.1 *、* 2.2 *、* 2.3 *を使用します。Amazon S3 は、クロスリージョンレプリケーションイベント通知にバージョン 2.2 を使用します。S3 ライフサイクル、S3 Intelligent−Tiering、オブジェクト ACL、オブジェクトのタグ付け、オブジェクトの復元削除イベントにバージョン 2.3 を使用します。これらのバージョンには、これらのオペレーションに固有の追加情報が含まれています。バージョン 2.2 および 2.3 は、バージョン 2.1 と互換性があり、Amazon S3 が現在すべてのイベント通知タイプで使用されています。

```
{  
   "Records":[  
      {  
         "eventVersion":"2.1",
         "eventSource":"aws:s3",
         "awsRegion":"us-west-2",
         "eventTime":"The time, in ISO-8601 format (for example, 1970-01-01T00:00:00.000Z) when Amazon S3 finished processing the request",
         "eventName":"The event type",
         "userIdentity":{  
            "principalId":"The unique ID of the IAM resource that caused the event"
         },
         "requestParameters":{  
            "sourceIPAddress":"The IP address where the request came from"
         },
         "responseElements":{  
            "x-amz-request-id":"The Amazon S3 generated request ID",
            "x-amz-id-2":"The Amazon S3 host that processed the request"
         },
         "s3":{  
            "s3SchemaVersion":"1.0",
            "configurationId":"The ID found in the bucket notification configuration",
            "bucket":{  
               "name":"The name of the bucket, for example, amzn-s3-demo-bucket",
               "ownerIdentity":{  
                  "principalId":"The Amazon retail customer ID of the bucket owner"
               },
               "arn":"The bucket Amazon Resource Name (ARN)"
            },
            "object":{  
               "key":"The object key name",
               "size":"The object size in bytes (as a number)",
               "eTag":"The object entity tag (ETag)",
               "versionId":"The object version if the bucket is versioning-enabled; null or not present if the bucket isn't versioning-enabled",
               "sequencer": "A string representation of a hexadecimal value used to determine event sequence; only used with PUT and DELETE requests"
            }
         },
         "glacierEventData": {
            "restoreEventData": {
               "lifecycleRestorationExpiryTime": "The time, in ISO-8601 format (for example, 1970-01-01T00:00:00.000Z), when the temporary copy of the restored object expires",
               "lifecycleRestoreStorageClass": "The source storage class for restored objects"
            }
         }
      }
   ]
}
```

イベントメッセージ構造について、以下の点に注意してください。
+ `eventVersion` 形式でメジャーおよびマイナーバージョンを含む `major` キーの値。`minor`

  Amazon S3 が、後方互換性のないイベント構造に変更を加えた場合、メジャーバージョンは増分されます。これには、すでに存在する JSON フィールドの削除や、フィールドのコンテンツの表現方法 (日付形式など) の変更が含まれます。

  Amazon S3 が、イベント構造に新しいフィールドを追加した場合、マイナーバージョンは増分されます。これは、既存のイベントの一部またはすべてに対して新しい情報が提供された場合に発生します。これは、新しく導入されたイベントタイプでのみ新しい情報が提供されている場合にも発生します。イベント構造の新しいマイナーバージョンとの互換性を維持するため、アプリケーションでは新しいフィールドを無視することをお勧めします。

  新しいイベントタイプが導入されても、イベントの構造が変更されていない場合、イベントのバージョンは変更されません。

  アプリケーションがイベント構造を正しく解析できるようにするため、メジャーバージョン番号が同等かどうかの比較を行うことをお勧めします。アプリケーションで想定されるフィールドが存在することを確認するため、マイナーバージョンが同等以上かを比較することをお勧めします。
+ `eventName` キー値は[イベント通知タイプ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinations.html)のリストを参照しますが、`s3:` プレフィックスが含まれていません。
+ `userIdentity` キー値は、イベントの原因となった AWS Identity and Access Management (IAM) リソース (ユーザー、ロール、グループなど) の一意の ID を参照します。各 IAM 識別プレフィクス (AIDA、AROA、AGPA など) の定義については、「*IAM ユーザーガイド*」の「[一意の識別子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html##identifiers-unique-ids)」を参照してください。
+ `responseElements` キー値は、AWS サポート のサポートによってリクエストを追跡する場合に役立ちます。`x-amz-request-id` と `x-amz-id-2` のどちらも、Amazon S3 が個々のリクエストを追跡するのに役立ちます。これらの値は、イベントを開始するリクエストへの応答として Amazon S3 が返す値と同じです。したがって、これらの値を使用してイベントをリクエストに一致させることができます。
+ `s3` キー値は、イベントに関与したバケットとオブジェクトに関する情報を提供します。オブジェクトのキー名の値は URL エンコードされます。例えば、`red flower.jpg` は `red+flower.jpg` になります。(Amazon S3 は、レスポンスのコンテンツタイプとして「`application/x-www-form-urlencoded`」を返します。)

  `ownerIdentity` キー値は、バケット所有者の Amazon 小売 (Amazon.com) 顧客 ID に対応します。この ID 値は使用されなくなり、下位互換性のためにのみ維持されます。
+ イベントのシーケンスを決定する方法の 1 つとして、`sequencer` キー値があります。イベントが発生した順序でイベント通知が届く保証はありません。ただし、オブジェクト (`PUT` リクエスト) を作成するイベントからの通知と削除オブジェクトは `sequencer` を含みます。この値を使用して、特定のオブジェクトキーのイベントの順序を決定できます。

  同じオブジェクトキーに対する 2 つのイベント通知の `sequencer` の文字列を比較すると、`sequencer` の 16 進値が大きいほうのイベント通知が後に発生したイベントであることがわかります。イベント通知を使用して Amazon S3 オブジェクトの別のデータベースまたはインデックスを維持している場合は、イベント通知を処理するたびに `sequencer` の値を比較し、保存することを推奨します。

  次の点に注意してください。
  + 複数のオブジェクトキーのイベントの順序を決定するために `sequencer` キー値を使用することはできません。
  + `sequencer` 文字列の長さは異なる場合があります。これらの値を比較するには、まず短い値の左側に 0 を挿入してから、辞書式比較を行います。
+ `glacierEventData` キー値は `s3:ObjectRestore:Completed` イベントに対してのみ表示されます。
+ `restoreEventData` キー値には、復元リクエストに関連する属性が含まれます。
+ `replicationEventData` キー値は、レプリケーションイベントに対してのみ表示されます。
+ `intelligentTieringEventData` キー値は S3 Intelligent−Tiering イベントでのみ表示されます。
+ `lifecycleEventData` キー値は S3 ライフサイクルの移行イベントでのみ表示されます。

## メッセージの例
<a name="notification-content-structure-examples"></a>

Amazon S3 イベント通知メッセージの例を次に示します。

**Amazon S3 テストメッセージ**  
バケットにイベント通知を設定すると、Amazon S3 は次のようなテストメッセージを送信します。

```
1. {  
2.    "Service":"Amazon S3",
3.    "Event":"s3:TestEvent",
4.    "Time":"2014-10-13T15:57:02.089Z",
5.    "Bucket":"amzn-s3-demo-bucket",
6.    "RequestId":"5582815E1AEA5ADF",
7.    "HostId":"8cLeGAmw098X5cv4Zkwcmo8vvZa3eH3eKxsPzbB9wrR+YstdA6Knx4Ip8EXAMPLE"
8. }
```

**注記**  
`s3:TestEvent` メッセージは、通常の S3 イベント通知とは異なる形式を使用します。前述の `Records` 配列構造を使用する他のイベント通知とは異なり、テストイベントは直接フィールドを含む簡略化された形式を使用します。イベント処理を実装する際は、コードが両方のメッセージ形式を区別し、適切に処理できることを確認してください。

**`PUT` リクエストを使用してオブジェクトが作成された場合のメッセージの例**  
次は Amazon S3 が `s3:ObjectCreated:Put` イベントを発行するために送信するメッセージの例です。

```
 1. {  
 2.    "Records":[  
 3.       {  
 4.          "eventVersion":"2.1",
 5.          "eventSource":"aws:s3",
 6.          "awsRegion":"us-west-2",
 7.          "eventTime":"1970-01-01T00:00:00.000Z",
 8.          "eventName":"ObjectCreated:Put",
 9.          "userIdentity":{  
10.             "principalId":"AIDAJDPLRKLG7UEXAMPLE"
11.          },
12.          "requestParameters":{  
13.             "sourceIPAddress":"172.16.0.1"
14.          },
15.          "responseElements":{  
16.             "x-amz-request-id":"C3D13FE58DE4C810",
17.             "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
18.          },
19.          "s3":{  
20.             "s3SchemaVersion":"1.0",
21.             "configurationId":"testConfigRule",
22.             "bucket":{  
23.                "name":"amzn-s3-demo-bucket",
24.                "ownerIdentity":{  
25.                   "principalId":"A3NL1KOZZKExample"
26.                },
27.                "arn":"arn:aws:s3:::amzn-s3-demo-bucket"
28.             },
29.             "object":{  
30.                "key":"HappyFace.jpg",
31.                "size":1024,
32.                "eTag":"d41d8cd98f00b204e9800998ecf8427e",
33.                "versionId":"096fKKXTRTtl3on89fVO.nfljtsv6qko",
34.                "sequencer":"0055AED6DCD90281E5"
35.             }
36.          }
37.       }
38.    ]
39. }
```



# EventBridge の使用
<a name="EventBridge"></a>

Amazon S3 は、バケット内で特定のイベントが発生するたびに Amazon EventBridge にイベントを送信できます。他の宛先とは異なり、配信するイベントタイプを選択する必要はありません。EventBridge を有効にすると、以下のすべてのイベントが EventBridge に送信されます。EventBridge ルールを使用すると、イベントを追加のターゲットにルートできます。Amazon S3 が EventBridge に送信するイベントを以下に示します。


|  イベントタイプ |  説明  | 
| --- | --- | 
|  *オブジェクトの作成*  |  オブジェクトが作成されました。 イベントメッセージ構造の理由フィールドは、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) などのオブジェクトの作成に使用された S3 API を示します。  | 
|  *オブジェクトが削除されました (DeleteObject)* *オブジェクトが削除されました (ライフサイクルの有効期限切れ)*  |  オブジェクトが削除されました。 S3 API コールを使用してオブジェクトを削除すると、理由フィールドが DeleteObject に設定されます。S3 ライフサイクルの有効期限切れルールによってオブジェクトを削除すると、理由フィールドがライフサイクルの有効期限切れに設定されます。詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。 バージョン管理されていないオブジェクトが削除されるか、バージョン管理されたオブジェクトが完全に削除されると、削除タイプフィールドは Permanently Deleted に設定されます。バージョン管理されたオブジェクトに対して削除マーカーが作成されると、`deletion-type` フィールドは Delete Marker Created に設定されます。詳細については、「[バージョニングが有効なバケットからのオブジェクトバージョンの削除](DeletingObjectVersions.md)」を参照してください。  | 
|  *オブジェクトの復元の開始*  |  オブジェクトの復元は、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive ストレージクラス、S3 Intelligent−Tiering アーカイブアクセス、Deep Archive アクセス階層から開始されました。詳細については、「[アーカイブされたオブジェクトの操作](archived-objects.md)」を参照してください。  | 
|  *オブジェクトの復元の完了*  |  オブジェクトの復元が完了しました。  | 
|  *オブジェクトの復元の期限切れ*  |  S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive から復元されたオブジェクトの一時コピーの有効期限切れのため削除されました。  | 
|  *オブジェクトストレージクラスの変更*  |  オブジェクトが別のストレージクラスに移行されました。詳細については、[Amazon S3 ライフサイクルを使用したオブジェクトの移行](lifecycle-transition-general-considerations.md) を参照してください。  | 
|  *オブジェクトアクセス階層が変更されました*  |  オブジェクトが S3 Intelligent−Tiering アーカイブアクセス階層または Deep Archive アクセス階層に移行されました。詳細については、[Amazon S3 Intelligent-Tiering によるストレージコストの管理](intelligent-tiering.md) を参照してください。  | 
|  *オブジェクト ACL が更新されました*  |  オブジェクトのアクセスコントロールリスト (ACL) が `PutObjectAcl` を使用して設定されました。リクエストによってオブジェクトの ACL が変更されない場合、イベントは生成されません。詳細については、[アクセスコントロールリスト (ACL) の概要](acl-overview.md) を参照してください。  | 
|  *追加されたオブジェクトタグ*  |  `PutObjectTagging` を使用して、一連のタグがオブジェクトに追加されました。詳細については、「[タグを使用したオブジェクトの分類](object-tagging.md)」を参照してください。  | 
|  *削除済みのオブジェクトタグ*  |  `DeleteObjectTagging` を使用して、すべてのタグがオブジェクトから削除されました。詳細については、「[タグを使用したオブジェクトの分類](object-tagging.md)」を参照してください。  | 

**注記**  
Amazon S3 イベントタイプを EventBridge イベントタイプにマッピングする方法の詳細については、[Amazon EventBridge のマッピングとトラブルシューティング](ev-mapping-troubleshooting.md) を参照してください。

EventBridge で Amazon S3 イベント通知を使用して、バケットでイベントが発生したときにアクションを実行するルールを記述できます。例えば、通知を送信するように設定できます。詳細については、「*Amazon EventBridge ユーザーガイド*」の「[What is EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)」を参照してください。

EventBridge API を使用して利用できるアクションとデータ型の詳細については、「**Amazon EventBridge API リファレンス」の「[Amazon EventBridge API Reference](https://docs.aws.amazon.com/eventbridge/latest/APIReference/Welcome.html)」を参照してください。

料金の詳細については、[Amazon EventBridge の料金](https://aws.amazon.com/eventbridge/pricing)を参照してください。

**Topics**
+ [Amazon EventBridge アクセス許可](ev-permissions.md)
+ [Amazon EventBridge を有効にします](enable-event-notifications-eventbridge.md)
+ [EventBridge イベントメッセージの構造](ev-events.md)
+ [Amazon EventBridge のマッピングとトラブルシューティング](ev-mapping-troubleshooting.md)

# Amazon EventBridge アクセス許可
<a name="ev-permissions"></a>

Amazon S3 では、Amazon EventBridge にイベントを配信するための追加のアクセス権限は必要ありません。

# Amazon EventBridge を有効にします
<a name="enable-event-notifications-eventbridge"></a>

S3 コンソール AWS Command Line Interface (AWS CLI)、または Amazon S3 REST API を使用して Amazon EventBridge を有効にできます。

**注記**  
EventBridge を有効にすると、変更が適用されるまで約 5 分かかります。

## S3 コンソールの使用
<a name="eventbridge-console"></a>

**S3 コンソールで EventBridge イベント配信を有効にします。**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、イベントを有効にするバケットの名前を選択します。

1. [**プロパティ**] を選択します。

1. **イベント通知**セクションに移動し、**Amazon EventBridge** サブセクションを見つけます。**[編集]** を選択します。

1. **このバケット内のすべてのイベント用の Amazon EventBridge に通知を送信する**の下にある **On** を選択します。

## の使用AWS CLI
<a name="eventbridge-cli"></a>

次の例では、Amazon EventBridge が有効であるバケット *`amzn-s3-demo-bucket1`* のバケット通知設定を作成します。

```
aws s3api put-bucket-notification-configuration --bucket amzn-s3-demo-bucket1 --notification-configuration='{ "EventBridgeConfiguration": {} }'
```

## REST API の使用
<a name="eventbridge-api"></a>

Amazon S3 REST API を呼び出して、バケット上で Amazon EventBridge をプログラムで有効にできます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html)」を参照してください。

次の例は、Amazon EventBridge を有効にしたバケット通知設定を作成するために使用される XML を示しています。

```
<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <EventBridgeConfiguration>
  </EventBridgeConfiguration>
</NotificationConfiguration>
```

## EventBridge ルールの作成
<a name="ev-tutorial"></a>

有効にすると、特定のタスクに対して Amazon EventBridge ルールを作成できます。例えば、オブジェクトが作成されたときに電子メール通知を送信できます。完全なチュートリアルについては、*Amazon EventBridge ユーザーガイド*の[チュートリアル: Amazon S3 オブジェクトが作成されたとき通知を送信する](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-s3-object-created-tutorial.html)を参照してください。

# EventBridge イベントメッセージの構造
<a name="ev-events"></a>

Amazon S3 がイベントを発行するために送信する通知メッセージは JSON 形式です。Amazon S3 が Amazon EventBridge にイベントを送信すると、次のフィールドが表示されます。
+ `version` – 現在、すべてのイベントで 0 (ゼロ)。
+ `id` – イベントごとに生成される UUID。
+ `detail-type` – 送信されるイベントのタイプ。イベントタイプのリスト化については、[EventBridge の使用](EventBridge.md) を参照してください。
+ `source` – イベントを発生させたサービスを識別します。
+ `account` – バケット所有者の 12 桁の AWS アカウント ID。
+ `time` – イベントが発生した時刻。
+ `region` – バケットの AWS リージョン を識別します。
+ `resources` – バケットの Amazon リソースネーム (ARN) を含む JSON 配列。
+ `detail` – イベントに関する情報を含む JSON オブジェクト。このフィールドに含めることができる内容の詳細については、「[イベントメッセージ詳細フィールド](#ev-events-detail)」を参照してください。

## イベントメッセージの構造の例
<a name="ev-events-list"></a>

Amazon EventBridge に送信できる Amazon S3 イベント通知メッセージの例を次に示します。

### オブジェクトの作成
<a name="ev-events-object-created"></a>

```
{
  "version": "0",
  "id": "17793124-05d4-b198-2fde-7ededc63b103",
  "detail-type": "Object Created",
  "source": "aws.s3",
  "account": "111122223333",
  "time": "2021-11-12T00:00:00Z",
  "region": "ca-central-1",
  "resources": [
    "arn:aws:s3:::amzn-s3-demo-bucket1"
  ],
  "detail": {
    "version": "0",
    "bucket": {
      "name": "amzn-s3-demo-bucket1"
    },
    "object": {
      "key": "example-key",
      "size": 5,
      "etag": "b1946ac92492d2347c6235b4d2611184",
      "version-id": "IYV3p45BT0ac8hjHg1houSdS1a.Mro8e",
      "sequencer": "617f08299329d189"
    },
    "request-id": "N4N7GDK58NMKJ12R",
    "requester": "123456789012",
    "source-ip-address": "1.2.3.4",
    "reason": "PutObject"
  }
}
```

### (DeleteObject を使用して) オブジェクトが削除されました
<a name="ev-events-object-deleted"></a>

```
{
  "version": "0",
  "id": "2ee9cc15-d022-99ea-1fb8-1b1bac4850f9",
  "detail-type": "Object Deleted",
  "source": "aws.s3",
  "account": "111122223333",
  "time": "2021-11-12T00:00:00Z",
  "region": "ca-central-1",
  "resources": [
    "arn:aws:s3:::amzn-s3-demo-bucket1"
  ],
  "detail": {
    "version": "0",
    "bucket": {
      "name": "amzn-s3-demo-bucket1"
    },
    "object": {
      "key": "example-key",
      "etag": "d41d8cd98f00b204e9800998ecf8427e",
      "version-id": "1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF",
      "sequencer": "617f0837b476e463"
    },
    "request-id": "0BH729840619AG5K",
    "requester": "123456789012",
    "source-ip-address": "1.2.3.4",
    "reason": "DeleteObject",
    "deletion-type": "Delete Marker Created"
  }
}
```

### (ライフサイクルの有効期限切れのため) オブジェクトが削除されました
<a name="ev-events-object-deleted-lifecycle"></a>

```
{
  "version": "0",
  "id": "ad1de317-e409-eba2-9552-30113f8d88e3",
  "detail-type": "Object Deleted",
  "source": "aws.s3",
  "account": "111122223333",
  "time": "2021-11-12T00:00:00Z",
  "region": "ca-central-1",
  "resources": [
    "arn:aws:s3:::amzn-s3-demo-bucket1"
  ],
  "detail": {
    "version": "0",
    "bucket": {
      "name": "amzn-s3-demo-bucket1"
    },
    "object": {
      "key": "example-key",
      "etag": "d41d8cd98f00b204e9800998ecf8427e",
      "version-id": "mtB0cV.jejK63XkRNceanNMC.qXPWLeK",
      "sequencer": "617b398000000000"
    },
    "request-id": "20EB74C14654DC47",
    "requester": "s3.amazonaws.com",
    "reason": "Lifecycle Expiration",
    "deletion-type": "Delete Marker Created"
  }
}
```

### オブジェクトの復元の完了
<a name="ev-events-object-restore-complete"></a>

```
{
  "version": "0",
  "id": "6924de0d-13e2-6bbf-c0c1-b903b753565e",
  "detail-type": "Object Restore Completed",
  "source": "aws.s3",
  "account": "111122223333",
  "time": "2021-11-12T00:00:00Z",
  "region": "ca-central-1",
  "resources": [
    "arn:aws:s3:::amzn-s3-demo-bucket1"
  ],
  "detail": {
    "version": "0",
    "bucket": {
      "name": "amzn-s3-demo-bucket1"
    },
    "object": {
      "key": "example-key",
      "size": 5,
      "etag": "b1946ac92492d2347c6235b4d2611184",
      "version-id": "KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3"
    },
    "request-id": "189F19CB7FB1B6A4",
    "requester": "s3.amazonaws.com",
    "restore-expiry-time": "2021-11-13T00:00:00Z",
    "source-storage-class": "GLACIER"
  }
}
```

## イベントメッセージ詳細フィールド
<a name="ev-events-detail"></a>

詳細フィールドは、イベントに関する情報のある JSON オブジェクトを含みます。詳細フィールドには、次のフィールドが存在する可能性があります。
+ `version` – 現在、すべてのイベントで 0 (ゼロ)。
+ `bucket` – イベントに関与した Amazon S3 バケットに関する情報。
+ `object` – イベントに関与した Amazon S3 オブジェクトに関する情報。
+ `request-id` – S3 レスポンスのリクエスト ID。
+ `requester` – AWS アカウント ID または AWS リクエスタのサービスプリンシパル。
+ `source-ip-address` – S3 リクエストの送信元 IP アドレス。S3 リクエストによってトリガーされたイベントにのみ存在します。
+ `reason` – **オブジェクトの作成**イベントの場合、オブジェクトの作成に使用される S3 API。[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、または [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)。**オブジェクトの削除**イベントの場合、これは、オブジェクトが S3 API コールによって削除された場合は **DeleteObject** に設定され、オブジェクトが S3 ライフサイクル有効期限切れルールによって削除された場合は**ライフサイクルの有効期限切れ**に設定されます。詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。
+ `deletion-type` – **オブジェクトの削除**イベントの場合、バージョン管理されていないオブジェクトが削除されるか、バージョン管理されたオブジェクトが完全に削除されると、これは**完全に削除**に設定されます。バージョン化したオブジェクトに削除マーカーが作成されると、これは**削除マーカーの作成**に設定されます。詳細については、「[バージョニングが有効なバケットからのオブジェクトバージョンの削除](DeletingObjectVersions.md)」を参照してください。
**注記**  
一部のオブジェクト属性 (`etag` や `size` など) は、削除マーカーが作成された場合にのみ示されます。
+ `restore-expiry-time` – **オブジェクトの復元完了**イベントの場合、オブジェクトの一時コピーが S3 から削除される時刻。詳細については、「[アーカイブされたオブジェクトの操作](archived-objects.md)」を参照してください。
+ `source-storage-class` – **オブジェクトの復元開始**および**オブジェクトの復元完了**イベントの場合の、復元されるオブジェクトのストレージクラス。詳細については、「[アーカイブされたオブジェクトの操作](archived-objects.md)」を参照してください。
+ `destination-storage-class` – **オブジェクトストレージクラスの変更**イベントの場合の、オブジェクトの新しいストレージクラス。詳細については、「[Amazon S3 ライフサイクルを使用したオブジェクトの移行](lifecycle-transition-general-considerations.md)」を参照してください。
+ `destination-access-tier` – **オブジェクトアクセス階層の変更**イベントの場合の、オブジェクトの新しいアクセス階層。詳細については、「[Amazon S3 Intelligent-Tiering によるストレージコストの管理](intelligent-tiering.md)」を参照してください。

# Amazon EventBridge のマッピングとトラブルシューティング
<a name="ev-mapping-troubleshooting"></a>

次の表では、Amazon S3 イベントタイプが Amazon EventBridge イベントタイプにどのようにマッピングされるかを説明します。


|  S3 イベントタイプ |  Amazon EventBridge の詳細タイプ  | 
| --- | --- | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)  |  オブジェクトの作成  | 
|  ObjectRemoved:Delete ObjectRemoved:DeleteMarkerCreated LifecycleExpiration:Delete LifecycleExpiration:DeleteMarkerCreated  |  削除したオブジェクト  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html)  |  オブジェクトの復元の開始  | 
|  ObjectRestore:Completed  |  オブジェクト復元の完了  | 
|  ObjectRestore:Delete  |  オブジェクト復元の有効期限切れ  | 
|  LifecycleTransition  |  オブジェクトストレージクラスの変更  | 
|  IntelligentTiering  |  オブジェクトアクセス階層が変更されました  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)  |  追加されたオブジェクトタグ  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html)  |  削除済みのオブジェクトタグ  | 
|  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)  |  オブジェクト ACL が更新されました  | 

## Amazon EventBridge のトラブルシューティング
<a name="ev-troubleshooting"></a>

EventBridge のトラブルシューティング方法の詳細については、**「Amazon EventBridge ユーザーガイド」の「[Troubleshooting Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-troubleshooting.html)を参照してください 。

# Amazon S3 ストレージレンズを使用してストレージのアクティビティと使用状況をモニタリングする
<a name="storage_lens"></a>

Amazon S3 ストレージレンズは、オブジェクトストレージおよびアクティビティを組織全体で可視化するために使用できるクラウドストレージ分析機能です。また、S3 Storage Lens は、メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供します。

S3 Storage Lens メトリクスを使用して、概要の分析情報を生成できます。例えば、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどを把握することができます。S3 ストレージレンズメトリクスを使用して、コスト最適化の機会を特定し、データ保護とアクセス管理のベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることができます。例えば、S3 ライフサイクルルールが設定されていないバケットを特定して、7 日を超えた未完了のマルチパートアップロードを有効期限切れにすることができます。また、S3 レプリケーションや S3 バージョニング使用など、データ保護のベストプラクティスに従っていないバケットを特定することもできます。

S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの **[Buckets]** (バケット) ページの **[Account snapshot]** (アカウントスナップショット) セクションにこの情報を表示します。S3 ストレージレンズは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、ストレージクラス、バケット、プレフィックス、またはストレージレンズのグループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。毎日のメトリクスレポートを CSV または Parquet 形式で汎用 S3 バケットに送信したり、メトリクスを AWS マネージド S3 テーブルバケットに直接エクスポートしたりすることもできます。

![\[S3 ストレージレンズダッシュボードの [Snapshot for date] (日付のスナップショット) セクション。\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/storage-lens-dashboard.png)


## S3 ストレージレンズのメトリクスと機能
<a name="storage-lens-dashboards-intro"></a>

S3 ストレージレンズでは、毎日更新されるインタラクティブな*デフォルトダッシュボード*が利用できます。S3 ストレージレンズではこのダッシュボードが事前定義されており、アカウント全体の要約されたインサイトとトレンドを視覚化し、S3 コンソールで毎日更新します。このダッシュボードのメトリクスは、**[Buckets]** (バケット) ページのアカウントスナップショットにも要約されます。詳細については、「[デフォルトのダッシュボード](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_default_dashboard)」を参照してください。

他のダッシュボードを作成し、AWS リージョン、S3 バケットまたはアカウント (AWS Organizations 用) でスコープを設定するには、S3 ストレージレンズダッシュボード設定を作成します。AmazonS3 コンソール、AWS Command Line Interface、(AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して S3 Storage Lens ダッシュボード設定を作成および管理できます。S3 Storage Lens ダッシュボードを作成または編集するとき、ダッシュボードのスコープとメトリクスの選択を定義します。

S3 ストレージレンズでは、無料階層のメトリクスと、追加料金でアップグレードできるアドバンスト階層のメトリクスを利用できます。アドバンスト階層では、ストレージに関するインサイトが得られる追加のメトリクスや機能にアクセスできます。これらの機能には、高度なメトリクスカテゴリ、プレフィックス集約、コンテキストに応じた推奨事項、拡張プレフィックスメトリクスレポート、Amazon CloudWatch パブリッシングなどがあります。プレフィックス集約とコンテキストに応じた推奨事項は、Amazon S3 コンソールでのみ使用できます。S3 Storage Lens の料金の詳細については、[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)を参照してください。

**メトリクスのカテゴリ**  
無料層とアドバンスト層で、メトリクスはコストの最適化やデータ保護などの主要なユースケースに合わせてカテゴリに分類されます。無料のメトリクスには、概要、コスト最適化、データ保護、アクセス管理、パフォーマンス、イベントメトリクスが含まれます。アドバンスト階層にアップグレードすると、高度なコスト最適化とデータ保護メトリクスを有効にできます。これらの高度なメトリクスを使用すると、S3 ストレージのコストをさらに削減し、データ保護スタンスを向上させることができます。アクティビティメトリクスと詳細なステータスコードメトリクスを有効にして、S3 バケットにアクセスしているアプリケーションワークロードのパフォーマンスを向上させることもできます。無料のメトリクスと高度なメトリクスのカテゴリの詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

暗号化、S3 オブジェクトロック、または S3 バージョニングが有効になっているバケットの割合を分析するなど、S3 のベストプラクティスに基づいてストレージを評価できます。また、潜在的なコスト削減の機会を特定することもできます。例えば、S3 ライフサイクルルール数メトリクスを使用して、ライフサイクルの有効期限または移行ルールがないバケットを特定できます。また、バケットごとのリクエストアクティビティを分析して、コストのより低いストレージクラスにオブジェクトの移行が可能なバケットを見つけることもできます。詳細については、「[Amazon S3 ストレージレンズメトリクスのユースケース](storage-lens-use-cases.md)」を参照してください。

**メトリクスのエクスポート**

**デフォルトのメトリクスレポート**  
S3 ストレージレンズのデフォルトのメトリクスレポートには、AWS アカウント全体のオブジェクトストレージの使用状況とアクティビティの傾向をカバーする無料のメトリクスとアドバンスト階層のメトリクスが含まれています。このレポートには、オブジェクトがバケットに保存されている合計データの少なくとも 1% を構成するプレフィックスのプレフィックス集約が含まれ、最大 10 レベルのプレフィックス深度をサポートします。レポートは、CSV または Parquet 形式で S3 汎用バケットに毎日エクスポートできます。レポートは、AWS が管理する S3 テーブルバケット (`aws-s3` という名前) に送信することもできます。これにより、AWS 分析サービスやサードパーティーのツールを使用して簡単にクエリを実行できます。

デフォルトのメトリクスレポートを使用すると、不完全なマルチパートアップロードに対する S3 ライフサイクルルールのないバケットや、S3 レプリケーションや S3 バージョニングなどのデータ保護のベストプラクティスに従っていないバケットなど、コスト最適化の機会を特定できます。デフォルトのメトリクスレポートでは、標準の S3 ストレージコスト以外の追加料金なしで、ストレージコストを最適化し、データ保護のベストプラクティスを適用するためのコンテキストに応じた推奨事項も提供されます。

**拡張プレフィックスメトリクスレポート**  
ストレージレンズ拡張プレフィックスメトリクスレポートは、S3 ストレージデータ全体で包括的なプレフィックスレベルの分析を提供し、バケット内の数十億のプレフィックスをサポートするようにカバレッジを拡張します。このレポートは、ストレージ使用量、転送されたバイト数、ステータスコード別のリクエスト数、データ保護コンプライアンスメトリクスなど、バケット内のすべてのプレフィックスのメトリクスを配信します。これらのメトリクスは、CSV または Parquet 形式で毎日 S3 汎用バケットにエクスポートできます。メトリクスを `aws-s3` AWS マネージド S3 テーブルバケットに直接エクスポートすることもできます。

**注記**  
このレポートでは、最大 50 レベルの深さのプレフィックスのメトリクスが処理され、プレフィックスとストレージクラスの組み合わせがオブジェクト数の 2 倍を超えるバケットのプレフィックスレベルのメトリクスは除外されます。

拡張プレフィックスメトリクスレポートを使用すると、バケット内の数十億のプレフィックスにわたって、高いエラー率、小さなオブジェクト、最適ではないリクエストパターンなどのパフォーマンス最適化の機会を特定できます。デフォルトのメトリクスレポートとは異なり、拡張プレフィックスメトリクスレポートは、バケット内の詳細なプレフィックスのメトリクスを配信します。例えば、サイズが 128KB 未満のオブジェクトが多数あるプレフィックスを特定して、このようなデータセットを迅速に分離して圧縮することで、アプリケーションのパフォーマンスを向上させることができます。このレポートは、ストレージレンズのアドバンスト階層ダッシュボード設定のオプトイン機能としてすべての AWS リージョンで使用できます。

**メトリクスの発行**

**Amazon CloudWatch パブリッシング**  
S3 ストレージレンズの使用状況とアクティビティメトリクスを Amazon CloudWatch に公開し、CloudWatch [ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用状況を一元的に表示することができます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズメトリクスをモニタリングして対処することができます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズのメトリクスにアクセスできるようになります。CloudWatch の公開オプションは、S3 ストレージレンズのアドバンスト階層にアップグレードされたダッシュボードで利用可能です。CloudWatch での S3 ストレージレンズメトリクスの詳細については、「[CloudWatch で S3 Storage Lens のメトリクスをモニタリング](storage_lens_view_metrics_cloudwatch.md)」を参照してください。

S3 ストレージレンズの使用の詳細については、次のトピックを参照してください。

**Topics**
+ [S3 ストレージレンズのメトリクスと機能](#storage-lens-dashboards-intro)
+ [Amazon S3 ストレージレンズを理解する](storage_lens_basics_metrics_recommendations.md)
+ [Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)
+ [Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md)
+ [S3 ストレージレンズから S3 Tables へのエクスポートのテーブルの命名](storage_lens_s3_tables_naming.md)
+ [コンソールと API を使用した Amazon S3 ストレージレンズの使用](S3LensExamples.md)
+ [Amazon S3 ストレージレンズでのメトリクスの表示](storage_lens_view_metrics.md)
+ [AWS Organizations での Amazon S3 ストレージレンズの使用](storage_lens_with_organizations.md)
+ [S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計](storage-lens-groups-overview.md)

# Amazon S3 ストレージレンズを理解する
<a name="storage_lens_basics_metrics_recommendations"></a>

**重要**  
Amazon S3 では、Amazon S3 内のすべてのバケットの基本レベルの暗号化として、Amazon S3 が管理するキー (SSE-S3) によるサーバー側の暗号化が適用されるようになりました。2023 年 1 月 5 日以降、Amazon S3 にアップロードされるすべての新しいオブジェクトは、追加費用なしで、パフォーマンスに影響を与えずに自動的に暗号化されます。S3 バケットのデフォルト暗号化設定と新しいオブジェクトのアップロードのための自動暗号化ステータスは、CloudTrail ログ、S3 インベントリ、S3 ストレージレンズ、Amazon S3 コンソール、および AWS CLI と AWS SDK の追加の Amazon S3 API レスポンスヘッダーとして利用できるようになりました。詳細については、「[デフォルト暗号化に関するよくある質問](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)」を参照してください。

Amazon S3 ストレージレンズは、オブジェクトストレージの使用状況とアクティビティを組織全体で可視化するために使用できるクラウドストレージの分析機能です。S3 ストレージレンズメトリクスを使用することで、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどの、要約されたインサイトを生成できます。S3 ストレージレンズメトリクスを使用して、コスト最適化の機会を特定し、データ保護とセキュリティのベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることもできます。例えば、S3 ライフサイクルルールがないバケットを特定して、7 日以上経過した未完了のマルチパートアップロードを有効期限切れにできます。また、S3 レプリケーションや S3 バージョニング使用など、データ保護のベストプラクティスに従っていないバケットを特定することもできます。また、S3 ストレージレンズは、メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供します。

S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの **[Buckets]** (バケット) ページの **[Account snapshot]** (アカウントスナップショット) セクションにこの情報を表示します。S3 ストレージレンズは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、ストレージクラス、バケット、プレフィックス、またはストレージレンズのグループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。毎日のメトリクスレポートを CSV または Parquet 形式で汎用 S3 バケットに送信したり、メトリクスを AWS マネージド S3 テーブルバケットに直接エクスポートしたりすることもできます。AmazonS3 コンソール、AWS Command Line Interface、(AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して S3 Storage Lens ダッシュボードを作成および管理できます。

## S3 ストレージレンズの概念と用語
<a name="storage_lens_basics"></a>

このセクションは、Amazon S3 ストレージレンズを適切に理解し使用するために不可欠な、用語と概念に関する解説で構成されています。

**Topics**
+ [ダッシュボード設定](#storage_lens_basics_configuration)
+ [デフォルトのダッシュボード](#storage_lens_basics_default_dashboard)
+ [ダッシュボード](#storage_lens_basics_dashboards)
+ [アカウントスナップショット](#storage_lens_basics_account_snapshot)
+ [メトリクスのエクスポート](#storage_lens_basics_metrics_export)
+ [メトリクスのエクスポート先](#storage_lens_basics_metrics_export_destinations)
+ [ホームリージョン](#storage_lens_basics_home_region)
+ [保持期間](#storage_lens_basics_data_queries)
+ [メトリクスのカテゴリ](#storage_lens_basics_metrics_types)
+ [推奨事項](#storage_lens_basics_recommendations)
+ [メトリクスの選択](#storage_lens_basics_metrics_selection)
+ [プレフィックス区切り文字](#storage_lens_basics_prefix_delimiter)
+ [S3 ストレージレンズと AWS Organizations](#storage_lens_basics_organizations)

### ダッシュボード設定
<a name="storage_lens_basics_configuration"></a>

S3 ストレージレンズでは、ユーザーに代わってメトリクスを集計するのに必要なプロパティを含むダッシュボード設定が必要となります。これらは、単一のダッシュボード、もしくはエクスポートのために使用されます。設定を作成するときは、ダッシュボード名とホームリージョンを選択します。これらはダッシュボードの作成後に変更できません。オプションでタグを追加し、CSV または Parquet 形式でメトリクスをエクスポートするように設定できます。

ダッシュボード設定では、ダッシュボードのスコープとメトリクスの選択も定義します。スコープには、組織アカウントのすべてのストレージ、またはリージョン、バケット、アカウントでフィルタリングされたセクションのストレージを含めることができます。メトリクスの選択を設定する際、無料階層のメトリクスまたは追加料金でアップグレードできるアドバンスト階層のメトリクスのいずれかを選択します。アドバンスト階層では、追加のメトリクスや機能にアクセスできます。これらの機能には、高度なメトリクスカテゴリ、プレフィックスレベルでの集約、コンテキストに応じた推奨事項、Amazon CloudWatch パブリッシングなどがあります。S3 ストレージレンズの料金の詳細については、[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)を参照してください。

### デフォルトのダッシュボード
<a name="storage_lens_basics_default_dashboard"></a>

コンソールの S3 ストレージレンズのデフォルトダッシュボードの名前は、**default-account-dashboard** です。S3 ではこのダッシュボードが事前定義されており、アカウント全体の要約されたインサイトとトレンドを視覚化し、S3 コンソールで毎日更新します。デフォルトのダッシュボードのスコープ設定を変更することはできませんが、選択するメトリクスを、無料階層のメトリクスからアドバンスト階層のメトリクスにアップグレードすることはできます。オプションで、メトリクスのエクスポートを設定したり、ダッシュボードを無効にしたりもできます。ただし、デフォルトのダッシュボードを削除することはできません。

**注記**  
デフォルトのダッシュボードを無効にすると、更新されなくなります。S3 ストレージレンズダッシュボード、メトリクスエクスポート、または S3 **[バケット]** ページのアカウントスナップショットで、新しい日次メトリクスを受け取ることはなくなります。ダッシュボードで高度なメトリクスを使用していても、請求は発生しなくなります。データクエリの 14 日の有効期限が切れるまでは、ダッシュボードで履歴データを引き続き表示できます。高度なメトリクスを有効にしている場合、この期間は 15 か月です。有効期限内にダッシュボードを再度有効にすれば、履歴データにアクセスできます。

### ダッシュボード
<a name="storage_lens_basics_dashboards"></a>

追加の S3 ストレージレンズダッシュボードを作成し、AWS リージョン、S3 バケット、またはアカウント (AWS Organizations の場合) によってスコープを設定できます。S3 ストレージレンズダッシュボードを作成または編集するとき、ダッシュボードのスコープとメトリクスの選択を定義します。S3 ストレージレンズでは、無料階層のメトリクスと、追加料金でアップグレードできるアドバンスト階層のメトリクスを利用できます。高度なメトリクスを使用すると、ストレージに関するインサイトが得られる追加のメトリクスや機能にアクセスできます。これらには、高度なメトリクスカテゴリ、プレフィックスレベルでの集約、コンテキストに応じた推奨事項、Amazon CloudWatch パブリッシングなどがあります。S3 Storage Lens の料金の詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)」を参照してください。

また、ダッシュボードを無効化または削除することも可能です。ダッシュボードを無効にすると、そのダッシュボードは更新されなくなるので、日次で新しいメトリクスが生成されることもなくなります。14 日の有効期限の間は、履歴データを表示できます。そのダッシュボードで高度なメトリクスを有効にした場合、この期間は 15 か月です。有効期限内にダッシュボードを再度有効にすれば、履歴データにアクセスできます。

ダッシュボードを削除すると、それまでの設定内容はすべて失われます。削除されたダッシュボードからは、それ以後の新しい日次のメトリクスは受信できなくなり、そのダッシュボードに関連付けられた履歴データにもアクセスできなくなります。削除したダッシュボードの履歴データにアクセスする場合は、同じホームリージョンで同じ名前を使用しながら、新たなダッシュボードを作成する必要があります。

**注記**  
S3 ストレージレンズをご使用のお客様は、ホームリージョンごとに最大 50 個のダッシュボードを作成いただけます。
組織レベルのダッシュボードは、リージョンのスコープにのみ制限できます。

### アカウントスナップショット
<a name="storage_lens_basics_account_snapshot"></a>

S3 ストレージレンズの **[Account snapshot]** (アカウントスナップショット) は、デフォルトのダッシュボードからメトリクスを要約し、S3 コンソールの ([**Buckets**] (バケット) ページに、ストレージ合計、オブジェクト数、および平均オブジェクトサイズを表示します。このアカウントスナップショットでは、**[Buckets]** (バケット) ページから移動することなく、ストレージに関するインサイトにすばやくアクセスできます。アカウントスナップショットから、インタラクティブな S3 ストレージレンズダッシュボードにワンクリックでアクセスすることもできます。

ダッシュボードでは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたりできます。また、ストレージコストの最適化や、データ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ることもできます。ダッシュボードには、組織、アカウント、バケット、オブジェクト、またはプレフィックスレベルでインサイトを生成できる、ドリルダウンオプションが用意されています。1 日 1 回のメトリクスのエクスポートを CSV 形式または Parquet 形式で S3 バケットに送信することもできます。

**default-account-dashboard** のスコープは、**アカウントスナップショット**にリンクされているため、変更できません。ただし、**default-account-dashboard** のメトリクス選択を、無料のメトリクスから有料の高度なメトリクスにアップグレードできます。アップグレード後、すべてのリクエスト、アップロードされたバイト数、およびダウンロードされたバイト数を S3 ストレージレンズの**アカウントスナップショット**で表示できます。

**注記**  
デフォルトのダッシュボードを無効にすると、**アカウントスナップショット**は更新されなくなります。**アカウントスナップショット**でのメトリクスの表示を再開するには、**default-account-dashboard** を再度有効にします。

### メトリクスのエクスポート
<a name="storage_lens_basics_metrics_export"></a>

S3 ストレージレンズでは、1 つのファイルとしてメトリクスのエクスポートを作成します。このファイルには、S3 ストレージレンズの設定で指定された、すべてのメトリクスが含まれています。この情報は、CSV または Parquet 形式で毎日生成され、汎用 S3 バケットに送信されます。また、メトリクスを `aws-s3` AWS マネージド S3 テーブルバケットに直接エクスポートして、AWS 分析サービスやサードパーティーのツールを使用して簡単にクエリを実行することもできます。メトリクスをエクスポートすれば、お好みのメトリクスツールでさらに分析することができます。メトリクスのエクスポート用に指定されたバケットは、S3 ストレージレンズ設定と同じリージョンに存在する必要があります。ダッシュボードの設定を編集することで、S3 コンソールから S3 ストレージレンズメトリクスのエクスポートを生成できます。AWS CLI および AWS SDK を使用してメトリクスのエクスポートを設定することもできます。

ストレージレンズでは、次の 2 種類のメトリクスエクスポートを使用できます。
+ **デフォルトのメトリクスレポート** – S3 ストレージレンズのデフォルトのメトリクスレポートには、AWS アカウント全体の無料のメトリクスとアクティビティの傾向が含まれ、上位のプレフィックスの使用状況メトリクスが集計されます。
+ **拡張プレフィックスメトリクスレポート** – ストレージレンズ拡張プレフィックスメトリクスレポートは、バケット内のすべてのプレフィックスについて、プレフィックスレベルで詳細なストレージおよびアクティビティメトリクス (ストレージ使用量、転送バイト数、ステータスコードによるリクエスト数など) を提供します。このレポートは、ストレージレンズダッシュボード設定のアドバンスト料金階層を通じて、すべての AWS リージョンでオプトイン機能として使用できます。S3 ストレージレンズ機能の料金の詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)」を参照してください。

**注記**  
ストレージレンズは、[S3 汎用バケット](UsingBucket.md)のメトリクスのみを生成します。

### メトリクスのエクスポート先
<a name="storage_lens_basics_metrics_export_destinations"></a>

ストレージレンズメトリクスデータをエクスポートするときは、送信先として S3 汎用バケットまたは S3 テーブルバケットの両方を選択できます。汎用バケットは、既存のツールやアプリケーションとの幅広い互換性を提供し、任意の分析サービスを使用してアカウント内でデータを処理できる柔軟性を提供します。このオプションは、リージョン内の個々のバケット内のデータ分析のための標準 S3 アクセスパターンと統合をサポートします。対照的に、S3 テーブルバケットを使用すると、追加の処理インフラストラクチャを必要とせずに、複数のアカウントやリージョンで即時クエリを実行し、Amazon Quick でカスタムダッシュボードを作成し、他の AWS サービスやサードパーティーのツールとデータを結合できます。例えば、ストレージレンズメトリクスと S3 メタデータを組み合わせて、組織全体のオブジェクトアクティビティパターンを分析できます。

#### S3 汎用バケット
<a name="storage_lens_basics_s3_general_purpose_bucket"></a>

ストレージレンズメトリクスを S3 汎用バケットにエクスポートすると、ストレージレンズデータを保存するための柔軟性と継続性が提供されます。現在のインフラストラクチャと既存の抽出、変換、ロード (ETL) プロセス、分析ツール、または自動ワークフローを引き続き使用することで、既存のワークフローと運用の一貫性を維持できます。汎用バケットは、標準 S3 API をサポートするすべての AWS サービスおよびサードパーティーツールでも動作します。これにより、ストレージレンズインサイトを処理、分析、視覚化する方法に最大限の柔軟性がもたらされます。さらに、S3 ライフサイクルポリシーを実装して、データ保持を自動的に管理したり、古いメトリクスを低コストのストレージクラスに移行したり、指定した期間後に削除してコストを最適化したりできます。したがって、運用の継続性とワークフローの柔軟性がストレージレンズ実装の優先事項である場合は、ストレージレンズデータをエクスポートするための S3 汎用バケットの選択を検討してください。S3 汎用バケットの料金の詳細については、「[Amazon S3の料金](https://aws.amazon.com/s3/pricing)」を参照してください。

#### S3 テーブルバケット
<a name="storage_lens_basics_s3_table_bucket"></a>

ストレージレンズメトリクスを S3 テーブルバケットにエクスポートする場合、データパイプラインを構築せずに、ストレージの使用状況とアクティビティのメトリクスを簡単に分析できます。メトリクスは、最適なクエリパフォーマンスのために `aws-s3` と呼ばれる AWS マネージド S3 テーブルバケットに作成された S3 テーブルに整理され、データ管理のニーズに合わせて保持期間と暗号化設定をカスタマイズできます。S3 Tables のメトリクスを使用すると、SQL ツールと AWS 分析サービス (Amazon Athena、Amazon Quick、Amazon EMR、Amazon Redshift など) を使用して複数のアカウントとリージョンでクエリを実行して、カスタムダッシュボードを作成し、より深いインサイトを生成できます。例えば、S3 ストレージレンズメトリクスを S3 メタデータと結合して、最近のアクティビティが表示されていないプレフィックス内のオブジェクトを識別できます。S3 テーブルバケットに保存されているデータには、S3 Tables のコストが発生します。S3 Tables の価格設定に関する詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)」を参照してください。

**S3 Tables へのメトリクスのエクスポートのアクセス許可**  
S3 ストレージレンズテーブルとテーブルバケットを作成して操作するには、特定の `s3tables` アクセス許可が必要です。S3 ストレージレンズを S3 Tables に設定するには、少なくとも次の `s3tables` アクセス許可が必要です。
+ `s3tables:CreateTableBucket` – このアクセス許可により、AWS マネージドテーブルバケットを作成できます。アカウント内のすべての S3 ストレージレンズメトリクスは、`aws-s3` という名前の単一の AWS マネージドテーブルバケットに保存されます。
+ `s3tables:PutTableBucketPolicy` – S3 ストレージレンズはこのアクセス許可を使用して、ログを配信できるように `systemtables.s3.amazonaws.com` がバケットにアクセスできるようにするテーブルバケットポリシーを設定します。

**重要**  
サービスプリンシパル `systemtables.s3.amazonaws.com` のアクセス許可を削除すると、S3 ストレージレンズは設定に基づいて S3 テーブルをデータで更新できなくなります。テーブルバケットの設定時に追加される既定ポリシーを編集するのではなく、既に提供されているポリシーに加えて、他のアクセスコントロールポリシーを追加することをお勧めします。

**注記**  
各ストレージレンズ設定ごとに、メトリクスエクスポートのタイプごとに個別の S3 テーブルが作成されます。リージョンに複数のストレージレンズ設定がある場合は、追加の設定用に個別のテーブルが作成されます。例えば、S3 テーブルバケットで使用できるテーブルには 3 つのタイプがあります。

### ホームリージョン
<a name="storage_lens_basics_home_region"></a>

ホームリージョンとは、特定のダッシュボード設定のすべての S3 ストレージレンズメトリクスが保存される AWS リージョン です。S3 ストレージレンズのダッシュボード設定を作成する際には、ホームリージョンを選択する必要があります。いったん選択したホームリージョンは変更できません。また、Storage Lens グループを作成する場合は、Storage Lens ダッシュボードと同じホームリージョンを選択することをお勧めします。

**注記**  
次のいずれかの地域をホームリージョンとして選択できます。  
米国東部 (バージニア北部) – `us-east-1`
米国東部 (オハイオ) – `us-east-2`
米国西部 (北カリフォルニア) – `us-west-1`
米国西部 (オレゴン) – `us-west-2`
アジアパシフィック (ムンバイ) – `ap-south-1`
アジアパシフィック (ソウル) – `ap-northeast-2`
アジアパシフィック (シンガポール) – `ap-southeast-1`
アジアパシフィック (シドニー) – `ap-southeast-2`
アジアパシフィック (東京) – `ap-northeast-1`
カナダ (中部) – `ca-central-1`
中国 (北京) – `cn-north-1`
中国 (寧夏) – `cn-northwest-1`
欧州 (フランクフルト) – `eu-central-1`
欧州 (アイルランド) – `eu-west-1`
欧州 (ロンドン) – `eu-west-2`
欧州 (パリ) – `eu-west-3`
欧州 (ストックホルム) – `eu-north-1`
南米 (サンパウロ) – `sa-east-1`

### 保持期間
<a name="storage_lens_basics_data_queries"></a>

S3 Storage Lens のメトリクスは保持されるため、過去の傾向を確認したり、ストレージの使用状況やアクティビティの変動を時間の経過を追って比較したりするために使用できます。Amazon S3 ストレージレンズのメトリクスをクエリに使用することで、過去の傾向を確認し、ストレージの使用量とアクティビティの違いを時系列で比較することができます。

すべての S3 ストレージレンズメトリクスは 15 か月間保持されます。ただし、メトリクスは特定の期間のクエリでのみ使用できます。これは、[選択したメトリクスの種類によって異なります](#storage_lens_basics_metrics_selection)。この期間は変更できません。無料のメトリクスは 14 日間、アドバンストメトリクスは 15 か月間のクエリで利用可能です。

### メトリクスのカテゴリ
<a name="storage_lens_basics_metrics_types"></a>

無料層とアドバンスト層で、S3 ストレージレンズメトリクスはコストの最適化やデータ保護などの主要なユースケースに合わせてカテゴリに分類されます。無料のメトリクスには、概要、コスト最適化、データ保護、アクセス管理、パフォーマンス、イベントメトリクスが含まれます。高度なメトリクスにアップグレードすると、追加のコスト最適化とデータ保護メトリクスを有効にして、S3 ストレージのコストをさらに削減し、データ保護を確実にできます。また、アクティビティメトリクスと詳細なステータスコードメトリクスを有効にして、アプリケーションワークロードのパフォーマンスを向上させために使用することもできます。

次のリストは、すべての無料および高度なメトリクスのカテゴリを示しています。各カテゴリに含まれる個々のメトリクスの完全なリストについては、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

**サマリーメトリクス**  
サマリーメトリクスは、ストレージの合計バイト数やオブジェクト数など、S3 ストレージに関する一般的な情報を提供します。

**コスト最適化メトリクス**  
コスト最適化メトリクスは、ストレージコストの管理と最適化に役立つインサイトを提供します。例えば、7 日以上経過した不完全なマルチパートアップロードを特定できます。

高度なメトリクスにより、高度なコスト最適化メトリクスを有効にできます。これらのメトリクスには、バケットごとの有効期限と移行 S3 ライフサイクルルール数を取得するために使用できる S3 ライフサイクルルールカウントメトリクスが含まれています。

**データ保護メトリクス**  
データ保護メトリクスは、暗号化や S3 バージョニングなどのデータ保護機能に関するインサイトを提供します。これらのメトリクスを使用して、データ保護のベストプラクティスに従っていないバケットを特定できます。例えば、デフォルトの暗号化に AWS Key Management Service キー (SSE-KMS) を使用していないバケットや、S3 バージョニングを使用していないバケットを特定できます。

高度なメトリクスにより、高度なデータ保護メトリクスを有効にできます。これらのメトリクスには、バケットごとのレプリケーションルール数メトリクスが含まれます。

**アクセス管理メトリクス**  
アクセス管理メトリクスは、S3 オブジェクト所有権に関するインサイトを提供します。これらのメトリクスを使用して、バケットが使用しているオブジェクト所有権設定を確認できます。

**イベントメトリクス**  
イベントメトリクスは、S3 イベント通知に関するインサイトを提供します。イベントメトリクスでは、どのバケットに S3 イベント通知が設定されているかを確認できます。

**パフォーマンスメトリクス**  
パフォーマンスメトリクスは、S3 Transfer Acceleration のインサイトを提供します。パフォーマンスメトリクスでは、どのバケットで Transfer Acceleration が有効になっているかを確認できます。

**アクティビティメトリクス (アドバイスト)**  
ダッシュボードを **[アドバンスト階層]** にアップグレードすると、アクティビティメトリクスを有効にできます。アクティビティメトリクスは、ストレージがどのようにリクエストされたか (例えば、ALL リクエスト、GET リクエスト、PUT リクエストなど)、アップロードまたはダウンロードされたバイト数、エラーなどに関する詳細を提供します。

プレフィックスレベルのアクティビティメトリクスを使用すると、使用頻度の低いプレフィックスを特定できるため、[S3 ライフサイクルを使用してより最適なストレージクラスに移行できます](lifecycle-transition-general-considerations.md)。

**詳細なステータスコードメトリクス (アドバンスト)**  
ダッシュボードを **[アドバンスト階層]** にアップグレードすると、詳細なステータスコードメトリクスを有効にできます。詳細なステータスコードメトリクスにより、403 Forbidden や 503 Service Unavailable などの HTTP ステータスコードに関するインサイトが得られ、アクセスやパフォーマンスの問題のトラブルシューティングに使用できます。例えば、**403 Forbidden エラー数**メトリクスを見ると、適切なアクセス権限が適用されていない状態でバケットにアクセスしているワークロードを特定できます。

プレフィックスレベルの詳細なステータスコードメトリクスを使用すると、プレフィックスごとの HTTP ステータスコードの発生に関する理解を深めることができます。例えば、503 エラーカウントメトリクスを使用すると、データインジェスト中にスロットリングリクエストを受信したプレフィックスを特定できます。

**[Advanced cost optimization metrics] (高度なコスト最適化メトリクス)**  
高度なコスト最適化メトリクスは、S3 ライフサイクル管理設定に関する詳細なインサイトを提供し、自動データ移行と削除を通じてストレージコストを最適化するのに役立ちます。これらのメトリクスは、さまざまなライフサイクルルールタイプで設定されたライフサイクルルールの数を追跡します。これらのメトリクスを使用して、バケット全体で包括的なライフサイクルルールの適用範囲を確保し、自動データ管理を通じて追加のコスト最適化戦略を実装する機会を特定できます。

**[Advanced data protection metrics] (高度なデータ保護メトリクス)**  
高度なデータ保護メトリクスは、レプリケーションルールの数、SSE-KMS 暗号化の使用状況、サポートされていない署名や TLS リクエストなどのセキュリティの脆弱性に関するインサイトを提供することで、データを保護するのに役立ちます。(**注意:** レプリケーションルール数のメトリクスはプレフィックスでは使用できません)。

この可視性により、適切なデータの冗長性を確保し、暗号化コンプライアンスを検証し、古いプロトコルによるセキュリティリスクを特定し、レプリケーションの設定ミスをトラブルシューティングし、組織、アカウント、バケットレベルで堅牢なデータ保護戦略を維持できます。

**高度なパフォーマンスメトリクス**  
高度なパフォーマンスメトリクスは、アプリケーションが S3 のデータとどのようにやり取りするかを明らかにし、非効率的な I/O パターン、クロスリージョンアクセス、一意のオブジェクトアクセス数などのアプリケーションパフォーマンスを最適化する機会を特定するのに役立ちます。ストレージレンズの高度なパフォーマンスメトリクスにより、高価なカスタムモニタリングツールが不要になり、お客様は S3 ベストプラクティスをより効果的に実装できます。特に、機械学習トレーニング、データ分析、その他の高性能コンピューティングワークロードなどのパフォーマンス重視のアプリケーションにメリットがあります。

### 推奨事項
<a name="storage_lens_basics_recommendations"></a>

S3 ストレージレンズでは、ストレージの最適化に役立つ自動化された推奨事項が提供されます。それぞれの推奨事項は、関連のあるメトリクスとともに、文脈に応じた形で S3 ストレージレンズダッシュボード上に表示されます。履歴データは、推奨事項の対象になりません。推奨事項は、最近に発生した事象に関連しています。推奨事項は、関連性が存在する場合にのみ表示されます。

S3 ストレージレンズの推奨事項は、次のような形式で構成されます。
+ **提案**

  提案は、ストレージとアクティビティでのトレンドに関する注意を促します。この場合、ストレージコストの最適化や、データ保護のベストプラクティスを実施できる可能性があります。*Amazon S3 ユーザーガイド*で、この提案に関するトピックを参照できます。同時に、S3 Storage Lens ダッシュボードから特定のリージョン、バケット、またはプレフィックスにドリルダウンすることができます。
+ **コールアウト**

  コールアウトは、ストレージおよびアクティビティに関し、一定期間に発生して関心を向けるべき異常を通知するための推奨事項です。これらの結果には、さらなる注意や監視が必要となる場合があります。
  + **外れ値のコールアウト**

    S3 ストレージレンズでは、最近の 30 日間の傾向に基づいて判断した、外れ値のメトリクスに関するコールアウトが利用できます。外れ値は、*Z-score* とも呼ばれる標準スコアを使用して算出されています。このスコアでは、当日のメトリクスが、同じメトリクスの直近 30 日間の平均から減算されます。次に、当日のメトリクスが、同じメトリクスの直近 30 日間の標準偏差により除算されます。結果として得られるスコアは、通常 -3～\$13 の間の値となります。この数値は、当該日のメトリクスの、平均値からの標準偏差を表しています。

    S3 ストレージレンズでは、スコアが 2 から -2 の範囲を上下に超えるメトリクスは外れ値と見なされます。理由は、この値が正規分布データの 95% よりも高い、あるいは低くなるためです。
  + **顕著な変化についてのコールアウト**

    顕著な変化についてのコールアウトは、変化する頻度が低いことが想定されているメトリクスに対し適用されます。このため、この値の計算では、外れ値の計算よりも高い感度が設定されます。この感度には通常、前日、前週、または前月に比べて \$1/-20% の範囲が指定されます。

    **ストレージの使用状況とアクティビティに関するコールアウトへの対応** – 顕著な変化についてのコールアウトを受け取った場合でも、必ずしも問題が存在することにはなりません。コールアウトは、ストレージで予定された変更の結果である可能性もあります。たとえば、多数の新しいオブジェクトの追加や多数のオブジェクトの削除を最近行っていたり、それと同様の計画的な変更を行ったりした場合など、このコールアウトの原因となり得ます。

    ダッシュボード上に、顕著な変化についてのコールアウトが表示される場合は、それを記録した上で、その原因が、最近の状況によって説明できるかどうかを確認します。原因が見つからない場合は、S3 ストレージレンズダッシュボードを使用して詳細をドリルダウンしながら、変動要因となっている特定のリージョン、バケット、またはプレフィックスを調査します。
+ **リマインダー**

  リマインダーにより、Amazon S3 の動作についてのインサイトが提供されます。リマインダーは、ストレージコストの削減や、データ保護のベストプラクティスの適用のための S3 の機能の使用方法について、詳しく知るために利用できます。

### メトリクスの選択
<a name="storage_lens_basics_metrics_selection"></a>

S3 ストレージレンズのダッシュボードとエクスポートでは、メトリクスを、*無料階層*と*アドバンスト階層*という 2 種類から選択できます。
+ **Free ティア**

  S3 ストレージレンズの無料のメトリクスは、すべてのダッシュボードと設定で使用できます。無料のメトリクスには、アカウント内のバケットやオブジェクトの数など、ストレージに関連するメトリクスが含まれています。無料のメトリクスには、ストレージが S3 のベストプラクティスに従って設定されているかどうかを調べるために使用できるユースケースベースのメトリクス (コスト最適化やデータ保護メトリクスなど) も含まれています。すべての無料階層のメトリクスは毎日収集され、S3 汎用バケット (CSV または Parquet 形式) または S3 テーブルバケット (Parquet 形式のみ) にエクスポートできます。データは、Amazon S3 コンソールで 14 日間クエリに使用できます。無料のメトリクスについては、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。
+ **アドバンスト階層**

  S3 ストレージレンズでは、すべてのダッシュボードと構成に対して無料のメトリクスを提供していますが、さらに、高度なメトリクスにアップグレードできるオプションも用意されています。追加の変更が適用されます。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)」を参照してください。

  アドバンスト階層のメトリクスには、無料のメトリクスのすべてのメトリクスに加えて、高度なデータ保護メトリクス、高度なコスト最適化メトリクス、アクティビティメトリクス、詳細なステータスコードのメトリクスなどの追加のメトリクスが含まれています。また、アドバンスト階層のメトリクスは、ストレージの最適化に役立つ推奨事項も提供します。それぞれの推奨事項は、関連するメトリクスとともに、文脈に応じた形でダッシュボード上に表示されます。

  アドバンスト階層には以下の機能があります。
  + **高度なメトリクスのカテゴリ** — 追加のメトリクスを生成します。アドバンストメトリクスカテゴリの完全なリストについては、「[メトリクスのカテゴリ](#storage_lens_basics_metrics_types)」を参照してください。メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。
  + **Amazon CloudWatch パブリッシング** – S3 Storage Lens メトリクスを CloudWatch に公開して、CloudWatch [ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用の健全性を一元的に把握できます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch API オペレーションと機能を使用して、S3 ストレージレンズメトリクスをモニタリングして対処することができます。詳細については、「[CloudWatch で S3 Storage Lens のメトリクスをモニタリング](storage_lens_view_metrics_cloudwatch.md)」を参照してください。
  + **デフォルトのメトリクスレポート** – S3 ストレージレンズのデフォルトのメトリクスレポートには、AWS アカウント全体のオブジェクトストレージの使用状況とアクティビティの傾向に関する上位プレフィックスの無料のメトリクスとプレフィックス集約機能が含まれています。デフォルトのメトリクスレポートを使用すると、標準 S3 ストレージコストを超える追加料金なしでコスト最適化の機会を特定できます。
  + **拡張プレフィックスメトリクスレポート** – ストレージレンズ拡張プレフィックスメトリクスレポートは、S3 ストレージデータ全体で包括的なプレフィックスレベルの分析を提供し、バケットあたり最大数十億のプレフィックスをサポートするようにカバレッジを拡張します。
  + **追加のメトリクス集約**
    + **プレフィックス集約** – [プレフィックス](using-prefixes.md)レベルでメトリクスを集約します。この設定では、ストレージレンズダッシュボードに表示されるデフォルトのメトリクスレポートの一部として集計されたプレフィックスを指定します。プレフィックスレベルで適用できるメトリクスは、バケットレベルの設定とルールカウントメトリクスを除き、**[プレフィックス集約]**で利用できることに注意してください。プレフィックスレベルのメトリクスは、拡張されたプレフィックスメトリクスのエクスポートには適用されず、CloudWatch に発行されません。
    + **Storage Lens グループ集約** — Storage Lens グループレベルでメトリクスを収集します。[アドバンスト階層のメトリクス] と [ストレージレンズグループ集約] を有効にすると、どのストレージレンズグループをストレージレンズダッシュボードに含めたり除外したりするかを指定できます。 (少なくとも 1 つの Storage Lens グループを指定する必要があります)。指定する Storage Lens グループは、ダッシュボードアカウントの指定されたホームリージョン内にも存在している必要があります。Storage Lens グループレベルのメトリクスは CloudWatch に公開されません。

  すべてのアドバンストメトリクスは毎日収集されます。データは、Amazon S3 コンソールで最長 15 か月間クエリに使用できます。S3 ストレージレンズによって集計されるストレージメトリクスの詳細については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

### プレフィックス区切り文字
<a name="storage_lens_basics_prefix_delimiter"></a>

プレフィックス区切り記号は、オブジェクトキー内の階層レベルを分離することで、ストレージレンズがプレフィックスの深さをカウントする方法を決定します。プレフィックス内の各レベルを示すために指定できるのは 1 文字のみです。プレフィックス区切り文字が未定義の場合、Amazon S3 はデフォルトの区切り文字として「`/`」を使用します。

**注記**  
API を使用してストレージレンズダッシュボード設定を更新する場合、*区切り文字*と更新された*プレフィックス区切り文字*を同じ方法で定義する必要があります。そうしないと、エラーが発生します。区切り文字は、デフォルトのメトリクスレポートにエクスポートされるプレフィックスレベルのメトリクスにのみ適用されます。プレフィックス区切り文字は、展開されたプレフィックスメトリクスレポートにエクスポートされるすべてのプレフィックスに適用されます。

### S3 ストレージレンズと AWS Organizations
<a name="storage_lens_basics_organizations"></a>

AWS Organizations は、1 つの組織階層に属する、すべての AWS アカウント を集約するための AWS のサービス です。Amazon S3 ストレージレンズを AWS Organizations と連携させることで、Amazon S3 ストレージ全体でのオブジェクトによるストレージとそのアクティビティを、単一的なビューで表示することができます。

詳細については、「[AWS Organizations での Amazon S3 ストレージレンズの使用S3 ストレージレンズのための信頼されたアクセスを有効にする](storage_lens_with_organizations.md)」を参照してください。
+ **信頼されたアクセス**

  組織内のすべてのメンバーアカウントから、ストレージのメトリクスと使用状況に関するデータを集約するためには、組織の管理アカウントを使用して、S3 ストレージレンズの信頼されたアクセスを有効にする必要があります。その後、管理アカウントを直接使用するか、組織内の他のアカウントに管理者アクセス権限を委任すること (委任管理者) により、組織で使用するダッシュボードまたはエクスポートを作成できるようになります。

  S3 ストレージレンズの信頼できるアクセスはいつでも無効にできます。これにより S3 ストレージレンズは、組織に関するメトリクスの集約を停止します。
+ **委任管理者**

  組織の S3 ストレージレンズのダッシュボードとメトリクスの作成は、AWS Organizations の管理アカウントを使用するか、組織内の他のアカウントに*委任管理者*権限を付与することで実行できます。委任管理者の登録はいつでも解除できます。また、委任管理者の登録を解除すると、委任管理者によって作成されたすべての組織レベルのダッシュボードで、ストレージのメトリクスの新たな集計が自動的に停止されます。

詳細については、*AWS Organizations ユーザーガイド*の 「[Amazon S3 ストレージレンズと AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-s3lens.html)」 を参照してください。

#### Amazon S3 ストレージレンズでのサービスにリンクされたロール
<a name="storage_lens_basics_service_linked_role"></a>

AWS Organizations での信頼されたアクセスに加えて、Amazon S3 ストレージレンズでは、AWS Identity and Access Management (IAM) の、サービスにリンクされたロールも使用できます。サービスにリンクされたロールは S3 ストレージレンズに直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、S3 Storage Lens によって事前定義されています。このロールには、組織内のメンバーアカウントからストレージとアクティビティに関する日次のメトリクスを収集するために必要な、すべてのアクセス権限が含まれています。

詳細については、「[Amazon S3 ストレージレンズでのサービスにリンクされたロールの使用](using-service-linked-roles.md)」を参照してください。

# Amazon S3 Storage Lens のメトリクスに関する用語集
<a name="storage_lens_metrics_glossary"></a>

Amazon S3 ストレージレンズメトリクスの用語集には、S3 Storage Lensの無料および高度なメトリクスの完全なリストが提供されています。

S3 ストレージレンズでは、すべてのダッシュボードと構成に対して無料のメトリクスを提供していますが、さらに、高度なメトリクスにアップグレードできるオプションも用意されています。
+ **無料のメトリクス**には、アカウント内のバケットやオブジェクトの数など、ストレージ使用状況に関連するメトリクスが含まれています。無料のメトリクスには、コスト最適化メトリクスやデータ保護メトリクスなどのユースケースに基づくメトリクスも含まれています。すべての無料メトリクスは毎日収集され、データは最長 14 日間のクエリに使用できます。
+ **高度なメトリクス**には、無料のメトリクスに含まれるすべてのメトリクスに加えて、高度なパフォーマンス、高度なデータ保護、高度なコスト最適化メトリクスなどの追加のメトリクスが含まれます。高度なメトリクスには、アクティビティメトリクスや詳細なステータスコードメトリクスなど、その他のメトリクスカテゴリも含まれます。高度なメトリクスのデータは 15 か月間クエリで使用できます。

  S3 Storage Lens で高度な推奨のメトリクスを使用すると、追加料金が発生します。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。高度なメトリクスとレコメンデーションの詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。
**注記**  
Storage Lens グループでは、無料利用枠のストレージメトリクスしか使用できません。高度なメトリクスは、Storage Lens グループレベルで利用できません。

**メトリクス名**  
次の表の**メトリクス名**列には、S3 コンソールの各 S3 ストレージレンズの名前が表示されます。**CloudWatch とエクスポート**列には、Amazon CloudWatch の各メトリクスの名前と、S3 ストレージレンズダッシュボードで設定できるメトリクスエクスポートファイルが表示されます。

**派生メトリクスの式**  
派生メトリクスは、メトリクスのエクスポートおよび CloudWatch 公開オプションでは使用できません。ただし、**派生メトリクスの式**列に表示されているメトリクス式を使用してコンピューティングすることは可能です。

**Amazon S3 ストレージレンズメトリクスの単位倍数プレフィックス記号 (K、M、G など) の解釈**  
Amazon S3 ストレージレンズメトリクスの単位倍数はプレフィックス記号で書き込まれます。これらのプレフィックス記号は、国際度量衡局 (BIPM) によって標準化されている国際単位系 (SI) 記号と一致しています。また、これらの記号は、測定単位の統一コード (UCUM) でも使用されています。詳細については、「[SI プレフィックス記号の一覧](https://www.bipm.org/en/measurement-units/si-prefixes)」を参照してください。

**注記**  
S3 ストレージバイトの測定単位はバイナリギガバイト (GB) で、1 GB は 230 バイト、1 TB は 240 バイト、1 PB は 250 バイトです。この測定単位は、国際電気標準会 (IEC) で定義されているように、ギビバイト (GiB) とも呼ばれます。
ライフサイクル設定に基づいて、オブジェクトが有効期限に達すると、存続期間が終了したオブジェクトは自動的に Amazon S3 削除キューに追加され、非同期的に削除されます。そのため、有効期限が切れる日と Amazon S3 がオブジェクトを削除する日との間に遅延が生じることがあります。S3 Storage Lens には、有効期限が切れても削除されていないオブジェクトのメトリクススは含まれません。S3 ライフサイクルの有効期限アクションの詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。
Amazon S3 はすべてのオブジェクトのメタデータ (オブジェクトキー、タイムスタンプなど) を保存するため、0KB のデータファイルでも最小限のストレージが必要です。そのため、0KB のオブジェクトは S3 ストレージレンズの (0KB～128KB] のサイズ範囲に表示されます。
S3 ストレージレンズは、クロスリージョンデータ転送のベストエフォート追跡を提供し、主に EC2 インスタンスなどのカスタマーマネージドリソースからのリクエストに焦点を当てています。AWS PrivateLink または特定のリージョン内リクエストを通じて行われたリクエストは分類されません。

 次の表は、S3 ストレージレンズメトリクスの用語集を示しています。


| メトリクス名 | CloudWatch とエクスポート | 説明 | ティア 1 | カテゴリ2 | 派生 | 派生メトリクスの式 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 合計ストレージ | StorageBytes | 不完全なマルチパートアップロード、オブジェクトメタデータ、削除マーカーを含む、合計ストレージ | 空き | 概要 | N | - | 
| Object count (オブジェクト数) | ObjectCount | オブジェクトの総数 | 空き | 概要 | N | - | 
| 平均のオブジェクトサイズ | - | 平均のオブジェクトサイズ | 空き | 概要 | Y | sum(StorageBytes)/sum(ObjectCount) | 
| Active buckets (アクティブなバケット) | - | ストレージが 0 バイトを超えるバケットの数 | 空き | 概要 | Y | - | 
| バケット | - | バケットの数 | 空き | 概要 | Y | - | 
| アカウント | - | ストレージがスコープ内にあるアカウントの数 | 空き | 概要 | Y | - | 
| Current version bytes (現在のバージョンのバイト数) | CurrentVersionStorageBytes | オブジェクトの現在のバージョンのバイト数 | 空き | コスト最適化 | N | - | 
| % Current Version Bytes (現在のバージョンのバイト数) | - | オブジェクトの現在のバージョンであるスコープ内のバイトの割合 | 空き | コスト最適化 | Y | sum(CurrentVersionStorageBytes)/sum(StorageBytes) | 
| Current version object count (現在のバージョンのオブジェクト数) | 現在のバージョンのオブジェクト数 | 現在のバージョンオブジェクトの数 | 空き | データ保護 | N | - | 
| % current version objects (現在のバージョンのオブジェクト) | - | スコープ内のオブジェクトのうち、現在のバージョンであるオブジェクトの割合 | 空き | コスト最適化 | Y | sum(CurrentVersionObjectCount)/sum(ObjectCount) | 
| Noncurrent version bytes (現在のバージョンではないバイト数) | 現在のバージョンではないストレージバイト数 | 現在のバージョンではないバイト数 | 空き | コスト最適化 | N | - | 
| % noncurrent version bytes (現在のバージョンではないバイト数) | - | スコープ内で、現在のバージョンではないバイトの割合 | 空き | コスト最適化 | Y | sum(NonCurrentVersionStorageBytes)/sum(StorageBytes) | 
| Noncurrent version object count (現在のバージョンではないオブジェクト数) | 現在のバージョンではないオブジェクト数 | オブジェクトの以前のバージョンの数 | 空き | コスト最適化 | N | - | 
| % noncurrent version objects (現在のバージョンではないオブジェクト数) | - | スコープ内のオブジェクトのうち、現在のバージョンではないオブジェクトの割合 | 空き | コスト最適化 | Y | sum(NonCurrentVersionObjectCount)/sum(ObjectCount) | 
| Delete marker bytes (削除マーカーのバイト数) | DeleteMarkerStorageBytes | 削除マーカーとなるスコープ内のバイト数 | 空き | コスト最適化 | N | - | 
| % delete marker bytes (削除マーカーバイト数) | - | 削除マーカーであるバイト数の、スコープ内での割合 | 空き | コスト最適化 | Y | sum(DeleteMarkerStorageBytes)/sum(StorageBytes) | 
| Delete marker object count (削除マーカーオブジェクト数) | DeleteMarkerObjectCount 削除マーカーオブジェクト数 | 削除マーカーがあるオブジェクトの総数 | 空き | コスト最適化 | N | - | 
| % delete marker objects (削除マーカーオブジェクト) | - | 削除マーカーのあるオブジェクトの、スコープ内での割合 | 空き | コスト最適化 | Y | sum(DeleteMarkerObjectCount)/sum(ObjectCount) | 
| Incomplete multipart upload bytes (未完了のマルチパートアップロードのバイト数) | 不完全なマルチパートアップロードストレージバイト数 | スコープ内で未完了のマルチパートアップロードの合計バイト数 | 空き | コスト最適化 | N | - | 
| % incomplete multipart upload bytes (未完了のマルチパートアップロードのバイト数) | - | 未完了のマルチパートアップロードの結果であるバイト数の、スコープ内での割合 | 空き | コスト最適化 | Y | sum(IncompleteMultipartUploadStorageBytes)/sum(StorageBytes) | 
| Incomplete multipart upload object count (未完了のマルチパートアップロードのオブジェクト数) | MultipartUploadObjectCount 不完全なマルチパートアップロードストレージオブジェクト数 | スコープ内でマルチパートアップロードが不完全であるオブジェクトの数 | 空き | コスト最適化 | N | - | 
| % incomplete multipart upload objects (未完了のマルチパートアップロードオブジェクト) | - | マルチパートアップロードが不完全であるオブジェクト数の、スコープ内での割合 | 空き | コスト最適化 | Y | sum(IncompleteMultipartUploadObjectCount)/sum(ObjectCount) | 
| Incomplete multipart upload storage bytes greater than 7 days old (7 日以上経過した未完了のマルチパートアップロードストレージバイト数) | IncompleteMPUStorageBytesOlderThan7Days | 7 日以上経過した未完了のマルチパートアップロードのスコープ内の合計バイト数 | 空き | コスト最適化 | N | - | 
| % incomplete multipart upload storage bytes greater than 7 days old (7 日以上経過した未完了のマルチパートアップロードストレージバイト) | - | 7 日以上経過した未完了のマルチパートアップロードのバイトの割合 | 空き | コスト最適化 | Y | sum(IncompleteMPUStorageBytesOlderThan7Days)/sum(StorageBytes) | 
| Incomplete multipart upload object count greater than 7 days old (7 日以上経過した未完了のマルチパートアップロードオブジェクト数の割合) | IncompleteMPUObjectCountOlderThan7Days | 7 日以上経過した未完了のマルチパートアップロードであるオブジェクトの数 | 空き | コスト最適化 | N | - | 
| % incomplete multipart upload object count greater than 7 days old (7 日以上経過した未完了のマルチパートアップロードオブジェクト数) | - | 7 日以上経過した未完了のマルチパートアップロードであるオブジェクトの割合 | 空き | コスト最適化 | Y | sum(IncompleteMPUObjectCountOlderThan7Days)/sum(ObjectCount) | 
| Transition lifecycle rule count (移行ライフサイクルルールの数) | TransitionLifecycleRuleCount | オブジェクトを別のストレージクラスに移行するライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average transition lifecycle rules per bucket (バケットあたりの平均移行ライフサイクルルール) | - | オブジェクトを別のストレージクラスに移行するライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(TransitionLifecycleRuleCount)/sum(DistinctNumberOfBuckets) | 
| Expiration lifecycle rule count (有効期限切れのライフサイクルルールの数) | ExpirationLifecycleRuleCount | オブジェクトを期限切れにするライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average expiration lifecycle rules per bucket (バケットあたりの平均有効期限ライフサイクルルール) | - | オブジェクトを期限切れにするライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(ExpirationLifecycleRuleCount)/sum(DistinctNumberOfBuckets) | 
| Noncurrent version transition lifecycle rule count (最新バージョン移行ライフサイクルルール数) | NoncurrentVersionTransitionLifecycleRuleCount | 最新でないオブジェクトバージョンを別のストレージクラスに移行するためのライフサイクルルールの数 | アドバンスト | コスト最適化 | N |  | 
| Average noncurrent version transition lifecycle rules per bucket (バケットごとの非最新バージョン移行ライフサイクルルールの平均数) | - | 最新でないオブジェクトバージョンを別のストレージクラスに移行するためのライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(NoncurrentVersionTransitionLifecycleRuleCount)/sum(DistinctNumberOfBuckets)  | 
| Noncurrent version expiration lifecycle rule count (最新バージョンの有効期限切れライフサイクルルール数) | NoncurrentVersionExpirationLifecycleRuleCount | 最新でないオブジェクトバージョンを期限切れにするライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average noncurrent version expiration lifecycle rules per bucket (バケットごとの最新でないバージョンの有効期限ライフサイクルルールの平均数) | - | 最新でないオブジェクトバージョンを期限切れにするライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(NoncurrentVersionExpirationLifecycleRuleCount)/sum(DistinctNumberOfBuckets)  | 
| Abort incomplete multipart upload lifecycle rule count (未完了のマルチパートアップロードのライフサイクルルール数の中止 | AbortIncompleteMPULifecycleRuleCount | 未完了のマルチパートアップロードを削除するライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average abort incomplete multipart upload lifecycle rules per bucket (バケットあたりの未完了のマルチパートアップロードライフサイクルルールの平均中止数) | - | 未完了のマルチパートアップロードを削除するライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(AbortIncompleteMPULifecycleRuleCount)/sum(DistinctNumberOfBuckets) | 
| Expired object delete marker lifecycle rule count (期限切れオブジェクト削除マーカーのライフサイクルルール数) | ExpiredObjectDeleteMarkerLifecycleRuleCount | 期限切れオブジェクト削除マーカーを削除するライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average expired object delete marker lifecycle rules per bucket (バケットあたりの期限切れオブジェクト削除マーカーのライフサイクルルールの平均値) | - | 期限切れオブジェクト削除マーカーを削除するライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(ExpiredObjectDeleteMarkerLifecycleRuleCount)/sum(DistinctNumberOfBuckets)  | 
| Total lifecycle rule count (ライフサイクルルールの総数) | TotalLifecycleRuleCount | ライフサイクルルールの数 | アドバンスト | コスト最適化 | N | - | 
| Average lifecycle rule count per bucket (バケットあたりの平均ライフサイクルルール数) | - | ライフサイクルルールの平均数 | アドバンスト | コスト最適化 | Y | sum(TotalLifecycleRuleCount)/sum(DistinctNumberOfBuckets) | 
| Encrypted bytes (暗号化されたバイト数) | 暗号化ストレージバイト数 | 暗号化されたバイトの数 | 空き | データ保護 | N | - | 
| % encrypted bytes (暗号化されたバイト数) | - | 暗号化された合計バイト数の割合 | 空き | データ保護 | Y | sum(EncryptedObjectCount)/sum(StorageBytes) | 
| Encrypted object count (暗号化されたオブジェクトの数) | EncryptedObjectCount | 暗号化されたオブジェクトの数 | 空き | データ保護 | N | - | 
| % encrypted objects (暗号化されたオブジェクト数) | - | 暗号化されたオブジェクトの割合 | 空き | データ保護 | Y | sum(EncryptedStorageBytes)/sum(ObjectCount) | 
| Unencrypted bytes (暗号化されていないバイト数) | UnencryptedStorageBytes | 暗号化されていないバイト数 | 空き | データ保護 | Y | sum(StorageBytes) - sum(EncryptedStorageBytes) | 
| % unencrypted bytes (暗号化されていないバイト数) | - | 暗号化されていないバイト数の割合 | 空き | データ保護 | Y | sum(UnencryptedStorageBytes)/sum(StorageBytes) | 
| Unencrypted object count (暗号化されていないオブジェクト数) | UnencryptedObjectCount | 暗号化されていないオブジェクトの数 | 空き | データ保護 | Y | sum(ObjectCount) - sum(EncryptedObjectCount) | 
| % unencrypted objects (暗号化されていないオブジェクト数) | - | 暗号化されていないオブジェクトの割合 | 空き | データ保護 | Y | sum(UnencryptedObjectCount)/sum(ObjectCount) | 
| Replicated storage bytes source (レプリケートされたストレージバイト数ソース) | ReplicatedStorageBytesSource | ソースバケットからレプリケートされたバイト数 | 空き | データ保護 | N | - | 
| % replicated bytes source (レプリケートされたバイトソース) | - | ソースバケットからレプリケートされた合計バイト数の割合 | 空き | データ保護 | Y | sum(ReplicatedStorageBytesSource)/sum(StorageBytes) | 
| Replicated object count source (レプリケートされたオブジェクト数のソース) | ReplicatedObjectCountSource | ソースバケットからレプリケートされたオブジェクトの数 | 空き | データ保護 | N | - | 
| % replicated objects source (レプリケートされたオブジェクトソース) | - | ソースバケットからレプリケートされた全オブジェクト数の割合 | 空き | データ保護 | Y | sum(ReplicatedStorageObjectCount)/sum(ObjectCount) | 
| レプリケートされたストレージバイトの送信先 | レプリケートされたストレージバイト数 | 送信先バケットにレプリケートされたバイト数 | 空き | データ保護 | N | - | 
| % replicated bytes destination (レプリケートされるバイト数送信先) | - | 送信先バケットにレプリケートされた合計バイト数の割合 | 空き | データ保護 | Y | sum(ReplicatedStorageBytesSource)/sum(StorageBytes) | 
| Replicated object count destination (レプリケートされたオブジェクト数の送信先) | レプリケートされたオブジェクト数 | 送信先バケットにレプリケートされたオブジェクトの数 | 空き | データ保護 | N | - | 
| % replicated objects destination (レプリケートされたオブジェクトの送信先) | - | 送信先バケットにレプリケートされた全オブジェクト数の割合 | 空き | データ保護 | Y | sum(ReplicatedObjectCount)/sum(ObjectCount) | 
| Object Lock bytes (オブジェクトロックバイト数) | オブジェクトロックが有効なストレージバイト数 | Object Lock が有効なストレージバイト数 | 空き | データ保護 | N | sum(UnencryptedStorageBytes)/sum(ObjectLockEnabledStorageCount)-sum(ObjectLockEnabledStorageBytes) | 
| % Object Lock bytes (オブジェクトロックバイト数) | - | Object Lock が有効なストレージバイトの割合 | 空き | データ保護 | Y | sum(ObjectLockEnabledStorageBytes)/sum(StorageBytes) | 
| Object Lock object count (オブジェクトロックオブジェクト数) | 不完全なマルチパートアップロードストレージオブジェクト数 | Object Lock オブジェクトの数 | 空き | データ保護 | N | - | 
| % Object Lock objects (オブジェクトロックオブジェクト数) | - | Object Lock が有効になっている全オブジェクト数の割合 | 空き | データ保護 | Y |  sum(ObjectLockEnabledObjectCount)/sum(ObjectCount) | 
| Versioning-enabled bucket count (バージョニングが有効なバケット数) | VersioningEnabledBucketCount | S3 バージョニングが有効になっているバケットの数 | 空き | データ保護 | N | - | 
| % versioning-enabled buckets (バージョニングが有効なバケット) | - | S3 バージョニングが有効になっているバケットの割合 | 空き | データ保護 | Y | sum(VersioningEnabledBucketCount)/sum(DistinctNumberOfBuckets) | 
| MFA delete-enabled bucket count (MFA Delete が有効なバケット数) | MFADeleteEnabledBucketCount | MFA (多要素認証) Delete が有効になっているバケット数 | 空き | データ保護 | N | - | 
| % MFA delete-enabled buckets (MFA Delete が有効化されたバケット) | - | MFA (多要素認証) Delete が有効化されたバケットの割合 | 空き | データ保護 | Y | sum(MFADeleteEnabledBucketCount)/sum(DistinctNumberOfBuckets) | 
| SSE-KMS enabled bucket count (SSE-KMS が有効化されたバケット数) | SSEKMSEnabledBucketCount | デフォルトのバケット暗号化に AWS Key Management Service キーのサーバー側暗号化 (SSE-KMS) を使用しているバケット数 | 空き | データ保護 | N | - | 
| % SSE-KMS enabled buckets (SSE-KMS が有効化されたバケット) | - | デフォルトのバケット暗号化に SSE-KMS を使用しているバケットの割合 | 空き | データ保護 | Y | sum(SSEKMSEnabledBucketCount)/sum(DistinctNumberOfBuckets) | 
| All unsupported signature requests (サポートされていないすべての署名リクエスト) | AllUnsupportedSignatureRequests | サポートされていない AWS 署名バージョンを使用したリクエストの総数 | アドバンスト | データ保護 | N | - | 
| % all unsupported signature requests (サポートされていないすべての署名リクエスト) | - | サポートされていない AWS 署名バージョンを使用するリクエストの割合 | アドバンスト | データ保護 | Y | sum(AllUnsupportedSignatureRequests)/sum(AllRequests) | 
| All unsupported TLS requests (サポートされていないすべての TLS リクエスト) | AllUnsupportedTLSRequests | サポートされていない Transport Layer Security (TLS) を使用するリクエストの総数 | アドバンスト | データ保護 | N | - | 
| % all unsupported TLS requests (サポートされていないすべての TLS リクエスト) | - | サポートされていない TLS バージョンを使用するリクエストの割合 | アドバンスト | データ保護 | Y | sum(AllUnsupportedTLSRequests)/sum(AllRequests) | 
| All SSE-KMS requests (すべての SSE-KMS リクエスト) | AllSSEKMSRequests | SSE-KMS を指定したリクエストの総数 | アドバンスト | データ保護 | N | - | 
| % all SSE-KMS requests (すべての SSE-KMS リクエスト) | - | SSE-KMS を指定したリクエストの割合 | アドバンスト | データ保護 | Y | sum(AllSSEKMSRequests)/sum(AllRequests) | 
| Same-Region Replication rule count (同一リージョンレプリケーションルールの数) | SameRegionReplicationRuleCount | 同一リージョンレプリケーション (SRR) のレプリケーションルールの数 | アドバンスト | データ保護 | N | - | 
| Average Same-Region Replication rules per bucket (バケットあたりの同一リージョンレプリケーションルールの平均数) | - | SRR のレプリケーションルールの平均数 | アドバンスト | データ保護 | Y | sum(SameRegionReplicationRuleCount)/sum(DistinctNumberOfBuckets) | 
| Cross-Region Replication rule count (クロスリージョンレプリケーションルールの数) | CrossRegionReplicationRuleCount | クロスリージョンレプリケーション (CRR) のレプリケーションルールの数 | アドバンスト | データ保護 | N | - | 
| Average Cross-Region Replication rules per bucket (バケットあたりのクロスリージョンレプリケーションの平均数) | - | CRR のレプリケーションルールの平均数 | アドバンスト | データ保護 | Y | sum(CrossRegionReplicationRuleCount)/sum(DistinctNumberOfBuckets) | 
| Same-account replication rule count (同一アカウントレプリケーションルールの数) | SameAccountReplicationRuleCount | 同じアカウント内のレプリケーション用のレプリケーションルールの数 | アドバンスト | データ保護 | N | - | 
| Average same-account replication rules per bucket (バケットあたりの同一アカウントレプリケーションルール平均数) | - | 同じアカウント内のレプリケーション用のレプリケーションルールの平均数 | アドバンスト | データ保護 | Y | sum(SameAccountReplicationRuleCount)/sum(DistinctNumberOfBuckets) | 
| Cross-account replication rule count (クロスアカウントレプリケーションルールの数) | CrossAccountReplicationRuleCount | クロスアカウントレプリケーションのレプリケーションルールの数 | アドバンスト | データ保護 | N | - | 
| Average cross-account replication rules per bucket (バケットあたりのクロスアカウントレプリケーションルールの平均数) | - | クロスアカウントレプリケーションのレプリケーションルールの平均数 | アドバンスト | データ保護 | Y | sum(CrossAccountReplicationRuleCount)/sum(DistinctNumberOfBuckets) | 
| Invalid destination replication rule count (無効な送信先レプリケーションルールの数) | InvalidDestinationReplicationRuleCount | レプリケーション先が有効でないレプリケーションルールの数 | アドバンスト | データ保護 | N | - | 
| Average invalid destination replication rules per bucket (バケットあたりの無効な送信先レプリケーションルールの平均数) | - | レプリケーション先が有効でないレプリケーションルールの平均数 | アドバンスト | データ保護 | Y | sum(InvalidReplicationRuleCount)/sum(DistinctNumberOfBuckets) | 
| Total replication rule count (レプリケーションルールの総数) | - | Total replication rule count (レプリケーションルールの総数) | アドバンスト | データ保護 | Y | - | 
| Average replication rule count per bucket (バケットあたりの平均レプリケーションルール数) | - | レプリケーションルールの合計数の平均 | アドバンスト | データ保護 | Y | sum(all replication rule count metrics)/sum(DistinctNumberOfBuckets) | 
| Object Ownership bucket owner enforced bucket count (オブジェクトの所有権のバケット所有者強制バケット数) | ObjectOwnershipBucketOwnerEnforcedBucketCount | オブジェクトの所有権のバケット所有者強制設定を使用して、アクセスコントロールリスト (ACL) を無効にしたバケットの数 | 空き | アクセス管理 | N | - | 
| % Object Ownership bucket owner enforced buckets (オブジェクトの所有権のバケット所有者強制バケット) | - | オブジェクトの所有権のバケット所有者強制設定を使用して ACL を無効にしたバケットの割合 | 空き | アクセス管理 | Y | sum(ObjectOwnershipBucketOwnerEnforcedBucketCount)/sum(DistinctNumberOfBuckets)  | 
| Object Ownership bucket owner preferred bucket count (オブジェクトの所有権のバケット所有者の優先バケット数) | ObjectOwnershipBucketOwnerPreferredBucketCount | オブジェクトの所有権のバケット所有者優先設定を使用するバケットの数 | 空き | アクセス管理 | N | - | 
| % Object Ownership bucket owner preferred buckets (オブジェクトの所有権のバケット所有者優先バケット) | - | オブジェクトの所有権のバケット所有者優先設定を使用するバケットの割合 | 空き | アクセス管理 | Y | sum(ObjectOwnershipBucketOwnerPreferredBucketCount)/sum(DistinctNumberOfBuckets)  | 
| Object Ownership object writer bucket count (オブジェクトの所有権オブジェクトライターバケット数) | ObjectOwnershipObjectWriterBucketCount | オブジェクト所有権のオブジェクトライター設定を使用するバケットの数 | 空き | アクセス管理 | N | - | 
| % Object Ownership object writer buckets (オブジェクトの所有権のオブジェクトライターバケット) | - | オブジェクト所有権のオブジェクトライター設定を使用するバケットの割合 | 空き | アクセス管理 | Y | sum(ObjectOwnershipObjectWriterBucketCount)/sum(DistinctNumberOfBuckets) | 
| Transfer Acceleration enabled bucket count (Transfer Acceleration が有効化されたバケット数) | TransferAccelerationEnabledBucketCount | Transfer Acceleration が有効化されたバケットの数 | 空き | パフォーマンス | N | - | 
| % Transfer Acceleration enabled buckets (Transfer Acceleration が有効化されたバケット) | - | Transfer Acceleration が有効化されたバケットの割合 | 空き | パフォーマンス | Y | sum(TransferAccelerationEnabledBucketCount)/sum(DistinctNumberOfBuckets) | 
| Event Notification enabled bucket count (イベント通知が有効化されたバケット数) | EventNotificationEnabledBucketCount | イベント通知が有効化されたバケットの数 | 空き | Events | N |  | 
| % Event Notification enabled buckets (イベント通知が有効化されたバケット) | - | イベント通知が有効化されたバケットの割合 | 空き | Events | Y | sum(EventNotificationEnabledBucketCount)/sum(DistinctNumberOfBuckets) | 
| すべてのリクエスト | AllRequests |  作成されたリクエストの総数   | アドバンスト | アクティビティ | N | - | 
| ​リクエストの取得 | GetRequests |  作成された `GET` リクエストの総数  | アドバンスト | アクティビティ | N | - | 
| Put requests (Put リクエスト) | PutRequests |  作成された `PUT` リクエストの総数  | アドバンスト | アクティビティ | N | - | 
| Head requests (Head リクエスト) | HeadRequests | 作成された HEAD リクエストの数 | アドバンスト | アクティビティ | N | - | 
| Delete requests (Delete リクエスト) | DeleteRequests | 作成された DELETE リクエストの数 | アドバンスト | アクティビティ | N | - | 
| リクエストを一覧表示 | ListRequests | 作成された LIST リクエストの数 | アドバンスト | アクティビティ | N | - | 
| Post requests (Post リクエスト) | PostRequests | 作成された POST リクエストの数 | アドバンスト | アクティビティ | N | - | 
| Select requests (Select リクエスト) | SelectRequests | S3 Select リクエストの数 | アドバンスト | アクティビティ | N | - | 
| Select scanned bytes (スキャンされた Select バイト) | SelectScannedBytes | スキャンされた S3 Select バイトの数 | アドバンスト | アクティビティ | N | - | 
| Select returned bytes (返された Select バイト) | SelectReturnedBytes | 返された S3 Select バイトの数 | アドバンスト | アクティビティ | N | - | 
| ダウンロードされたバイト数 | BytesDownloaded | ダウンロードされたバイトの数 | アドバンスト | アクティビティ | N | - | 
| % retrieval rate (取得率) | - | ダウンロードされたバイト数の割合 | アドバンスト | アクティビティ | Y | sum(BytesDownloaded)/sum(StorageBytes) | 
| アップロードされたバイト数 | BytesUploaded | アップロード済みとなっているバイト数 | アドバンスト | アクティビティ | N | - | 
| % ingest ratio (取り込み率) | - | アップロード済みとなっているバイト数の割合 | アドバンスト | アクティビティ | Y | sum(BytesUploaded)/sum(StorageBytes) | 
| 4xx errors (4xx エラー) | 4xxErrors | HTTP 4xx ステータスコードの数 | アドバンスト | アクティビティ | N | - | 
| 5xx errors (5xx エラー) | 5xxErrors | HTTP 5xx ステータスコードの数 | アドバンスト | アクティビティ | N | - | 
| Total errors (エラー総数) | - | 4xx と 5xx のすべてのエラーを合計した数 | アドバンスト | アクティビティ | Y | sum(4xxErrors) \$1 sum(5xxErrors) | 
| % error rate (エラー率) | - |  4xx と 5xx のエラーの総数がリクエストの総数に占める割合  | アドバンスト | アクティビティ | Y | sum(TotalErrors)/sum(TotalRequests) | 
| 200 OK status count (200 OK ステータスの数) | 200OKStatusCount | 200 OK ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 200 OK status (200 OK ステータス) | - |  200 OK ステータスコードの総数がリクエストの総数に占める割合  | アドバンスト | 詳細なステータスコード | Y | sum(200OKStatusCount)/sum(AllRequests) | 
| 206 Partial Content status count (206 部分コンテンツステータスの数) | 206PartialContentStatusCount | 206 Partial Content ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 206 Partial Content status (206 部分コンテンツステータス) | - | 206 Partial Content ステータスコードの数がリクエストの総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(206PartialContentStatusCount)/sum(AllRequests) | 
| 400 Bad Request error count (400 Bad Request エラー数) |  400BadRequestErrorCount  | 400 Bad Request ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 400 Bad Request errors (400 Bad Request エラー) | - | 400 Bad Request ステータスコードの数がリクエストの総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(400BadRequestErrorCount)/sum(AllRequests) | 
| 403 Forbidden error count (403 Forbidden エラー数) |  403ForbiddenErrorCount  | 403 Forbidden ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 403 Forbidden errors (403 Forbidden エラー) | - | 403 Forbidden ステータスコードの数がリクエストの総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(403ForbiddenErrorCount)/sum(AllRequests) | 
| 404 Not Found error count (404 Not Found エラー数) | 404NotFoundErrorCount | 404 Not Found ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 404 Not Found errors (404 Not Found エラー) | - | 404 Not Found ステータスコードの数がリクエストの総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(404NotFoundErrorCount)/sum(AllRequests) | 
| 500 Internal Server Error count (500 Internal Server Error の数) | 500InternalServerErrorCount | 500 Internal Server Error ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 500 Internal Server Errors | - | 500 Internal Server Error の数がリクエストの総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(500InternalServerErrorCount)/sum(AllRequests) | 
| 503 Service Unavailable error count (503 Service Unavailable エラー数) | 503ServiceUnavailableErrorCount | 503 Service Unavailable ステータスコードの数 | アドバンスト | 詳細なステータスコード | N | - | 
| % 503 Service Unavailable errors (503 Service Unavailable エラー) | - | 503 Service Unavailable ステータスコードの数がリクエスト総数に占める割合 | アドバンスト | 詳細なステータスコード | Y | sum(503ServiceUnavailableErrorCount)/sum(AllRequests) | 

1 すべての無料ティアストレージメトリクスは、Storage Lens グループレベルで利用できます。高度なメトリクスは、Storage Lens グループレベルで利用できません。

2 ルール数メトリクスとバケット設定メトリクスは、プレフィックスレベルで使用できません。

次の表は、S3 ストレージレンズで利用可能なパフォーマンスメトリクスと CloudWatch での可用性を示しています。


| **メトリクス名** –  | **CloudWatch とエクスポート** | **説明** | **Tier** | **Category** | **派生** | **派生メトリクスの式** | 
| --- | --- | --- | --- | --- | --- | --- | 
| 最初のバイトのレイテンシーの平均 | AverageFirstByteLatency | 過去 24 時間にわたって測定された、Amazon S3 バケットが完全なリクエストを受信してから、レスポンスを返し始めるまでのリクエストあたりの平均時間 | アドバンスト | パフォーマンス | N | - | 
| リクエストレイテンシーの合計の平均 | AverageTotalRequestLatency | 過去 24 時間に測定された、Amazon S3 バケットで受信した最初のバイトから送信した最後のバイトまでのリクエストあたりの平均経過時間 | アドバンスト | パフォーマンス | N | - | 
| 読み取り 0KB リクエスト数 | Read0KBRequestCount\$1 | データサイズが 0KB の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクトリクエスト全体を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 0KB～128KB リクエスト数 | Read0KBTo128KBRequestCount\$1 | データサイズが 0KB より大きく 128KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 128KB～256KB リクエスト数 | Read128KBTo256KBRequestCount\$1 | データサイズが 128KB より大きく 256KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 256KB～512KB リクエスト数 | Read256KBTo512KBRequestCount\$1 | データサイズが 256KB より大きく 512KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 512KB～1MB リクエスト数 | Read512KBTo1MBRequestCount\$1 | データサイズが 512KB より大きく 1MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 1MB～2MB リクエスト数 | Read1MBTo2MBRequestCount\$1 | データサイズが 1MB より大きく 2MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 2MB～4MB リクエスト数 | Read2MBTo4MBRequestCount\$1 | データサイズが 2MB より大きく 4MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 4MB～8MB リクエスト数 | Read4MBTo8MBRequestCount\$1 | データサイズが 4MB より大きく 8MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 8MB～16MB リクエスト数 | Read8MBTo16MBRequestCount\$1 | データサイズが 8MB より大きく 16MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 16MB～32MB リクエスト数 | Read16MBTo32MBRequestCount\$1 | データサイズが 16MB より大きく 32MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 32MB～64MB リクエスト数 | Read32MBTo64MBRequestCount\$1 | データサイズが 32MB より大きく 64MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 64MB～128MB リクエスト数 | Read64MBTo128MBRequestCount\$1 | データサイズが 64MB より大きく 128MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 128MB～256MB リクエスト数 | Read128MBTo256MBRequestCount\$1 | データサイズが 128MB より大きく 256MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 256MB～512MB リクエスト数 | Read256MBTo512MBRequestCount\$1 | データサイズが 256MB より大きく 512MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 512MB～1GB リクエスト数 | Read512MBTo1GBRequestCount\$1 | データサイズが 512MB より大きく 1GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 1GB～2GB リクエスト数 | Read1GBTo2GBRequestCount\$1 | データサイズが 1GB より大きく 2GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 2GB～4GB リクエスト数 | Read2GBTo4GBRequestCount\$1 | データサイズが 2GB より大きく 4GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 読み取り 4GB 以上のリクエスト数 | ReadLargerThan4GBRequestCount\$1 | データサイズが 4GB より大きい GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | アドバンスト | パフォーマンス | N | - | 
| 書き込み 0KB リクエスト数 | Write0KBRequestCount\$1 | データサイズが 0KB の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 0KB～128KB リクエスト数 | Write0KBTo128KBRequestCount\$1 | データサイズが 0KB より大きく 128KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 128KB～256KB リクエスト数 | Write128KBTo256KBRequestCount\$1 | データサイズが 128KB より大きく 256KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 256KB～512KB リクエスト数 | Write256KBTo512KBRequestCount\$1 | データサイズが 256KB より大きく 512KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 512KB～1MB リクエスト数 | Write512KBTo1MBRequestCount\$1 | データサイズが 512KB より大きく 1MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 1MB～2MB リクエスト数 | Write1MBTo2MBRequestCount\$1 | データサイズが 1MB より大きく 2MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 2MB～4MB リクエスト数 | Write2MBTo4MBRequestCount\$1 | データサイズが 2MB より大きく 4MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 4MB～8MB リクエスト数 | Write4MBTo8MBRequestCount\$1 | データサイズが 4MB より大きく 8MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 8MB～16MB リクエスト数 | Write8MBTo16MBRequestCount\$1 | データサイズが 8MB より大きく 16MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 16MB～32MB リクエスト数 | Write16MBTo32MBRequestCount\$1 | データサイズが 16MB より大きく 32MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 32MB～64MB リクエスト数 | Write32MBTo64MBRequestCount\$1 | データサイズが 32MB より大きく 64MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 64MB～128MB リクエスト数 | Write64MBTo128MBRequestCount\$1 | データサイズが 64MB より大きく 128MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 128MB～256MB リクエスト数 | Write128MBTo256MBRequestCount\$1 | データサイズが 128MB より大きく 256MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 256MB～512MB リクエスト数 | Write256MBTo512MBRequestCount\$1 | データサイズが 256MB より大きく 512MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 512MB～1GB リクエスト数 | Write512MBTo1GBRequestCount\$1 | データサイズが 512MB より大きく 1GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 1GB～2GB リクエスト数 | Write1GBTo2GBRequestCount\$1 | データサイズが 1GB より大きく 2GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 2GB～4GB リクエスト数 | Write2GBTo4GBRequestCount\$1 | データサイズが 2GB より大きく 4GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| 書き込み 4GB 以上のリクエスト数 | WriteLargerThan4GBRequestCount\$1 | データサイズが 4GB より大きい PutObject、UploadPart、CreateMultipartUpload リクエストの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 0KB 数 | Object0KBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 0KB のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 0KB～128KB の数 | Object0KBTo128KBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 0KB より大きく 128KB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 128KB～256KB の数 | Object128KBTo256KBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 128KB より大きく 256KB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 256KB～512KB の数 | Object256KBTo512KBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 256KB より大きく 512KB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 512KB～1MB の数 | Object512KBTo1MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 512KB より大きく 1MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 1MB～2MB の数 | Object1MBTo2MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 1MB より大きく 2MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 2MB～4MB の数 | Object2MBTo4MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 2MB より大きく 4MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 4MB～8MB の数 | Object4MBTo8MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 4MB より大きく 8MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 8MB～16MB の数 | Object8MBTo16MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 8MB より大きく 16MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 16MB～32MB の数 | Object16MBTo32MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 16MB より大きく 32MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 32MB～64MB の数 | Object32MBTo64MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 32MB より大きく 64MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 64MB～128MB の数 | Object64MBTo128MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 64MB より大きく 128MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 128MB～256MB の数 | Object128MBTo256MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 128MB より大きく 256MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 256MB～512MB の数 | Object256MBTo512MBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 256MB より大きく 512MB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 512MB～1GB の数 | Object512MBTo1GBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 512MB より大きく 1GB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 1GB～2GB の数 | Object1GBTo2GBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 1GB より大きく 2GB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 2GB～4GB の数 | Object2GBTo4GBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 2GB より大きく 4GB 以下のオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| オブジェクト 4GB 以上の数 | ObjectLargerThan4GBCount | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 4GB より大きいオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| 同時 Put 503 エラー数 | ConcurrentPut503ErrorCount | 同じオブジェクトへの同時書き込みによって生成される 503 エラーの数 | アドバンスト | パフォーマンス | N | - | 
| % 同時 Put 503 エラー | - | 同じオブジェクトへの同時書き込みが原因で生成された 503 エラーの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 ConcurrentPut503Errors / AllRequests | 
| クロスリージョンリクエスト数 | CrossRegionRequestCount | バケットのホームリージョンとは異なるリージョンのクライアントから送信されるリクエストの数 | アドバンスト | パフォーマンス | N | - | 
| % クロスリージョンリクエスト | - | バケットのホームリージョンとは異なるリージョンのクライアントからのリクエストの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 CrossRegionRequestCount/AllRequests | 
| クロスリージョン転送バイト | CrossRegionTransferredBytes | バケットのホームリージョンとは異なるリージョンの呼び出しから転送されたバイト数 | アドバンスト | パフォーマンス | N | - | 
| % クロスリージョン転送バイト | - | バケットのホームリージョンが異なるリージョンの呼び出しから転送されたバイトの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 CrossRegionBytes/(BytesDownloaded \$1 BytesUploaded) | 
| レプリケーションリクエストなしのクロスリージョンの数 | CrossRegionWithoutReplicationRequestCount | クロスリージョンレプリケーションリクエストを除く、バケットのホームリージョンとは異なるリージョンのクライアントから送信されるリクエストの数 | アドバンスト | パフォーマンス | N | - | 
| % レプリケーションリクエストなしのクロスリージョン | - | クロスリージョンレプリケーションリクエストを除く、バケットのホームリージョンが異なるリージョンのクライアントからのリクエストの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 CrossRegionRequestWithoutReplicationCount/AllRequests | 
| レプリケーション転送バイトなしのクロスリージョン | CrossRegionWithoutReplicationTransferredBytes | クロスリージョンレプリケーションバイトを除く、バケットのホームリージョンとは異なるリージョンの呼び出しから転送されたバイト数 | アドバンスト | パフォーマンス | N | - | 
| % レプリケーション転送バイトなしのクロスリージョン | - | クロスリージョンレプリケーションリクエストを除く、バケットのホームリージョン以外のリージョンから送信されるリクエストの数 | アドバンスト | パフォーマンス | Y | 100 \$1 CrossRegionBytesWithoutReplication/(BytesDownloaded \$1 BytesUploaded) | 
| リージョン内リクエスト数 | InRegionRequestCount | バケットのホームリージョンと同じリージョンのクライアントから送信されるリクエストの数 | アドバンスト | パフォーマンス | N | - | 
| % リージョン内リクエスト | - | バケットのホームリージョンと同じリージョンのクライアントからのリクエストの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 InRegionRequestCount / AllRequests | 
| リージョン内転送バイト | InRegionTransferredBytes | バケットのホームリージョンと同じリージョンからの呼び出しから転送されたバイト数 | アドバンスト | パフォーマンス | N | - | 
| % リージョン内転送バイト | - | バケットのホームリージョンと同じリージョンからの呼び出しから転送されたバイトの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 InRegionBytes / (BytesDownloaded \$1 BytesUploaded) | 
| アクセスされた一意のオブジェクトの 1 日あたりの数 | UniqueObjectsAccessedDailyCount | 過去 24 時間に少なくとも 1 回アクセスされたオブジェクトの数 | アドバンスト | パフォーマンス | N | - | 
| % アクセスされた一意のオブジェクトの 1 日あたりの数 | - | 過去 24 時間に少なくとも 1 回アクセスされたオブジェクトの割合 | アドバンスト | パフォーマンス | Y | 100 \$1 UniqueObjectsAccessedDailyCount/ObjectCount | 

# Amazon S3 ストレージレンズアクセス許可の設定
<a name="storage_lens_iam_permissions"></a>

Amazon S3 ストレージレンズでは、S3 ストレージレンズの各アクションへのアクセスを許可するために、AWS Identity and Access Management (IAM) の新しいアクセス許可が必要となります。これらのアクセス許可を付与するには、アイデンティティベースの IAM ポリシーを使用できます。このポリシーを、IAM ユーザー、グループ、またはロールにアタッチして、アクセス許可を付与することができます。このようなアクセス許可には、S3 Storage Lens の有効化または無効化や、S3 Storage Lens ダッシュボードや設定へのアクセスなどが含まれます。

これらの IAM ユーザーまたはロールは、以下の条件の両方に当てはまる場合を除き、ダッシュボードまたはその設定を作成または所有しているアカウントに属している必要があります。
+ アカウントが AWS Organizations のメンバーです。
+ 委任管理者として管理アカウントによって、組織レベルのダッシュボードを作成するアクセスを付与されています。



**注記**  
Amazon S3 ストレージレンズダッシュボードを表示するために、アカウントのルートユーザーの認証情報を使用することはできません。S3 ストレージレンズダッシュボードにアクセスするには、新規または既存の IAM ユーザーに対し、必要な IAM アクセス許可を付与する必要があります。その後、それらのユーザーの認証情報によりサインインを行い、S3 Storage Lens ダッシュボードにアクセスします。詳細については、「*IAM ユーザーガイド*」の「[IAM でのセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。
Amazon S3 コンソールで S3 ストレージレンズを使用するには、複数のアクセス許可が必要になることがあります。例えば、コンソールでダッシュボードを編集するには、次の許可が必要です。  
`s3:ListStorageLensConfigurations`
`s3:GetStorageLensConfiguration`
`s3:PutStorageLensConfiguration`

**Topics**
+ [アカウントで S3 ストレージレンズを使用するためのアクセス許可の設定](#storage_lens_iam_permissions_account)
+ [アカウントで S3 Storage Lens グループを使用するためのアクセス許可の設定](#storage_lens_groups_permissions)
+ [AWS Organizations を使用した S3 ストレージレンズを使用するための許可の設定](#storage_lens_iam_permissions_organizations)

## アカウントで S3 ストレージレンズを使用するためのアクセス許可の設定
<a name="storage_lens_iam_permissions_account"></a>

S3 Storage Lens ダッシュボードと Storage Lens ダッシュボード設定を作成して管理するには、実行するアクションに応じて次の権限が必要です。

 次の表は、Amazon S3 ストレージレンズに関連する IAM アクセス許可を示しています。


| Action | IAM アクセス許可 | 
| --- | --- | 
| Amazon S3 コンソールで S3 ストレージレンズダッシュボードを作成または更新します。 |  `s3:ListStorageLensConfigurations` `s3:GetStorageLensConfiguration` `s3:GetStorageLensConfigurationTagging` `s3:PutStorageLensConfiguration` `s3:PutStorageLensConfigurationTagging`  | 
| Amazon S3 コンソールで S3 ストレージレンズダッシュボードのタグを取得します。 |  `s3:ListStorageLensConfigurations` `s3:GetStorageLensConfigurationTagging`  | 
| Amazon S3 コンソールに S3 ストレージレンズダッシュボードを表示します。 |  `s3:ListStorageLensConfigurations` `s3:GetStorageLensConfiguration` `s3:GetStorageLensDashboard`  | 
| Amazon S3 コンソールで S3 ストレージレンズダッシュボードを削除します。 |  `s3:ListStorageLensConfigurations` `s3:GetStorageLensConfiguration` `s3:DeleteStorageLensConfiguration`  | 
| AWS CLI または AWS SDK により S3 ストレージレンズの設定を作成または更新します。 |  `s3:PutStorageLensConfiguration` `s3:PutStorageLensConfigurationTagging`  | 
| AWS CLI または AWS SDK により S3 ストレージレンズの設定のタグを取得します。 |  `s3:GetStorageLensConfigurationTagging`  | 
| AWS CLI または AWS SDK により S3 ストレージレンズの設定を表示します。 |  `s3:GetStorageLensConfiguration`  | 
| AWS CLI または AWS SDK により S3 ストレージレンズの設定を削除します。 |  `s3:DeleteStorageLensConfiguration`  | 

**注記**  
IAM ポリシーでリソースタグを使用すると、アクセス許可を管理できます。
これらのアクセス許可を持つ IAM ユーザーまたはロールは、バケットおよびプレフィックスからのメトリクスを参照できます。ただし、オブジェクトの読み出しまたは一覧表示のための、直接的なアクセス許可がない場合があります。
プレフィックスレベルのメトリクスが有効になっている S3 Storage Lens ダッシュボードでは、選択したプレフィックスパスがオブジェクトキーと一致すると、ダッシュボードにそのオブジェクトキーが別のプレフィックスとして表示されることがあります。
ご自身のアカウントのバケットに保存されているメトリクスをエクスポートする場合は、IAM ポリシー内の既存の `s3:GetObject` アクセス許可により権限が付与されます。これと同様に、AWS Organizations エンティティであれば、組織の管理アカウントまたは委任管理者アカウントとして IAM ポリシーを使用することで、組織レベルのダッシュボードと設定への許可を管理できます。

## アカウントで S3 Storage Lens グループを使用するためのアクセス許可の設定
<a name="storage_lens_groups_permissions"></a>

S3 Storage Lens グループを使用すると、プレフィックス、サフィックス、オブジェクトタグ、オブジェクトサイズ、またはオブジェクト経過時間に基づいてバケット内のストレージの分布を把握できます。Storage Lens グループをダッシュボードにアタッチすると、集約されたメトリクスを表示できます。

Storage Lens グループを操作するには、特定の権限が必要です。詳細については、「[Storage Lens グループのアクセス許可。](storage-lens-groups.md#storage-lens-group-permissions)」を参照してください。



## AWS Organizations を使用した S3 ストレージレンズを使用するための許可の設定
<a name="storage_lens_iam_permissions_organizations"></a>

Amazon S3 ストレージレンズを使用することで、AWS Organizations の階層に属しているすべてのアカウントから、ストレージのメトリクスと使用状況に関するデータを収集できます。次の表は、Organizations での S3 ストレージレンズの使用に関連する、アクションとアクセス許可を示しています。


| Action | IAM アクセス許可 | 
| --- | --- | 
| S3ストレージレンズのために、信頼されたアクセスを組織内で有効にします。 |  `organizations:EnableAWSServiceAccess`  | 
| 組織内で、S3 ストレージレンズのために信頼されたアクセスを無効にします。 |  `organizations:DisableAWSServiceAccess`  | 
| 組織内で、S3 ストレージレンズダッシュボードまたはその設定を作成するために、委任管理者を登録します。 |  `organizations:RegisterDelegatedAdministrator`  | 
| 委任管理者の登録を解除して、組織の S3 ストレージレンズダッシュボードまたは設定を作成できないようにします。 |  `organizations:DeregisterDelegatedAdministrator`  | 
|  組織全体のために S3 ストレージレンズの設定を作成するための追加のアクセス許可  |  `organizations:DescribeOrganization` `organizations:ListAccounts` `organizations:ListAWSServiceAccessForOrganization` `organizations:ListDelegatedAdministrators` `iam:CreateServiceLinkedRole`  | 

# S3 ストレージレンズから S3 Tables へのエクスポートのテーブルの命名
<a name="storage_lens_s3_tables_naming"></a>

## 概要
<a name="storage_lens_s3_tables_overview"></a>

S3 ストレージレンズメトリクスを S3 Tables にエクスポートする場合、テーブルは、互換性と整理を確保するために、特定の命名パターンを持つ Apache Iceberg カタログ規則を使用して編成されます。

## テーブルの場所の構造
<a name="storage_lens_table_location_structure"></a>

完全なテーブルの場所は次のパターンに従います。

```
s3tablescatalog/aws-s3/<namespace>/<table-name>
```

### テーブルバケット名
<a name="storage_lens_table_bucket_name"></a>

**テーブルバケット:** `aws-s3`

S3 ストレージレンズエクスポートでは、AWS S3 関連のシステムテーブル用に指定されたバケットである `aws-s3` テーブルバケットを使用します。

### カタログ名
<a name="storage_lens_catalog_name"></a>

**カタログ:** `s3tablescatalog/aws-s3`

ストレージレンズは 3 種類の S3 リソースに関するインサイトを提供するため、S3 ストレージレンズテーブルは S3 カタログに保存されます。
+ ストレージメトリクス
+ バケットのプロパティ
+ API 使用状況メトリクス

## 名前空間の命名規則
<a name="storage_lens_namespace_naming"></a>

名前空間は、カタログ内のテーブルを整理します。S3 ストレージレンズの場合、名前空間はストレージレンズ設定 ID から取得されます。

### 標準名前空間形式
<a name="storage_lens_standard_namespace"></a>

ドット (`.`) なしのストレージレンズ設定 ID の場合:

```
lens_<configuration-id>_exp
```

**例:** 設定 ID が `my-lens-config` の場合、名前空間は次のようになります。

```
lens_my-lens-config_exp
```

### ドット文字処理を使用した名前空間形式
<a name="storage_lens_namespace_dot_handling"></a>

ストレージレンズ設定 ID にはドット (`.`) を含めることができますが、S3 Tables 名前空間は小文字、数字、ハイフン (`-`)、アンダースコア (`_`) のみをサポートします。設定 ID にドットが含まれている場合、それらはハイフンに変換され、一意性のためにハッシュサフィックスが追加されます。

```
lens_<configuration-id-with-dots-replaced>_exp_<7-char-hash>
```

**例:** 設定 ID が `my.lens.config` の場合、名前空間は次のようになります。

```
lens_my-lens-config_exp_a1b2c3d
```

ここで、`a1b2c3d` は元の設定 ID の SHA-1 ハッシュの最初の 7 文字です。

### 名前空間の命名規則
<a name="storage_lens_namespace_rules"></a>
+ 長さ: 1-127 文字
+ 使用できる文字: 小文字 (a～z)、数字 (0～9)、ハイフン (-)、アンダースコア (\$1)
+ パターン: `[a-z0-9_-]{1,127}`
+ テーブルバケット内で一意である必要があります

## ストレージレンズ設定 ID の要件
<a name="storage_lens_config_id_requirements"></a>

ストレージレンズ設定 ID は、次のルールに従う必要があります。
+ 長さ: 1～64 文字
+ 使用できる文字: 文字 (a～z、A～Z)、数字 (0～9)、ハイフン (-)、アンダースコア (\$1)、ドット (.)
+ パターン: `[a-zA-Z0-9\-\_.]+`

## 完全な例
<a name="storage_lens_complete_examples"></a>

ID が `production-metrics` のストレージレンズ設定の場合:
+ **テーブルバケット:** `aws-s3`
+ **カタログ:** `s3tablescatalog/aws-s3`
+ **名前空間:** `lens_production-metrics_exp`
+ **フルパス:** `s3tablescatalog/aws-s3/lens_production-metrics_exp/<table-name>`

ID が `prod.us.east.metrics` のストレージレンズ設定の場合:
+ **テーブルバケット:** `aws-s3`
+ **カタログ:** `s3tablescatalog/aws-s3`
+ **名前空間:** `lens_prod-us-east-metrics_exp_f8e9a1b` (ハッシュ付き)
+ **フルパス:** `s3tablescatalog/aws-s3/lens_prod-us-east-metrics_exp_f8e9a1b/<table-name>`

## テーブルタイプ
<a name="storage_lens_table_types"></a>

次の表は、S3 ストレージレンズエクスポート用に作成されたさまざまなタイプのテーブルを示しています。


| バケット名　 | 名前空間 | S3 テーブル名 | 説明 | 
| --- | --- | --- | --- | 
| s3tablescatalog/aws-s3 | lens\$1<conf\$1name>\$1exp[\$1<hash>] | default\$1storage\$1metrics | この表には、ストレージレンズ設定のストレージメトリクスが含まれています。 | 
| s3tablescatalog/aws-s3 | lens\$1<conf\$1name>\$1exp[\$1<hash>] | default\$1activity\$1metrics | この表には、ストレージレンズ設定のアクティビティメトリクスが含まれています。 | 
| s3tablescatalog/aws-s3 | lens\$1<conf\$1name>\$1exp[\$1<hash>] | expanded\$1prefixes\$1storage\$1metrics | このテーブルには、ストレージレンズ設定のすべてのプレフィックスのストレージメトリクスが含まれています。 | 
| s3tablescatalog/aws-s3 | lens\$1<conf\$1name>\$1exp[\$1<hash>] | expanded\$1prefixes\$1activity\$1metrics | このテーブルには、ストレージレンズ設定のすべてのプレフィックスのアクティビティメトリクスが含まれています。 | 
| s3tablescatalog/aws-s3 | lens\$1<conf\$1name>\$1exp[\$1<hash>] | bucket\$1property\$1metrics | このテーブルには、ストレージレンズ設定内のすべてのバケットのバケットプロパティメトリクスが含まれています。 | 

**注記**  
S3 ストレージレンズメトリクスを AWS マネージド S3 Tables バケットにエクスポートする場合、追加料金はかかりません。テーブルバケットのテーブルストレージと管理には、通常の料金がかかります。Amazon S3 コンソール、Amazon S3 API、AWS CLI、または AWS SDK を使用して、S3 Tables へのエクスポートを有効または無効にすることができます。

# コンソールと API を使用した Amazon S3 ストレージレンズの使用
<a name="S3LensExamples"></a>

Amazon S3 ストレージレンズは、オブジェクトストレージの使用状況とアクティビティを組織全体で可視化するために使用できるクラウドストレージの分析機能です。S3 ストレージレンズメトリクスを使用することで、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどの、要約されたインサイトを生成できます。S3 ストレージレンズメトリクスを使用して、コスト最適化の機会を特定し、データ保護とセキュリティのベストプラクティスを実装し、アプリケーションワークロードのパフォーマンスを向上させることもできます。例えば、S3 ライフサイクルルールがないバケットを特定して、7 日以上経過した未完了のマルチパートアップロードを有効期限切れにできます。また、S3 レプリケーションや S3 バージョニング使用など、データ保護のベストプラクティスに従っていないバケットを特定することもできます。また、S3 ストレージレンズは、メトリクスを分析して、ストレージコストを最適化し、データ保護に関するベストプラクティスを適用するために使用できるコンテキストに応じた推奨事項を提供します。

S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの **[Buckets]** (バケット) ページの **[Account snapshot]** (アカウントスナップショット) セクションにこの情報を表示します。S3 ストレージレンズは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、ストレージクラス、バケット、プレフィックス、またはストレージレンズのグループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。毎日のメトリクスレポートを CSV または Parquet 形式で汎用 S3 バケットに送信したり、メトリクスを AWS マネージド S3 テーブルバケットに直接エクスポートしたりすることもできます。

**注記**  
ストレージレンズは、[S3 汎用バケット](UsingBucket.md)のメトリクスのみを集計します。

以下のセクションでは、S3 Storage Lens の設定の作成、更新、表示例を示します。また、機能に関連した操作例もご覧いただけます。ここでの例には、AWS Organizations で S3 Storage Lens を使用している場合のユースケースも含まれます。この例では、プレースホルダー値を置き換えます。

**Topics**
+ [Amazon S3 ストレージレンズダッシュボードを作成する](storage_lens_creating_dashboard.md)
+ [Amazon S3 ストレージレンズダッシュボードの更新](storage_lens_editing.md)
+ [Amazon S3 ストレージレンズダッシュボードの無効化](storage_lens_disabling.md)
+ [Amazon S3 ストレージレンズダッシュボードの削除](storage_lens_deleting.md)
+ [Amazon S3 ストレージレンズダッシュボードを一覧表示する](storage_lens_list_dashboard.md)
+ [Amazon S3 ストレージレンズダッシュボード設定の詳細を表示する](storage_lens_viewing.md)
+ [S3 ストレージレンズによる AWS リソースタグの管理](storage-lens-groups-manage-tags-dashboard.md)
+ [Amazon S3 ストレージレンズを使用するためのヘルパーファイル](S3LensHelperFilesCLI.md)

# Amazon S3 ストレージレンズダッシュボードを作成する
<a name="storage_lens_creating_dashboard"></a>

AWS Organizations の組織、またはアカウント内の特定の AWS リージョンやバケットにスコープを設定できる、追加の S3 ストレージレンズカスタムダッシュボードを作成できます。

**注記**  
ダッシュボード構成への更新が正確に表示または視覚化されるまでに最大 48 時間かかる場合があります。

## S3 コンソールの使用
<a name="storage_lens_console_creating"></a>

Amazon S3 コンソールで Amazon S3 Storage Lens ダッシュボードを作成するには、次の手順に従います。

**ステップ 1: 一般設定を構成する**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、切り替え先のリージョンを選択します。

1. ナビゲーションペインの、**[S3 ストレージレンズ]** で、**[ダッシュボード]** を選択します。

1. [**ダッシュボードの作成**] を選択します。

1. **ダッシュボード**ページの [**全般**] セクションで、次の操作を行います。

   1. ダッシュボードの **[ホームリージョン]** を表示します。ホームリージョンとは、この Storage Lens ダッシュボード設定とメトリクスが保存される AWS リージョン です。

   1. ダッシュボード名を入力します。

      ダッシュボード名は 65 文字未満で記述する必要があり、特殊文字またはスペースを含めることはできません。
**注記**  
ダッシュボードが作成された後は、このダッシュボード名を変更することはできません。

   1. **[有効]** を選択すると、ダッシュボードに更新された日次メトリクスが表示されます。

   1. (オプション) ダッシュボードに **[タグ]** を追加することもできます。タグは、ダッシュボードのアクセス許可を管理し、S3 Storage Lens のコストを追跡するために使用できます。詳細については、「*IAM ユーザーガイド*」の「[タグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」および「*AWS Billing ユーザーガイド*」の「[AWS 生成タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html)」を参照してください。
**注記**  
ダッシュボードの設定には、最大 50 個のタグを追加できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 2: ダッシュボードのスコープを定義する**

1. **[ダッシュボードの範囲]** セクションで、S3 ストレージレンズでダッシュボードに含める、または除外するリージョンとバケットを選択します。

1. S3 Storage Lens で含める、または除外するバケットを、選択したリージョンの中で選択します。バケットを含めるか除外するかの設定は可能ですが、両方を同時に設定することはできません。このオプションは、組織レベルのダッシュボードを作成するときには使用できません。
**注記**  
リージョンとバケットを、含めるか除外するかの選択が可能です。組織内のメンバーアカウント間で組織レベルのダッシュボードを作成する場合には、このオプションはリージョンのみに対し使用できます。
含めるか除外するバケットは最大 50 個まで選択できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 3: ストレージレンズ階層を選択する**

1. **[ストレージレンズ階層]** セクションで、このダッシュボードに集約する機能の階層を選択します。

   1. バケットレベルで集計され、14 日間のクエリに使用できる無料のメトリクスを含めるには、**[無料階層]** を選択します。

   1. 高度なメトリクスを有効にするには、**[アドバンスト階層]** を選択します。これらのオプションには、プレフィックスまたはストレージレンズグループの集約、Amazon CloudWatch 発行、拡張プレフィックスレポート、コンテキストレコメンデーションが含まれます。データは 15 か月間クエリで使用できます。高度な高度なメトリクスとレコメンデーションには追加料金がかかります。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

      無料のメトリクスと高度なメトリクスの詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[高度なメトリクスカテゴリ]** で、有効にするメトリクスのカテゴリを選択します。
   + **アクティビティのメトリクス**
   + **Detailed status code metrics] (詳細なステータスコードメトリクス**
   + **コスト最適化メトリクス**
   + **データ保護メトリクス**
   + **パフォーマンスメトリクス**

   各カテゴリに含まれるメトリクスをプレビューするには、メトリクスカテゴリのチェックボックスリストの下にあるドロップダウン矢印ボタンを使用します。メトリクスのカテゴリの詳細については、「[メトリクスのカテゴリ](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types)」を参照してください。メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

1. **[プレフィックス区切り記号]** を選択または指定して、各プレフィックス内のレベルを区別します。この値は、各プレフィックスのレベルを識別するために使用されます。Amazon S3 でのデフォルト値は、「`/`」文字ですが、実際のストレージ構造では他の区切り文字を使用することも可能です。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 4: (オプション) メトリクスの集約を選択する**

1. **[その他のメトリクスの集約]** で、集約するメトリクスを選択します。
   + プレフィックス集約
   + Storage Lens グループ集約

1. **[プレフィックス集約]** を有効にしている場合は、ダッシュボードの最小 **[プレフィックスのしきい値]** と **[プレフィックスの深さ]** を指定します。**[次へ]** を選択して保存し、続行します。
**注記**  
**[プレフィックスの深さ]** 設定は、S3 ストレージレンズがオブジェクトプレフィックスを分析する階層レベルの数を決定し、最大 10 レベルに制限されます。**[プレフィックスのしきい値]** は、プレフィックスがストレージレンズメトリクスに含まれる前に、プレフィックスが表す必要がある合計ストレージの最小パーセンテージを指定します。

1. **[ストレージレンズグループ集約]** を有効にしている場合は、次のいずれかを選択します。
   + **ストレージレンズグループを含める**
   + **ストレージレンズグループを除外**

1. ストレージレンズグループを集約に含める場合、**ホームリージョン内のすべてのストレージレンズグループを含める**か、含めるストレージレンズグループを指定できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 5: (オプション) メトリクスのエクスポートと公開の設定を選択する**

1. CloudWatch ダッシュボードのストレージレンズメトリクスにアクセスする場合は、**[メトリクスの公開]** で、**[CloudWatch の公開]** を選択します。
**注記**  
プレフィックスレベルのメトリクスは CloudWatch では使用できません。

1. **[メトリクスのエクスポート]** で、毎日エクスポートするストレージレンズダッシュボードデータを選択します。
   + **デフォルトのメトリクスレポート**
   + **拡張プレフィックスメトリクスレポート**

1. (オプション) **[デフォルトのメトリクスレポート]** を選択した場合は、**[デフォルトのメトリクスレポート]** 設定でバケットタイプを選択します。レポートは、汎用 Amazon S3 バケットまたは AWS マネージド S3 テーブルバケットのいずれかにエクスポートできます。選択したバケットタイプに基づいて、**[汎用バケット送信先設定]** または **[テーブルバケット送信先設定]** オプションを更新します。
**注記**  
**[デフォルトのメトリクスレポート]** には、プレフィックス集約設定で設定されたしきい値と深さ内のプレフィックスのみが含まれます。  
暗号化キーを指定する場合は、AWS KMS キー (SSE-KMS) または Amazon S3 マネージドキー (SSE-S3) を選択する必要があります。送信先バケットポリシーで暗号化が必要な場合は、メトリクスのエクスポートに暗号化キーを指定する必要があります。暗号化キーがないと、S3 へのエクスポートは失敗します。詳細については、「[AWS KMS key を使用してメトリクスのエクスポートを暗号化する](storage_lens_encrypt_permissions.md)」を参照してください。

1. (オプション) **[拡張プレフィックスメトリクスレポート]** を選択した場合、**[拡張プレフィックスメトリクスレポート]** 設定でバケットタイプを選択します。レポートは、汎用 Amazon S3 バケットまたは読み取り専用 S3 テーブルバケットのいずれかにエクスポートできます。選択したバケットタイプに基づいて、**[汎用バケット送信先設定]** または **[テーブルバケット送信先設定]** を更新します。
**注記**  
**[拡張プレフィックスメトリクスレポート]** には、ダッシュボードスコープで指定されているすべての選択されたバケット内の、プレフィックス深度 50 までのすべてのプレフィックスが含まれます。  
暗号化キーを指定する場合は、AWS KMS キー (SSE-KMS) または Amazon S3 マネージドキー (SSE-S3) を選択する必要があります。送信先バケットポリシーで暗号化が必要な場合は、メトリクスのエクスポートに暗号化キーを指定する必要があります。暗号化キーがないと、S3 へのエクスポートは失敗します。詳細については、「[AWS KMS key を使用してメトリクスのエクスポートを暗号化する](storage_lens_encrypt_permissions.md)」を参照してください。

1. **[次へ]** を選択して変更を保存し、続行します。

1. **[確認して作成]** ページですべてを確認します。追加の変更がない場合は、**[次へ]** を選択して変更を保存し、ダッシュボードを作成します。

**ステップ 6: ダッシュボード設定を確認してダッシュボードを作成する**

1. **[全般]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[ダッシュボードの範囲]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[ストレージレンズ階層]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[メトリクスの集約]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[メトリクスのエクスポート]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. すべてのダッシュボード設定を確認して確定したら、**[送信]** を選択してダッシュボードを作成します。

新しいストレージレンズダッシュボードが正常に作成されたら、ストレージレンズ **[ダッシュボード]** ページにリストされた新しいダッシュボードを表示できます。

## の使用AWS CLI
<a name="S3PutStorageLensConfigurationTagsCLI"></a>

**Example**  
次のコマンド例では、タグを使用して Amazon S3 ストレージレンズ設定を作成します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control put-storage-lens-configuration --account-id=111122223333 --config-id=example-dashboard-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json --tags=file://./tags.json
```

**Example**  
次のコマンド例では、タグなしで Amazon S3 ストレージレンズ設定を作成します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control put-storage-lens-configuration --account-id=222222222222 --config-id=your-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json
```

## AWS SDK for Java の使用
<a name="S3CreateandUpdateStorageLensConfigurationJava"></a>

**Example – Amazon S3 ストレージレンズ 設定を作成および更新する**  
以下の例では、SDK for Java により、Amazon S3 ストレージレンズ設定を作成して更新します。  

```
package aws.example.s3control;

import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.AccountLevel;
import software.amazon.awssdk.services.s3control.model.ActivityMetrics;
import software.amazon.awssdk.services.s3control.model.AdvancedCostOptimizationMetrics;
import software.amazon.awssdk.services.s3control.model.AdvancedDataProtectionMetrics;
import software.amazon.awssdk.services.s3control.model.AdvancedPerformanceMetrics;
import software.amazon.awssdk.services.s3control.model.BucketLevel;
import software.amazon.awssdk.services.s3control.model.CloudWatchMetrics;
import software.amazon.awssdk.services.s3control.model.DetailedStatusCodesMetrics;
import software.amazon.awssdk.services.s3control.model.Format;
import software.amazon.awssdk.services.s3control.model.Include;
import software.amazon.awssdk.services.s3control.model.OutputSchemaVersion;
import software.amazon.awssdk.services.s3control.model.PrefixLevel;
import software.amazon.awssdk.services.s3control.model.PrefixLevelStorageMetrics;
import software.amazon.awssdk.services.s3control.model.PutStorageLensConfigurationRequest;
import software.amazon.awssdk.services.s3control.model.S3BucketDestination;
import software.amazon.awssdk.services.s3control.model.SSES3;
import software.amazon.awssdk.services.s3control.model.SelectionCriteria;
import software.amazon.awssdk.services.s3control.model.StorageLensAwsOrg;
import software.amazon.awssdk.services.s3control.model.StorageLensConfiguration;
import software.amazon.awssdk.services.s3control.model.StorageLensDataExport;
import software.amazon.awssdk.services.s3control.model.StorageLensDataExportEncryption;
import software.amazon.awssdk.services.s3control.model.StorageLensExpandedPrefixesDataExport;
import software.amazon.awssdk.services.s3control.model.StorageLensTableDestination;
import software.amazon.awssdk.services.s3control.model.StorageLensTag;

import java.util.Arrays;
import java.util.List;

public class CreateAndUpdateDashboard {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";
        String exportAccountId = "Destination Account ID";
        String exportBucketArn = "arn:aws:s3:::destBucketName"; // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration.
        String awsOrgARN = "arn:aws:organizations::123456789012:organization/o-abcdefgh";
        Format exportFormat = Format.CSV;

        try {
            SelectionCriteria selectionCriteria = SelectionCriteria.builder()
                    .delimiter("/")
                    .maxDepth(5)
                    .minStorageBytesPercentage(10.0)
                    .build();

            PrefixLevelStorageMetrics prefixStorageMetrics = PrefixLevelStorageMetrics.builder()
                    .isEnabled(true)
                    .selectionCriteria(selectionCriteria)
                    .build();

            BucketLevel bucketLevel = BucketLevel.builder()
                    .activityMetrics(ActivityMetrics.builder().isEnabled(true).build())
                    .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build())
                    .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build())
                    .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build())
                    .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build())
                    .prefixLevel(PrefixLevel.builder().storageMetrics(prefixStorageMetrics).build())
                    .build();

            AccountLevel accountLevel = AccountLevel.builder()
                    .activityMetrics(ActivityMetrics.builder().isEnabled(true).build())
                    .advancedCostOptimizationMetrics(AdvancedCostOptimizationMetrics.builder().isEnabled(true).build())
                    .advancedPerformanceMetrics(AdvancedPerformanceMetrics.builder().isEnabled(true).build())
                    .advancedDataProtectionMetrics(AdvancedDataProtectionMetrics.builder().isEnabled(true).build())
                    .detailedStatusCodesMetrics(DetailedStatusCodesMetrics.builder().isEnabled(true).build())
                    .bucketLevel(bucketLevel)
                    .build();

            Include include = Include.builder()
                    .buckets(Arrays.asList("arn:aws:s3:::bucketName"))
                    .regions(Arrays.asList("us-west-2"))
                    .build();

            StorageLensDataExportEncryption exportEncryption = StorageLensDataExportEncryption.builder()
                    .sses3(SSES3.builder().build())
                    .build();

            S3BucketDestination s3BucketDestination = S3BucketDestination.builder()
                    .accountId(exportAccountId)
                    .arn(exportBucketArn)
                    .encryption(exportEncryption)
                    .format(exportFormat)
                    .outputSchemaVersion(OutputSchemaVersion.V_1)
                    .prefix("Prefix")
                    .build();

            StorageLensTableDestination s3TablesDestination = StorageLensTableDestination.builder()
                    .encryption(exportEncryption)
                    .isEnabled(true)
                    .build();

            CloudWatchMetrics cloudWatchMetrics = CloudWatchMetrics.builder()
                    .isEnabled(true)
                    .build();

            StorageLensDataExport dataExport = StorageLensDataExport.builder()
                    .cloudWatchMetrics(cloudWatchMetrics)
                    .s3BucketDestination(s3BucketDestination)
                    .storageLensTableDestination(s3TablesDestination)
                    .build();

            StorageLensAwsOrg awsOrg = StorageLensAwsOrg.builder()
                    .arn(awsOrgARN)
                    .build();

            StorageLensExpandedPrefixesDataExport expandedPrefixesDataExport = StorageLensExpandedPrefixesDataExport.builder()
                    .s3BucketDestination(s3BucketDestination)
                    .storageLensTableDestination(s3TablesDestination)
                    .build();

            StorageLensConfiguration configuration = StorageLensConfiguration.builder()
                    .id(configurationId)
                    .accountLevel(accountLevel)
                    .include(include)
                    .dataExport(dataExport)
                    .awsOrg(awsOrg)
                    .expandedPrefixesDataExport(expandedPrefixesDataExport)
                    .prefixDelimiter("/")
                    .isEnabled(true)
                    .build();

            List<StorageLensTag> tags = Arrays.asList(
                    StorageLensTag.builder().key("key-1").value("value-1").build(),
                    StorageLensTag.builder().key("key-2").value("value-2").build()
            );

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();

            s3ControlClient.putStorageLensConfiguration(PutStorageLensConfigurationRequest.builder()
                    .accountId(sourceAccountId)
                    .configId(configurationId)
                    .storageLensConfiguration(configuration)
                    .tags(tags)
                    .build()
            );

        } catch (AwsServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

S3 ストレージレンズグループまたは拡張プレフィックスにアクセスするには、ダッシュボードをアップグレードしてアドバンスト階層を使用する必要があります。別途料金がかかります。無料階層とアドバンスト階層の詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。S3 Storage Lens グループの詳細については、「[S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計](storage-lens-groups-overview.md)」を参照してください。

# Amazon S3 ストレージレンズダッシュボードの更新
<a name="storage_lens_editing"></a>

 Amazon S3 ストレージレンズのデフォルトダッシュボードは `default-account-dashboard` です。このダッシュボードは Amazon S3 によって事前定義されており、無料のメトリクスおよび高度なメトリクスをアカウント全体で集計し、その概要と傾向をコンソール上で可視化するのに役立ちます。デフォルトダッシュボードのスコープ設定を変更することはできませんが、メトリクスの選択を無料メトリクスから有料の高度なメトリクスとレコメンデーションにアップグレードしたり、オプションのメトリクスエクスポートを構成したり、デフォルトダッシュボードを無効にすることは可能です。デフォルトのダッシュボードは削除できません。また、無効にすることのみが可能です。詳細については、「[S3 コンソールの使用](storage_lens_console_deleting.md)」を参照してください。

## S3 コンソールの使用
<a name="storage_lens_console_editing"></a>

Amazon S3 コンソールで Amazon S3 Storage Lens ダッシュボードを更新するには、次の手順に従います。

**ステップ 1: ダッシュボードを更新し、一般設定を構成する**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、[Dashboards] (ダッシュボード) の順にクリックします。

1. 編集するダッシュボードを選択します。

1. **[ダッシュボード設定を表示]** を選択します。

1. **[編集]** を選択します。ダッシュボード設定をステップバイステップで確認できるようになりました。いずれかのステップを変更するには、左側のナビゲーションを使用してステップを直接クリックします。これらのステップを更新する方法については、
**注記**  
次の項目は変更できません。  
ダッシュボード名
ホームリージョン

1. **[ダッシュボード]** ページの **[全般]** セクションでは、次の変更を行うことができます。
   + **[有効]** または **[無効]** を選択して、ダッシュボードで日次メトリクスを受信するかどうかを更新します。
   + (オプション) ダッシュボードに **[タグ]** を追加することもできます。タグは、ダッシュボードのアクセス許可を管理し、S3 Storage Lens のコストを追跡するために使用できます。詳細については、「*IAM ユーザーガイド*」の「[タグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」および「*AWS Billing ユーザーガイド*」の「[AWS 生成タグの使用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tags.html)」を参照してください。
**注記**  
ダッシュボードの設定には、最大 50 個のタグを追加できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 2: ダッシュボードのスコープを更新する**

1. **[ダッシュボードの範囲]** セクションで、S3 ストレージレンズでダッシュボードに含める、または除外するリージョンとバケットを更新します。
**注記**  
リージョンとバケットを、含めるか除外するかの選択が可能です。組織内のメンバーアカウント間で組織レベルのダッシュボードを作成する場合には、このオプションはリージョンのみに対し使用できます。
含めるか除外するバケットは最大 50 個まで選択できます。

1. S3 Storage Lens で含める、または除外するバケットを、選択したリージョンの中で選択します。バケットを含めるか除外するかの設定は可能ですが、両方を同時に設定することはできません。このオプションは、組織レベルのダッシュボードを作成するときには使用できません。
**注記**  
リージョンとバケットを、含めるか除外するかの選択が可能です。組織内のメンバーアカウント間で組織レベルのダッシュボードを作成する場合には、このオプションはリージョンのみに対し使用できます。
含めるか除外するバケットは最大 50 個まで選択できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 3: ストレージレンズ階層を更新するメトリクスの選択を設定する**

1. **[ストレージレンズ階層]** **[メトリクスの選択]** セクションで、このダッシュボードで集計するメトリクスの階層を更新します。
**注記**  
**[無料階層]** から **[アドバンスト階層]** に更新する場合は、**[メトリクスの集約]** 設定を更新する必要があります。**[メトリクスの集約設定]** を更新するには、「**ステップ 4: メトリクスの集約を更新する**」を参照してください。
ストレージレンズ階層を **[アドバンスト階層]** から **[無料階層]** に更新する場合は、**[メトリクスの集約]** 設定を更新する必要はありません。**[メトリクスの集約]** 機能は、**[アドバンスト階層]** メトリクスカテゴリにのみ適用されます。

1. バケットレベルで集計され、14 日間のクエリに使用できる無料のメトリクスを含めるには、**[無料階層]** を選択します。

1. 高度なメトリクスを有効にするには、**[アドバンスト階層]** を選択します。これらのオプションには、プレフィックス集約、Amazon CloudWatch パブリッシング、コンテキストに応じた推奨事項が含まれます。データは 15 か月間クエリで使用できます。高度な高度なメトリクスとレコメンデーションには追加料金がかかります。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

   無料のメトリクスと高度なメトリクスの詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[高度なメトリクスカテゴリ]** で、有効にするメトリクスのカテゴリを選択します。
   + **アクティビティのメトリクス**
   + **Detailed status code metrics] (詳細なステータスコードメトリクス**
   + **コスト最適化メトリクス**
   + **データ保護メトリクス**
   + **パフォーマンスメトリクス**

   各カテゴリに含まれるメトリクスをプレビューするには、メトリクスカテゴリのチェックボックスリストの下にあるドロップダウン矢印ボタンを使用します。メトリクスのカテゴリの詳細については、「[メトリクスのカテゴリ](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types)」を参照してください。メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

1. **[プレフィックス区切り記号]** を選択または指定して、各プレフィックス内のレベルを区別します。この値は、各プレフィックスのレベルを識別するために使用されます。Amazon S3 でのデフォルト値は、「`/`」文字ですが、実際のストレージ構造では他の区切り文字を使用することも可能です。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 4: (オプション) メトリクスの集約を更新する**

1. **[その他のメトリクスの集約]** で、次のいずれかを選択して、集約するメトリクスを更新します。
   + プレフィックス集約
   + Storage Lens グループ集約

1. **[プレフィックス集約]** を有効にしている場合は、ダッシュボードの最小 **[プレフィックスのしきい値]** と **[プレフィックスの深さ]** を指定します。**[次へ]** を選択して保存し、続行します。

1. **[ストレージレンズグループ集約]** を有効にしている場合は、次のいずれかを選択します。
   + **ストレージレンズグループを含める**
   + **ストレージレンズグループを除外**

1. ストレージレンズグループを集約に含める場合、**ホームリージョン内のすべてのストレージレンズグループを含める**か、含めるストレージレンズグループを指定できます。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 5: (オプション) メトリクスのエクスポートと公開の設定を更新する**

1. CloudWatch ダッシュボードのストレージレンズメトリクスにアクセスする場合は、**[メトリクスの公開]** で、**[CloudWatch の公開]** を選択します。
**注記**  
プレフィックスレベルのメトリクスは CloudWatch では使用できません。

1. **[メトリクスのエクスポート]** で、毎日エクスポートするストレージレンズダッシュボードデータを選択します。
   + **デフォルトのメトリクスレポート**
   + **拡張プレフィックスメトリクスレポート**

1. (オプション) **[デフォルトのメトリクスレポート]** を選択した場合は、**[デフォルトのメトリクスレポート]** 設定でバケットタイプを選択します。レポートは、汎用 S3 バケットまたは読み取り専用 S3 テーブルバケットのいずれかにエクスポートできます。選択したバケットタイプに基づいて、**[汎用バケット送信先設定]** または **[テーブルバケット送信先設定]** オプションを更新します。
**注記**  
**[デフォルトのメトリクスレポート]** には、プレフィックス集約設定で設定されたしきい値と深さ内のプレフィックスのみが含まれます。プレフィックス集約がまだ設定されていない場合、しきい値にはサイズが大きい順に最大 100 個までのプレフィックスが含まれます。
暗号化キーを指定する場合は、AWS KMS キー (SSE-KMS) または Amazon S3 マネージドキー (SSE-S3) を選択する必要があります。送信先バケットポリシーで暗号化が必要な場合は、メトリクスのエクスポートに暗号化キーを指定する必要があります。暗号化キーがないと、S3 へのエクスポートは失敗します。詳細については、「[AWS KMS key を使用してメトリクスのエクスポートを暗号化する](storage_lens_encrypt_permissions.md)」を参照してください。

1. **[次へ]** を選択して変更を保存し、続行します。

1. (オプション) **[拡張プレフィックスメトリクスレポート]** を選択した場合、**[拡張プレフィックスメトリクスレポート]** 設定でバケットタイプを選択します。レポートは、汎用 S3 バケットまたは読み取り専用 S3 テーブルバケットのいずれかにエクスポートできます。選択したバケットタイプに基づいて、**[汎用バケット送信先設定]** または **[テーブルバケット送信先設定]** を更新します。
**注記**  
**[拡張プレフィックスメトリクスレポート]** には、ダッシュボードスコープで指定されているすべてのバケット内のプレフィックスが含まれます。
暗号化キーを指定する場合は、AWS KMS キー (SSE-KMS) または Amazon S3 マネージドキー (SSE-S3) を選択する必要があります。送信先バケットポリシーで暗号化が必要な場合は、メトリクスのエクスポートに暗号化キーを指定する必要があります。暗号化キーがないと、S3 へのエクスポートは失敗します。詳細については、「[AWS KMS key を使用してメトリクスのエクスポートを暗号化する](storage_lens_encrypt_permissions.md)」を参照してください。

1. **[次へ]** を選択して変更を保存し、続行します。

**ステップ 6: ダッシュボード設定を確認して更新する**

1. **[全般]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[ダッシュボードの範囲]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[ストレージレンズ階層]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[メトリクスの集約]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. **[メトリクスのエクスポート]** セクションで、設定を確認します。変更があれば **[編集]** をクリックします。

1. すべてのダッシュボード設定を確認して確定したら、**[送信]** を選択してダッシュボードを更新します。

新しいストレージレンズダッシュボードを正常に更新したら、更新されたダッシュボード設定をストレージレンズ **[ダッシュボード]** ページの下に表示できます。

## の使用AWS CLI
<a name="S3PutStorageLensConfigurationTagsCLI"></a>

**Example**  
次のコマンド例では、Amazon S3 ストレージレンズダッシュボード設定を更新します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control put-storage-lens-configuration --account-id=111122223333 --config-id=example-dashboard-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json --tags=file://./tags.json
```

## AWS SDK for Java の使用
<a name="S3UpdateStorageLensConfigurationAdvancedJava"></a>

**Example – 高度なメトリクスと推奨を使用して Amazon S3 ストレージレンズ設定を更新する**  
次の例は、SDK for Java の高度なメトリクスと推奨を使用してデフォルトの S3 ストレージレンズ設定を更新する方法を示しています。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.ActivityMetrics;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.Format;
import com.amazonaws.services.s3control.model.Include;
import com.amazonaws.services.s3control.model.OutputSchemaVersion;
import com.amazonaws.services.s3control.model.PrefixLevel;
import com.amazonaws.services.s3control.model.PrefixLevelStorageMetrics;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.S3BucketDestination;
import com.amazonaws.services.s3control.model.SSES3;
import com.amazonaws.services.s3control.model.SelectionCriteria;
import com.amazonaws.services.s3control.model.StorageLensAwsOrg;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensDataExport;
import com.amazonaws.services.s3control.model.StorageLensDataExportEncryption;
import com.amazonaws.services.s3control.model.StorageLensTag;

import java.util.Arrays;
import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class UpdateDefaultConfigWithPaidFeatures {

    public static void main(String[] args) {
        String configurationId = "default-account-dashboard"; // This configuration ID cannot be modified.
        String sourceAccountId = "111122223333";

        try {
            SelectionCriteria selectionCriteria = new SelectionCriteria()
                    .withDelimiter("/")
                    .withMaxDepth(5)
                    .withMinStorageBytesPercentage(10.0);
            PrefixLevelStorageMetrics prefixStorageMetrics = new PrefixLevelStorageMetrics()
                    .withIsEnabled(true)
                    .withSelectionCriteria(selectionCriteria);
            BucketLevel bucketLevel = new BucketLevel()
                    .withActivityMetrics(new ActivityMetrics().withIsEnabled(true))
                    .withPrefixLevel(new PrefixLevel().withStorageMetrics(prefixStorageMetrics));
            AccountLevel accountLevel = new AccountLevel()
                    .withActivityMetrics(new ActivityMetrics().withIsEnabled(true))
                    .withBucketLevel(bucketLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );

        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

S3 ストレージレンズグループまたは拡張プレフィックスにアクセスするには、ダッシュボードをアップグレードしてアドバンスト階層を使用する必要があります。別途料金がかかります。無料階層とアドバンスト階層の詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。S3 Storage Lens グループの詳細については、「[S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計](storage-lens-groups-overview.md)」を参照してください。

# Amazon S3 ストレージレンズダッシュボードの無効化
<a name="storage_lens_disabling"></a>

Amazon S3 ストレージレンズダッシュボードは、Amazon S3 コンソールから無効にすることができます。ダッシュボードを無効化すると、その後メトリクスは生成されなくなります。無効化されたダッシュボードは引き続き設定情報を保持するため、簡単に再有効化して復帰させることができます。無効化されたダッシュボードは、クエリに使用できなくなるまで、履歴データを保持します。

# S3 コンソールの使用
<a name="storage_lens_console_disabling"></a>

Amazon S3 コンソールで Amazon S3 ストレージレンズダッシュボードを無効するには、次の手順に従います。

**Amazon S3 ストレージレンズダッシュボードを無効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. [**ダッシュボード**] の一覧から、無効にするダッシュボードを選択し、その一覧の上部にある [**無効化**] をクリックします。

1. 確認ページで、ダッシュボードの無効化を確認するために、テキストフィールドに対象のダッシュボードの名前を入力した上で、**[確認]** をクリックします。

# Amazon S3 ストレージレンズダッシュボードの削除
<a name="storage_lens_deleting"></a>

デフォルトのダッシュボードを削除することはできません。ただし、無効にすることは可能です。作成したダッシュボードを削除する前に、次の点を考慮してください。
+ ダッシュボードを削除する代わりに、*無効化*することもできます。この場合、将来的に同じダッシュボードを再度有効化できます。詳細については、「[S3 コンソールの使用](storage_lens_console_disabling.md)」を参照してください。
+ ダッシュボードを削除すると、そのダッシュボードに関連付けられているすべての構成設定が削除されます。
+ また、ダッシュボードを削除すると、すべての履歴メトリクスデータも利用できなくなります。この履歴データは 15 か月間保持されます。このデータに再度アクセスする場合は、削除されたものと同じホームリージョンで、同じ名前のダッシュボードを再度作成します。

# S3 コンソールの使用
<a name="storage_lens_console_deleting"></a>

Amazon S3 ストレージレンズダッシュボードは、Amazon S3 コンソールから削除できます。ただし、削除されたダッシュボードからは、その後メトリクスは生成されなくなります。

**Amazon S3 Storage Lens ダッシュボードの削除**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. [**ダッシュボード**] の一覧から、削除するダッシュボードを選択した上で、その一覧の上部にある [**削除**] をクリックします。

1. ダッシュボードの削除を確認するために、**ダッシュボードの削除**ページのテキストフィールドに、対象のダッシュボードの名前を入力します。**[Confirm]** (確認) を選択します。

# の使用AWS CLI
<a name="storage_lens_cli_deleting"></a>

**Example**  
 次の例では、S3 ストレージレンズ設定を削除します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control delete-storage-lens-configuration --account-id=222222222222 --region=us-east-1 --config-id=your-configuration-id
```

## AWS SDK for Java の使用
<a name="S3DeleteStorageLensConfigurationJava"></a>

**Example – Amazon S3 ストレージレンズダッシュボードの設定を削除する**  
次の例は、SDK for Java を使用して S3 ストレージレンズ設定を削除する方法を示しています。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.DeleteStorageLensConfigurationRequest;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class DeleteDashboard {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";
        try {
            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.deleteStorageLensConfiguration(new DeleteStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Amazon S3 ストレージレンズダッシュボードを一覧表示する
<a name="storage_lens_list_dashboard"></a>

 

# S3 コンソールの使用
<a name="storage_lens_console_listing"></a>

**S3 ストレージレンズダッシュボードを一覧表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。これで AWS アカウントにダッシュボードを表示できるようになりました。

## の使用AWS CLI
<a name="S3ListStorageLensConfigurationsCLI"></a>

**Example**  
次のコマンド例では、AWS アカウントの S3 ストレージレンズダッシュボードを一覧表示します。これらの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control list-storage-lens-configurations --account-id=222222222222 --region=us-east-1 --next-token=abcdefghij1234
```

**Example**  
次の例では、次のトークンを含まずに、S3 ストレージレンズ設定を一覧表示します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control list-storage-lens-configurations --account-id=222222222222 --region=us-east-1
```

## AWS SDK for Java の使用
<a name="S3ListStorageLensConfigurationsJava"></a>

**Example – S3 ストレージレンズダッシュボード設定を一覧表示する**  
次の例は、SDK for Java で S3 ストレージレンズ設定を一覧表示する方法を示しています。この例を使用するには、`user input placeholders` を実際の情報に置き換えます。各例の説明を参照してください。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.ListStorageLensConfigurationEntry;
import com.amazonaws.services.s3control.model.ListStorageLensConfigurationsRequest;

import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class ListDashboard {

    public static void main(String[] args) {
        String sourceAccountId = "111122223333";
        String nextToken = "nextToken";

        try {
            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            final List<ListStorageLensConfigurationEntry> configurations =
                    s3ControlClient.listStorageLensConfigurations(new ListStorageLensConfigurationsRequest()
                            .withAccountId(sourceAccountId)
                            .withNextToken(nextToken)
                    ).getStorageLensConfigurationList();

            System.out.println(configurations.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Amazon S3 ストレージレンズダッシュボード設定の詳細を表示する
<a name="storage_lens_viewing"></a>

Amazon S3 ストレージレンズダッシュボードは、Amazon S3 コンソール、AWS CLI、および SDK for Java で表示できます。

# S3 コンソールの使用
<a name="storage_lens_console_viewing"></a>

**S3 ストレージレンズダッシュボード設定の詳細を表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。

1. **[ダッシュボード]** リストで、表示するダッシュボードをクリックします。これで、ストレージレンズダッシュボードの詳細を確認できます。

## の使用AWS CLI
<a name="S3ListStorageLensConfigurationsCLI"></a>

**Example**  
次の例では、設定の詳細を表示できるように S3 ストレージレンズ設定を取得します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control get-storage-lens-configuration --account-id=222222222222 --config-id=your-configuration-id --region=us-east-1
```

## AWS SDK for Java の使用
<a name="S3GetStorageLensConfigurationJava"></a>

**Example – S3 ストレージレンズ設定を取得して表示する**  
次の例は、SDK for Java で S3 ストレージレンズ設定を取得して、設定の詳細を表示できるようにする方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.GetStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.GetStorageLensConfigurationResult;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class GetDashboard {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";

        try {
            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            final StorageLensConfiguration configuration =
                    s3ControlClient.getStorageLensConfiguration(new GetStorageLensConfigurationRequest()
                            .withAccountId(sourceAccountId)
                            .withConfigId(configurationId)
                    ).getStorageLensConfiguration();

            System.out.println(configuration.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# S3 ストレージレンズによる AWS リソースタグの管理
<a name="storage-lens-groups-manage-tags-dashboard"></a>

Amazon S3 ストレージレンズダッシュボードはそれぞれ独自の Amazon リソースネーム (ARN) を持つ AWS リソースとみなされます。そのため、ストレージレンズダッシュボードを設定するときに、オプションでダッシュボードに AWS リソースタグを追加できます。ストレージレンズダッシュボードごとに最大 50 個のタグを追加できます。タグを使用して ストレージレンズダッシュボードを作成するには、次の [S3 ストレージレンズアクセス許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_iam_permissions.html)が必要です。
+ `s3:ListStorageLensConfigurations`
+ `s3:GetStorageLensConfiguration`
+ `s3:GetStorageLensConfigurationTagging`
+ `s3:PutStorageLensConfiguration`
+ ` s3:PutStorageLensConfigurationTagging`

AWS リソースタグを使用して、部門、事業内容、またはプロジェクトごとにリソースを分類できます。これは、同じ種類のリソースが多い場合に役立ちます。タグを適用すると、割り当てたタグに基づいて特定の S3 ストレージレンズダッシュボードをすばやく識別できます。また、コストの追跡と割り当てにもタグを使用できます。

さらに、ストレージレンズダッシュボードに AWS リソースタグを追加すると、[属性ベースのアクセス制御 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) が有効になります。ABAC は、タグなどの属性に基づいて権限を定義する認可戦略です。IAM ポリシーでリソースタグを指定する条件を使用して、[AWS リソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)を制御できます。

タグのキーと値は編集でき、タグはリソースからいつでも削除できます。また、次の点について注意してください:
+ キーとタグの値は大文字と小文字が区別されます。
+ 特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、以前の値は新しい値によって上書きされます。
+ リソースを削除すると、リソースのタグも削除されます。
+ AWS リソースタグにはプライベートデータや機密データを含めないでください。
+ システムタグ (`aws:` で始まるタグキーの場合) はサポートされていません。
+ 各タグキーの長さは 128 文字以下にする必要があります。各タグ値の長さは 256 文字以下にする必要があります。

次の例は、ストレージレンズダッシュボードで AWS リソースタグを使用する方法を示しています。

**Topics**
+ [ストレージレンズダッシュボードに AWS リソースタグを追加する](storage-lens-add-tags.md)
+ [ストレージレンズダッシュボードの AWS リソースタグを取得する](storage-lens-get-tags.md)
+ [ストレージレンズダッシュボードタグの更新](storage-lens-update-tags.md)
+ [S3 ストレージレンズダッシュボードから AWS リソースタグを削除する](storage-lens-dashboard-delete-tags.md)

# ストレージレンズダッシュボードに AWS リソースタグを追加する
<a name="storage-lens-add-tags"></a>

次の例は、S3 ストレージレンズダッシュボードに AWS リソースタグを使用する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してリソースタグを追加できます。

## S3 コンソールの使用
<a name="storage-lens-add-tags-console"></a>

**ストレージレンズダッシュボードに AWS リソースタグを追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、左側のナビゲーションパネルにある **[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。

1. 更新するストレージレンズダッシュボードのラジオボタンを選択します。続いて、**[Edit]** (編集) をクリックします。

1. **[全般]** で、**[編集]** を選択します。

1. **[タグの追加]** ページで、新しいキーと値のペアを追加します。
**注記**  
既存のタグと同じ新しいタグを追加すると、以前のタグ値は上書きされます。

1. (オプション) 複数の新しいタグを追加するには、**[タグを追加]** を再度選択して新しいエントリを追加し続けます。ストレージレンズダッシュボードには、最大 50 個の AWS リソースタグを追加できます。

1. (オプション) 新規追加されたエントリを削除する場合は、削除するタグの横にある**[削除]** を選びます。

1. **[Save changes]** (変更の保存) をクリックします。

## の使用AWS CLI
<a name="storage-lens-add-tags-cli"></a>

**Example**  
次のコマンド例では、S3 ストレージレンズダッシュボード設定にタグを追加します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control put-storage-lens-configuration-tagging --account-id=222222222222 --region=us-east-1 --config-id=your-configuration-id --tags=file://./tags.json
```

## AWS SDK for Java の使用
<a name="storage-lens-add-tags-sdk-java"></a>

次の例では、SDK for Java により、Amazon S3 ストレージレンズ設定にタグを追加します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

**Example – S3 ストレージレンズ設定にタグを追加する**  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationTaggingRequest;
import com.amazonaws.services.s3control.model.StorageLensTag;

import java.util.Arrays;
import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class PutDashboardTagging {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";

        try {
            List<StorageLensTag> tags = Arrays.asList(
                    new StorageLensTag().withKey("key-1").withValue("value-1"),
                    new StorageLensTag().withKey("key-2").withValue("value-2")
            );

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfigurationTagging(new PutStorageLensConfigurationTaggingRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withTags(tags)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# ストレージレンズダッシュボードの AWS リソースタグを取得する
<a name="storage-lens-get-tags"></a>

次の例は、S3 ストレージレンズダッシュボードの AWS リソースタグを取得する方法を示しています。Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してリソースタグを取得できます。

# S3 コンソールの使用
<a name="storage-lens-get-tags-console"></a>

**ストレージレンズダッシュボードの AWS リソースタグを取得するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。

1. 表示するストレージレンズダッシュボード設定のラジオボタンを選択します。次に、**[ダッシュボード設定を表示]** を選択します。

1. **[タグ]** で、ダッシュボードに関連付けられているタグを確認します。

1. (オプション) 新しいタグを追加する場合は、**[編集]** を選択します。次に、**[タグの追加]** を選択します。**[タグの追加]** ページで、新しいキーと値のペアを追加します。
**注記**  
既存のタグと同じ新しいタグを追加すると、以前のタグ値は上書きされます。

1. (オプション) 新規追加されたエントリを削除する場合は、削除するタグの横にある**[削除]** を選びます。

1. **[Save changes]** (変更の保存) をクリックします。

## の使用AWS CLI
<a name="storage-lens-get-tags-cli"></a>

**Example**  
次のコマンド例では、S3 ストレージレンズダッシュボード設定のタグを取得します。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control get-storage-lens-configuration-tagging --account-id=222222222222 --region=us-east-1 --config-id=your-configuration-id --tags=file://./tags.json
```

## AWS SDK for Java の使用
<a name="S3GetStorageLensConfigurationTaggingJava"></a>

**Example – S3 ストレージレンズダッシュボード設定のタグを取得する**  
次の例は、SDK for Java で S3 ストレージレンズダッシュボード設定のタグを取得する方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.DeleteStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.GetStorageLensConfigurationTaggingRequest;
import com.amazonaws.services.s3control.model.StorageLensTag;

import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class GetDashboardTagging {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";
        try {
            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            final List<StorageLensTag> s3Tags = s3ControlClient
                    .getStorageLensConfigurationTagging(new GetStorageLensConfigurationTaggingRequest()
                            .withAccountId(sourceAccountId)
                            .withConfigId(configurationId)
                    ).getTags();

            System.out.println(s3Tags.toString());
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# ストレージレンズダッシュボードタグの更新
<a name="storage-lens-update-tags"></a>

以下の例は、Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してストレージレンズダッシュボードを更新する方法を示しています。

## S3 コンソールの使用
<a name="storage-lens-dashboard-update-tags-console"></a>

**ストレージレンズダッシュボードの AWS リソースタグを更新するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。

1. 表示するストレージレンズダッシュボード設定のラジオボタンを選択します。次に、**[ダッシュボード設定を表示]** を選択します。

1. **[タグ]** で、ダッシュボードに関連付けられているタグを確認します。

1. (オプション) 新しいタグを追加する場合は、**[編集]** を選択します。次に、**[タグの追加]** を選択します。**[タグの追加]** ページで、新しいキーと値のペアを追加します。
**注記**  
既存のタグと同じ新しいタグを追加すると、以前のタグ値は上書きされます。

1. (オプション) 新規追加されたエントリを削除する場合は、削除するタグの横にある**[削除]** を選びます。

1. **[Save changes]** (変更の保存) をクリックします。

## の使用AWS CLI
<a name="storage-lens-dashboard-update-tags-cli"></a>

**Example**  
次のコマンド例では、既存の Amazon S3 ストレージレンズダッシュボード設定にタグを追加または置き換えます。これらの例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws s3control put-storage-lens-configuration-tagging --account-id=111122223333 --config-id=example-dashboard-configuration-id --region=us-east-1 --config-id=your-configuration-id
```

## AWS SDK for Java の使用
<a name="storage-lens-dashboard-update-tags-sdk-java"></a>

次の AWS SDK for Java 例では、既存の ストレージレンズダッシュボードの AWS リソースタグを更新します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

**Example – 既存のストレージレンズダッシュボード設定のタグを更新する**  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationTaggingRequest;
import com.amazonaws.services.s3control.model.StorageLensTag;

import java.util.Arrays;
import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class PutDashboardTagging {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";

        try {
            List<StorageLensTag> tags = Arrays.asList(
                    new StorageLensTag().withKey("key-1").withValue("value-1"),
                    new StorageLensTag().withKey("key-2").withValue("value-2")
            );

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfigurationTagging(new PutStorageLensConfigurationTaggingRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withTags(tags)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# S3 ストレージレンズダッシュボードから AWS リソースタグを削除する
<a name="storage-lens-dashboard-delete-tags"></a>

次の例は、既存のストレージレンズダッシュボードから AWS リソースタグを削除する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してタグを削除できます。

## S3 コンソールの使用
<a name="storage-lens-groups-delete-tags-console"></a>

**既存のストレージレンズダッシュボードから AWS リソースタグを削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[ダッシュボード]** を選択します。

1. 表示するストレージレンズダッシュボード設定のラジオボタンを選択します。次に、**[ダッシュボード設定を表示]** を選択します。

1. **[タグ]** で、ダッシュボードに関連付けられているタグを確認します。

1. 削除するタグの横にある **[削除]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

## の使用AWS CLI
<a name="storage-lens-dashboard-delete-tags-cli"></a>

次の AWS CLI コマンドは、既存の ストレージレンズダッシュボードから AWS リソースタグを削除します。このコマンドの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

**Example**  

```
aws s3control delete-storage-lens-configuration-tagging --account-id=222222222222 --config-id=your-configuration-id --region=us-east-1
```

## AWS SDK for Java の使用
<a name="storage-lens-dashboard-delete-tags-sdk-java"></a>

次の AWS SDK for Java 例では、アカウント `111122223333` で指定した Amazon リソースネーム (ARN) を使用して、ストレージレンズダッシュボードから 2 つの AWS リソースタグを削除します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

**Example – S3 ストレージレンズダッシュボード設定のタグを削除する**  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.DeleteStorageLensConfigurationTaggingRequest;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class DeleteDashboardTagging {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "111122223333";
        try {
            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.deleteStorageLensConfigurationTagging(new DeleteStorageLensConfigurationTaggingRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Amazon S3 ストレージレンズを使用するためのヘルパーファイル
<a name="S3LensHelperFilesCLI"></a>

次の JSON ファイルとキー入力を例として使用します。

## JSON の S3 Storage Lens 例の設定
<a name="S3LensHelperFilesSampleConfigurationCLI"></a>

**Example `config.json`**  
`config.json` ファイルには、S3 ストレージレンズの組織レベルの*高度なメトリクスとレコメンデーション*に関する設定の詳細が含まれています。次の例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。  
高度なメトリクスとレコメンデーションには追加料金が適用されます。詳細については、「[高度なメトリクスとレコメンデーション事項](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html#storage_lens_basics_metrics_selection)」を参照してください。

```
{
  "Id": "SampleS3StorageLensConfiguration", //Use this property to identify your S3 Storage Lens configuration.
  "AwsOrg": { //Use this property when enabling S3 Storage Lens for AWS Organizations.
    "Arn": "arn:aws:organizations::123456789012:organization/o-abcdefgh"
  },
  "AccountLevel": {
    "ActivityMetrics": {
      "IsEnabled":true
    },
    "AdvancedCostOptimizationMetrics": {
      "IsEnabled":true
    },
    "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
    },
    "DetailedStatusCodesMetrics": {
      "IsEnabled":true
    },
    "BucketLevel": {
      "ActivityMetrics": {
        "IsEnabled":true
      },
      "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
      },
      "AdvancedCostOptimizationMetrics": {
        "IsEnabled":true
      },
      "DetailedStatusCodesMetrics": {
        "IsEnabled":true
      },
      "PrefixLevel":{
        "StorageMetrics":{
          "IsEnabled":true,
          "SelectionCriteria":{
            "MaxDepth":5,
            "MinStorageBytesPercentage":1.25,
            "Delimiter":"/"
          }
        }
      }
    }
  },
  "Exclude": { //Replace with "Include" if you prefer to include Regions.
    "Regions": [
      "eu-west-1"
    ],
    "Buckets": [ //This attribute is not supported for AWS Organizations-level configurations.
      "arn:aws:s3:::amzn-s3-demo-source-bucket"
    ]
  },
  "IsEnabled": true, //Whether the configuration is enabled
  "DataExport": { //Details about the metrics export
    "S3BucketDestination": {
      "OutputSchemaVersion": "V_1",
      "Format": "CSV", //You can add "Parquet" if you prefer.
      "AccountId": "111122223333",
      "Arn": "arn:aws:s3:::
amzn-s3-demo-destination-bucket", // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration. 
      "Prefix": "prefix-for-your-export-destination",
      "Encryption": {
        "SSES3": {}
      }
    },
    "CloudWatchMetrics": {
      "IsEnabled": true
    }
  }
}
```

## JSON の Storage Lens グループを使用した S3 Storage Lens の設定例
<a name="StorageLensGroupsHelperFilesCLI"></a>

**Example `config.json`**  

`config.json` ファイルには、Storage Lens グループを使用する際に Storage Lens 設定に適用する詳細が含まれています。例を使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。

すべての Storage Lens グループをダッシュボードにアタッチするには、Storage Lens 設定を以下の構文で更新します。

```
{
  "Id": "ExampleS3StorageLensConfiguration",
  "AccountLevel": {
    "ActivityMetrics": {
      "IsEnabled":true
    },
    "AdvancedCostOptimizationMetrics": {
      "IsEnabled":true
    },
    "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
    },
    "BucketLevel": {
      "ActivityMetrics": {
      "IsEnabled":true
      },
    "StorageLensGroupLevel": {},
  "IsEnabled": true
}
```

Storage Lens ダッシュボード設定に 2 つの Storage Lens グループ (*slg-1* と *slg-2*) のみを含めるには、次の構文を使用します。

```
{
  "Id": "ExampleS3StorageLensConfiguration",
  "AccountLevel": {
    "ActivityMetrics": {
      "IsEnabled":true
    },
    "AdvancedCostOptimizationMetrics": {
      "IsEnabled":true
    },
    "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
    },
    "BucketLevel": {
      "ActivityMetrics": {
      "IsEnabled":true
      },
   "StorageLensGroupLevel": {
        "SelectionCriteria": {
            "Include": [
                "arn:aws:s3:us-east-1:111122223333:storage-lens-group/slg-1",
                "arn:aws:s3:us-east-1:444455556666:storage-lens-group/slg-2"
            ]
    },
  "IsEnabled": true
}
```

特定の Storage Lens グループのみがダッシュボード設定にアタッチされないようにするには、次の構文を使用します。

```
{
  "Id": "ExampleS3StorageLensConfiguration",
  "AccountLevel": {
    "ActivityMetrics": {
      "IsEnabled":true
    },
    "AdvancedCostOptimizationMetrics": {
      "IsEnabled":true
    },
    "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
    },
    "BucketLevel": {
      "ActivityMetrics": {
      "IsEnabled":true
      },
   "StorageLensGroupLevel": {
        "SelectionCriteria": {
            "Exclude": [
                "arn:aws:s3:us-east-1:111122223333:storage-lens-group/slg-1",
                "arn:aws:s3:us-east-1:444455556666:storage-lens-group/slg-2"
            ]
    },
  "IsEnabled": true
}
```

## JSON の S3 Storage Lens タグ例の設定
<a name="S3LensHelperFilesSampleConfigurationTagsCLI"></a>

**Example `tags.json`**  
`tags.json` ファイルには、S3 ストレージレンズ設定に適用するためのタグが含まれています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
[
    {
        "Key": "key1",
        "Value": "value1"
    },
    {
        "Key": "key2",
        "Value": "value2"
    }
]
```

## S3 Storage Lens での IAM アクセス許可の設定例
<a name="S3LensHelperFilesSampleConfigurationIAMPermissionsCLI"></a>

**Example `permissions.json` — 特定のダッシュボード名**  
このポリシー例は、特定のダッシュボード名が指定されている S3 ストレージレンズ IAM アクセス許可を示しています。*`value1`*、`us-east-1`、`your-dashboard-name`、`example-account-id` を独自の値に置き換えます。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetStorageLensConfiguration",
                "s3:DeleteStorageLensConfiguration",
                "s3:PutStorageLensConfiguration"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/key1": "value1"
                }
            },
            "Resource": "arn:aws:s3:us-east-1:111122223333:storage-lens/your-dashboard-name"
        }
    ]
}
```

**Example `permissions.json` — 特定のダッシュボード名がない場合**  
このポリシー例は、特定のダッシュボード名が指定されていない S3 ストレージレンズ IAM アクセス許可を示しています。*`value1`*、`us-east-1`、`example-account-id` を独自の値に置き換えます。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetStorageLensConfiguration",
                "s3:DeleteStorageLensConfiguration",
                "s3:PutStorageLensConfiguration"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/key1": "value1"
                }
            },
            "Resource": "arn:aws:s3:us-east-1:111122223333:storage-lens/*"
        }
    ]
}
```

# Amazon S3 ストレージレンズでのメトリクスの表示
<a name="storage_lens_view_metrics"></a>

S3 ストレージレンズはメトリクスを集約し、Amazon S3 コンソールの **[Buckets]** (バケット) ページの **[Account snapshot]** (アカウントのスナップショット) セクションにこの情報を表示します。S3 ストレージレンズは、インサイトと傾向を可視化したり、外れ値にフラグ付けしたり、ストレージコストの最適化やデータ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ったりするために使用できるインタラクティブダッシュボードも提供します。ダッシュボードには、組織、アカウント、AWS リージョン、ストレージクラス、バケット、プレフィックス、またはストレージレンズのグループレベルでインサイトを生成して可視化できる、ドリルダウンオプションが用意されています。毎日のメトリクスレポートを CSV または Parquet 形式で汎用 S3 バケットに送信したり、メトリクスを AWS マネージド S3 テーブルバケットに直接エクスポートしたりすることもできます。

デフォルトで、すべてのダッシュボードには無料のメトリクスが設定されています。メトリクスには、S3 ストレージ全体の使用状況とアクティビティを把握し、ストレージコストを最適化し、データ保護とアクセス管理のベストプラクティスを実装するために使用できるメトリクスが含まれています。無料のメトリクスはバケットレベルまで下って集計されます。データは、最長 14 日間のクエリで利用可能です。

高度なメトリクスとレコメンデーションには、ストレージ全体の使用状況やアクティビティを詳細に把握するために使用できる以下の追加機能や、ストレージを最適化するためのベストプラクティスが含まれています。
+ コンテキストレコメンデーション (ダッシュボードでのみ使用可能)
+ 高度なメトリクス (バケットごとに集計されたアクティビティメトリクスを含む)
+ プレフィックス集約
+ Storage Lens グループ集約
+ Storage Lens グループ集約
+ Amazon CloudWatch パブリッシング

高度なメトリクスデータは 15 か月間クエリで使用できます。S3 ストレージレンズで高度なメトリクスを使用するには、追加料金がかかります。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing)」を参照してください。無料のメトリクスと高度なメトリクスの詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

**Topics**
+ [ダッシュボードで S3 Storage Lens のメトリクスを表示する](storage_lens_view_metrics_dashboard.md)
+ [データエクスポートで Amazon S3 Storage Lens のメトリクスを確認する](storage_lens_view_metrics_export.md)
+ [CloudWatch で S3 Storage Lens のメトリクスをモニタリング](storage_lens_view_metrics_cloudwatch.md)
+ [Amazon S3 ストレージレンズメトリクスのユースケース](storage-lens-use-cases.md)

# ダッシュボードで S3 Storage Lens のメトリクスを表示する
<a name="storage_lens_view_metrics_dashboard"></a>

Amazon S3 コンソールでは、S3 Storage Lens により提供されるインタラクティブなデフォルトダッシュボードを使用して、データのインサイトと傾向を可視化できます。このダッシュボードでは、外れ値にフラグ付けして、ストレージコストの最適化や、データ保護のベストプラクティスの適用に関するレコメンデーション事項を受け取ることもできます。ダッシュボードには、アカウント、バケット、AWS リージョン、またはプレフィックス、または Storage Lens グループレベルでインサイトを生成できる、ドリルダウンオプションが用意されています。S3 Storage Lens と AWS Organizations が連携できるようにした場合は、組織レベルでインサイトを生成することもできます (AWS Organizations ヒエラルキーに属するすべてのアカウントのデータなど)。ダッシュボードでは常に、メトリクスの集計が可能な、最新の日付で読み込みが行われます。

コンソールの S3 ストレージレンズのデフォルトダッシュボードの名前は、**default-account-dashboard** です。Amazon S3 ではこのダッシュボードが事前定義されており、アカウント全体の要約されたインサイトとトレンドを視覚化し、S3 コンソールで毎日更新します。デフォルトのダッシュボードのスコープ設定を変更することはできませんが、選択するメトリクスを、無料メトリクスから有料の高度な推奨のメトリクスに、アップグレードすることはできます。高度なメトリクスとレコメンデーションにより、その他のメトリクスや機能にアクセスできます。これらの機能には、高度なメトリクスカテゴリ、プレフィックスレベルでの集約、コンテキストに応じたレコメンデーション、Amazon CloudWatch パブリッシングなどがあります。

デフォルトのダッシュボードは無効にできますが、削除はできません。デフォルトのダッシュボードを無効にすると、更新されなくなります。S3 ストレージレンズまたは **[バケット]** ページの **[アカウントのスナップショット]** で、新しい毎日のメトリクスを受け取ることはなくなります。データクエリの 14 日の有効期限が切れるまでは、デフォルトダッシュボードで履歴データを引き続き表示できます。高度なメトリクスとレコメンデーションを有効にしている場合、この期間は 15 か月です。このデータにアクセスするには、有効期限内にダッシュボードを再度有効化します。

追加の S3 Storage Lens ダッシュボードを作成し、、S3 バケット、またはアカウント ( の場合) によってスコープを設定できます。Storage Lens が AWS Organizations と連携できるようにしている場合は、組織別にダッシュボードの範囲を設定することもできます。S3 Storage Lens ダッシュボードを作成または編集するとき、ダッシュボードのスコープとメトリクスの選択を定義します。

 

作成したその他のダッシュボードは無効化または削除できます。
+ ダッシュボードを無効にすると、そのダッシュボードは更新されなくなるので、日次で新しいメトリクスが生成されることもなくなります。無料メトリクスの履歴データについては、14 日間の有効期限まで参照することが可能です。そのダッシュボードで高度なメトリクスとレコメンデーションを有効にした場合、この期間は 15 か月です。有効期限内であれば、ダッシュボードを再度有効化することで、このデータにアクセスできるようになります。
+ ダッシュボードを削除すると、それまでの設定内容はすべて失われます。削除されたダッシュボードからは、それ以後の新しい日次のメトリクスは受信できなくなり、そのダッシュボードに関連付けられた履歴データにもアクセスできなくなります。削除したダッシュボードの履歴データにアクセスする場合は、同じホームリージョンで同じ名前を使用しながら、新たなダッシュボードを作成する必要があります。

**Topics**
+ [Amazon S3 Storage Lens ダッシュボードの表示](#storage_lens_console_viewing)
+ [S3 Storage Lens ダッシュボードを理解する](#storage_lens_console_viewing_dashboard)

## Amazon S3 Storage Lens ダッシュボードの表示
<a name="storage_lens_console_viewing"></a>

以下の手順は、S3 コンソールで S3 ストレージレンズダッシュボードを表示する方法です。ダッシュボードを使用してコストを最適化する方法、ベストプラクティスを実装する方法、S3 バケットにアクセスするアプリケーションのパフォーマンスを向上させる方法を示すユースケースベースのチュートリアルについては、「[Amazon S3 ストレージレンズメトリクスのユースケース](storage-lens-use-cases.md)」を参照してください。

**注記**  
Amazon S3 ストレージレンズダッシュボードを表示するために、アカウントのルートユーザーの認証情報を使用することはできません。S3 ストレージレンズダッシュボードにアクセスするには、新規または既存の IAM ユーザーに対し、必要な AWS Identity and Access Management (IAM) アクセス許可を付与する必要があります。その後、それらのユーザーの認証情報によりサインインを行い、S3 Storage Lens ダッシュボードにアクセスします。詳細については、「*IAM ユーザーガイド*」の「[Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md)」と「[IAM でのセキュリティベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

   ダッシュボードは S3 ストレージレンズで開きます。**[*日付*のスナップショット]** セクションには、S3 ストレージレンズがメトリクスを収集した最新の日付が表示されます。ダッシュボードでは常に、メトリクスの集計が可能な、最新の日付で読み込みが行われます。

1. (オプション) S3 ストレージレンズダッシュボードの日付を変更するには、右上の日付セレクターで新しい日付を選択します。

1. (オプション) ダッシュボードのデータの範囲をさらに限定するために一時的なフィルターを適用するには、次の操作を行います。

   1. **[フィルター]** セクションを展開します。

   1. 特定のアカウント、AWS リージョン、ストレージクラス、またはバケット、プレフィックス、または Strage Lens グループでフィルタリングするには、フィルタリングするオプションを選択します。
**注記**  
**プレフィックス**フィルターと **Storage Lens グループ**フィルターは同時に適用できません。

   1. フィルターを更新するには、**[Apply]** (適用) を選択します。

   1. フィルターを削除するには、フィルターの横にある **[X]** をクリックします。

1. S3 ストレージレンズダッシュボードのどのセクションでも、特定のメトリクスのデータを表示するには、**[Metric]** (メトリクス) でメトリクス名を選択します。

1. S3 Storage Lens ダッシュボードのどのグラフや可視化でも、**[アカウント]**、**[AWS リージョン]**、**[ストレージクラス]**、**[バケット]**、**[プレフィックス]**、または **[ストレージレンズグループ]** タブを使用して、より深いレベルの集約にドリルダウンできます。例については、[コールド Amazon S3 バケットを検出する](storage-lens-optimize-storage.md#uncover-cold-buckets)を参照してください。

## S3 Storage Lens ダッシュボードを理解する
<a name="storage_lens_console_viewing_dashboard"></a>

S3 ストレージレンズダッシュボードには、基本の **[Overview]** (概要) タブと、個別の集計レベルを表示するための最大 5 つの追加タブがあります。
+ **Accounts**:
+ **AWS リージョン**
+ **ストレージクラス**
+ **バケット**
+ **プレフィックス**
+ **Storage Lens グループ**

**[概要]** タブでは、ダッシュボードのデータが **[*日付*のスナップショット]**、**[傾向とディストリビューション]**、**[トップ N の概要]** の 3 つのセクションに集約されます。

S3 ストレージレンズの詳細については、次のセクションを参照してください。

### Snapshot
<a name="storage-lens-snapshot"></a>

**[*日付*のスナップショット]** セクションには、選択した日付で S3 ストレージレンズにより集計されたメトリクスの概要が表示されます。これらの要約メトリクスには、以下の指標が含まれます。
+ **合計ストレージ** — 使用されているストレージの合計容量 (バイト単位)。
+ **オブジェクト数** — AWS アカウント 内のオブジェクトの総数。
+ **平均オブジェクトサイズ** – オブジェクトの平均サイズ。
+ **アクティブなバケット** – アカウントでストレージが 0 バイトを超える、アクティブに使用されているアクティブなバケットの総数。
+ **アカウント** – ストレージがスコープ内にあるアカウントの数。AWS Organizations を使用している場合を除き、この値は **1** です。この場合、S3 ストレージレンズには、有効なサービスにリンクされたロールを持つ、信頼されたアクセス権があります。詳細については、「[Amazon S3 ストレージレンズでのサービスにリンクされたロールの使用](using-service-linked-roles.md)」を参照してください。
+ **バケット** — アカウント内のバケットの総数。

**メトリクスデータ**  
スナップショットに表示される各メトリクスについて、次のデータが表示されます。
+ **メトリクス名** – メトリクスの名前。
+ **メトリクスカテゴリ** – メトリクスが分類されるカテゴリ。
+ ***日付*の合計** – 選択した日付の合計数。
+ **% change** – 最後のスナップショット日からの変化率。
+ **30 日間のトレンド** – 30 日間のメトリクスの変化を示すトレンドライン。
+ **レコメンデーション** – スナップショットで提供されたデータに基づく状況に応じたレコメンデーション。レコメンデーションには、高度なメトリクスとレコメンデーションが用意されています。詳細については、「[推奨事項](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_recommendations)」を参照してください。

**メトリクスカテゴリ**  
必要に応じて、ダッシュボードの **[*日付*のスナップショット]** セクションを更新して、他のカテゴリのメトリクスを表示できます。その他のメトリクスのスナップショットデータを表示したい場合は、以下の **[Metrics categories]** (メトリクスカテゴリ) から選択できます。
+ **コスト最適化** 
+ **データ保護**
+ **アクティビティ** (高度なメトリクスで利用可能)
+ **アクセス管理**
+ **パフォーマンス**
+ **Events**

**[*日付*のスナップショット]** セクションには、各カテゴリの選択したメトリクスのみが表示されます。特定のカテゴリのすべての指標を確認するには、**[Trends and distributions]** (傾向とディストリビューション)、**[Top N overview]** (トップ N の概要) セクションで指標を選択します。Storage Lens グループに [メトリクスのカテゴリ](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types) リソースタグを追加する S3 ストレージレンズメトリクスの完全なリストについては、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

### 傾向と分布
<a name="storage-lens-trends"></a>

**[Overview]** (概要) タブの 2 番目のセクションは、**[Trends and distributions]** (傾向とディストリビューション) です。**[Trends and distributions]** (傾向とディストリビューション) セクションでは、定義した日付範囲で比較するメトリクスを 2 つ選択できます。**[Trends and distributions]** (傾向とディストリビューション) セクションには、2 つのメトリクスの経時的な関係が表示されます。追跡している 2 つの傾向の間で、**[Storage class]** (ストレージクラス) と **[Region]** (リージョン) での分布を確認できます。オプションで、いずれかのチャートのデータポイントにドリルダウンして、より詳細な分析を行うことができます。

 **[Trends and distributions]** (傾向とディストリビューション) セクションを使ったチュートリアルについては、「[AWS KMS によるデフォルトの暗号化 (SSE-KMS) でサーバー側暗号化を使用しないバケットを識別する](storage-lens-data-protection.md#storage-lens-sse-kms)」を参照してください。

### トップ N の概要
<a name="storage-lens-top-n"></a>

S3 Storage Lens ダッシュボードの 3 番目のセクションは、(昇順または降順でソートされた) **トップ N の概要**です。このセクションでは、AWS リージョン、バケット、プレフィックス、または Storage Lens グループの上位の数から選択したメトリクスが表示されます。S3 Storage Lens と AWS Organizations が連携できるようにした場合は、選択したメトリクスを組織全体で表示することもできます。

**[Top N overview]** (トップ N の概要) セクションを使用するチュートリアルについては、「[最大の S3 バケットを特定する](storage-lens-optimize-storage.md#identify-largest-s3-buckets)」を参照してください。

### オプションによるドリルダウンと次により分析
<a name="storage-lens-drill-down"></a>

S3 Storage Lens ダッシュボードには、グラフ上の値を選択したときに表示される、アクションメニューが用意されており、これにより分析のための円滑な操作を実現しています。このメニューを使用するには、関連するメトリクス値を表示するには、グラフから任意の値を選択してから、表示されるボックスで次の 2 つのオプションから選択します。
+ **[Drill down]** (ドリルダウン) アクションでは、選択した値が、ダッシュボードのすべてのタブでフィルターとして適用されます。その値にドリルダウンして、より深い分析を行うことができます。
+ **[次により分析:]** アクションを実行すると、選択する **[ディメンション]** タブに移動し、そのタブ値をフィルターとして適用します。これらのタブには、**[アカウント]**、**[AWS リージョン]**、**[ストレージクラス]**、**[バケット]**、**[プレフィックス]** (**[高度なメトリクス]** と **[プレフィックス集約]** が有効になっているダッシュボード用)、および **[ストレージレンズグループ]** (**[高度なメトリクス]** と **[ストレージレンズグループ集約]** が有効になっているダッシュボード用) が含まれます。**[次により分析:]** を使うと、データを新しいディメンションのコンテキストで表示しながら、より深い分析を行うことができます。

非論理的な結果が出力された場合、あるいは値が存在しない場合には、**[ドリルダウン]** と **[次により分析:]** アクションが無効化されることがあります。**[ドリルダウン]** と **[次により分析:]** アクションでは、ダッシュボードのすべてのタブにわたって、既存のフィルターの上に新たなフィルタが適用されます。必要に応じて、フィルタを削除することも可能です。

### タブ
<a name="storage-lens-dimension-tabs"></a>

ディメンションレベルタブには、特定のディメンション内のすべての値に関する詳細が表示されます。例えば、**[AWS リージョン]** タブにはすべての AWS リージョン のメトリクスが表示され、**[バケット]** タブにはすべてのバケットのメトリクスが表示されます。各ディメンションタブは、次の 4 つのセクションからなる共通のレイアウトで構成されています。
+ 選択したメトリクスのディメンション内で、直近 30 日間の上位 *N* 個の項目を表示する傾向グラフ。このグラフが表示する項目数は、デフォルトで上位 10 個に設定されていますが、上位 3 個に減らしたり、50 個まで増やしたりすることができます。
+ 選択した日付とメトリクスについての縦棒グラフを表示する ヒストグラムグラフ。このグラフに表示されるアイテムの数が非常に多い場合は、水平方向にスクロールする必要がある場合があります。
+ ディメンション内のすべての項目をプロットするバブル分析チャート。このチャートは X 軸に 1 番目のメトリクスを、Y 軸に 2 番目のメトリクスを表します。3 番目のメトリクスはバブルのサイズで表されます。
+ 行内でリストされた、ディメンション内の各アイテムを表示する、メトリクスグリッドビュー。列には、利用可能なメトリクスがメトリクスカテゴリのタブで整理されて表示されるので、ナビゲーションが容易に行えます。

# データエクスポートで Amazon S3 Storage Lens のメトリクスを確認する
<a name="storage_lens_view_metrics_export"></a>

Amazon S3 ストレージレンズのメトリクスは、CSV または Apache Parquet 形式を使用した、メトリクスのエクスポートファイルとして毎日生成され、アカウントの S3 汎用バケットに保存されます。バケットにエクスポートされたメトリクスは、Amazon Quick や Amazon Athena などの任意の分析ツールに取り込むことで、ストレージの使用状況とアクティビティの傾向を分析できるようになります。AWS 分析サービスまたはサードパーティーツールを使用して、AWS マネージド S3 テーブルバケットに毎日のメトリクスエクスポートを送信して、即時クエリを実行することもできます。

**Topics**
+ [AWS KMS key を使用してメトリクスのエクスポートを暗号化する](storage_lens_encrypt_permissions.md)
+ [S3 Storage Lens のエクスポートマニフェストとは?](storage_lens_whatis_metrics_export_manifest.md)
+ [Amazon S3 ストレージレンズのエクスポートスキーマを理解する](storage_lens_understanding_metrics_export_schema.md)

# AWS KMS key を使用してメトリクスのエクスポートを暗号化する
<a name="storage_lens_encrypt_permissions"></a>

カスタマーマネージドキーを使用してメトリクスのエクスポートを暗号化するアクセス許可を Amazon S3 ストレージレンズに付与するには、キーポリシーを使用する必要があります。S3 ストレージレンズのメトリクスのエクスポートの暗号化に KMS を使用できるようにキーポリシーを変更するには、次の手順に従います。

**S3 ストレージレンズに KMS キーを使用したデータの暗号化のアクセス許可を付与するには**

1. カスタマーマネージドキーを所有する AWS アカウント を使用して、AWS マネジメントコンソール にサインインします。

1. AWS KMS コンソール ([https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)) を開きます。

1. AWS リージョン を変更するには、ページの右上隅にある**リージョンセレクター**を使用します。

1. 左のナビゲーションペインで、[**Customer managed keys **] を選択します。

1. [**カスタマーマネージドキー**] で、メトリクスのエクスポートを暗号化するために使用するキーを選択します。AWS KMS keys はリージョン固有で、メトリクスのエクスポート先である S3 バケットと同じリージョンにある必要があります。

1. [**Key policy**] 行で、[**Switch to policy view**] を選択します。

1. [**編集**] をクリックし、キーポリシーを更新します。

1. [**キーポリシーの編集**] で、既存のキーポリシーに次のキーポリシーを追加します。このポリシーを使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。

   ```
   {
       "Sid": "Allow Amazon S3 Storage Lens use of the KMS key",
        "Effect": "Allow",
       "Principal": {
           "Service": "storage-lens.s3.amazonaws.com"
       },
       "Action": [
           "kms:GenerateDataKey"
       ],
       "Resource": "*",
       "Condition": {
          "StringEquals": {
              "aws:SourceArn": "arn:aws:s3:us-east-1:source-account-id:storage-lens/your-dashboard-name",
              "aws:SourceAccount": "source-account-id"
           }
        }
   }
   ```

1. **[Save changes]** (変更の保存) をクリックします。

カスタマーマネージドキーの作成とキーポリシーの使用の詳細については、*AWS Key Management Service デベロッパーガイド*の以下のトピックを参照してください。
+ [KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)
+ [ のキーポリシーAWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)

また、AWS KMS `PUT` キーポリシー API オペレーション ([https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)) を使用して、カスタマーマネージドキーにキーポリシーをコピーすることもできます。このポリシーは、REST API、AWS CLI、および SDK を使用してメトリクスのエクスポートを暗号化する際に使用します。

## S3 テーブルバケットエクスポートの追加アクセス許可
<a name="storage_lens_s3_tables_kms_permissions"></a>

S3 ストレージレンズメトリクスを含む S3 テーブル内のすべてのデータは、デフォルトで SSE-S3 暗号化で暗号化されます。ストレージレンズメトリクスレポートを AWS KMS キー (SSE-KMS) で暗号化することを選択できます。S3 ストレージレンズメトリクスレポートを KMS キーで暗号化する場合は、追加のアクセス許可が必要です。

1. ユーザーまたは IAM ロールには以下のアクセス許可が必要です。IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を使用してこれらのアクセス許可を付与できます。
   + 使用する AWS KMS キーの `kms:DescribeKey`

1. AWS KMS キーのキーポリシーでは、次のアクセス許可が必要です。AWS KMS コンソール ([https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)) を使用してこれらのアクセス許可を付与できます。このポリシーを使用するには、`user input placeholders` をユーザー自身の情報に置き換えます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EnableSystemTablesKeyUsage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "systemtables.s3.amazonaws.com"
               },
               "Action": [
                   "kms:DescribeKey",
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   }
               }
           },
           {
               "Sid": "EnableKeyUsage",
               "Effect": "Allow",
               "Principal": {
                   "Service": "maintenance.s3tables.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
               "Condition": {
                   "StringLike": {
                       "kms:EncryptionContext:aws:s3:arn": "<table-bucket-arn>/*"
                   }
               }
           }
       ]
   }
   ```

# S3 Storage Lens のエクスポートマニフェストとは?
<a name="storage_lens_whatis_metrics_export_manifest"></a>

集約されるデータが大量の場合、汎用バケット内の S3 ストレージレンズの日次メトリクスのエクスポートは、複数のファイルに分割される場合があります。マニフェストファイル `manifest.json` には、その日のメトリクスのエクスポートファイルが保存された場所が記述されています。新しいエクスポートが配信されるたびに、マニフェストも新たに添付されます。`manifest.json` ファイルに含まれる各マニフェストには、対象のエクスポートに関するメタデータおよびその他の基本的な情報が記載されています。

マニフェストの情報には、次のプロパティが含まれています。
+ `sourceAccountId` – その設定の所有者であるアカウント ID。
+ `configId` – ダッシュボードの一意の識別子。
+ `destinationBucket` – メトリクスのエクスポートが保存されるバケットの、Amazon リソースネーム (ARN)。
+ `reportVersion` – エクスポートのバージョン。
+ `reportDate` – レポートの日付。
+ `reportFormat` – レポートの形式。
+ `reportSchema` – レポートのスキーマ。
+ `reportFiles` – 保存先のバケットにある、実際のエクスポートレポートファイルのリスト。

マニフェスト送信先パスの例:

```
user-defined-prefix/StorageLens/111122223333/example-dashboard-configuration-id/V_1/manifests/dt=2025-03-18/manifest.json
```

次の例は、CSV 形式のストレージレンズのデフォルトメトリクスレポートの `manifest.json` ファイルを示しています。

```
{  
   "sourceAccountId": "111122223333",  
   "configId": "example-dashboard-configuration-id",  
   "destinationBucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket",  
   "reportVersion": "V_1",  
   "reportDate": "2025-07-15",  
   "reportFormat": "CSV",  
   "reportSchema": "version_number,configuration_id,report_date,aws_account_number,aws_region,storage_class,record_type,record_value,bucket_name,metric_name,metric_value",  
   "reportFiles": [  
        {  
            "key": "DestinationPrefix/StorageLens/111122223333/example-dashboard-configuration-id/V_1/reports/dt=2025-07-15/12345678-1234-1234-1234-123456789012.csv",  
            "size": 1603959,  
            "md5Checksum": "2177e775870def72b8d84febe1ad3574"  
        }  
   ]  
}
```

次の例は、CSV 形式のストレージレンズ拡張プレフィックスメトリクスレポートの `manifest.json` ファイルを示しています。

```
{  
   "sourceAccountId": "111122223333",  
   "configId": "example-dashboard-configuration-id",  
   "destinationBucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket",   
   "reportVersion": "V_1",  
   "reportDate": "2025-11-03",  
   "reportFormat": "CSV",  
   "reportSchema": "version_number,configuration_id,report_date,aws_account_number,aws_region,storage_class,record_type,record_value,bucket_name,metric_name,metric_value",  
   "reportFiles": [  
        {  
            "key": "DestinationPrefix/StorageLensExpandedPrefixes/111122223333/example-dashboard-configuration-id/V_1/reports/dt=2025-11-03/EXAMPLE1234-56ab-78cd-90ef-EXAMPLE11111.csv",  
            "size": 1603959,  
            "md5Checksum": "2177e775870def72b8d84febe1ad3574"  
        }  
      ]  
}
```

次の例は、Parquet 形式のストレージレンズのデフォルトメトリクスレポートの `manifest.json` ファイルを示しています。

```
{  
   "sourceAccountId": "111122223333",  
   "configId": "example-dashboard-configuration-id",  
   "destinationBucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket",  
   "reportVersion": "V_1",  
   "reportDate": "2025-11-03",  
   "reportFormat": "Parquet",  
   "reportSchema": "message s3.storage.lens { required string version_number; required string configuration_id; required string report_date; required string aws_account_number; required string aws_region; required string storage_class; required string record_type; required string record_value; required string bucket_name; required string metric_name; required long metric_value; }",  
   "reportFiles": [  
      {  
         "key": "DestinationPrefix/StorageLens/111122223333/example-dashboard-configuration-id/V_1/reports/dt=2025-11-03/bd23de7c-b46a-4cf4-bcc5-b21aac5be0f5.par",  
         "size": 14714,  
         "md5Checksum": "b5c741ee0251cd99b90b3e8eff50b944"  
      }  
   ]  
}
```

次の例は、Parquet 形式のストレージレンズの拡張プレフィックスメトリクスレポートの `manifest.json` ファイルを示しています。

```
{  
   "sourceAccountId": "111122223333",  
   "configId": "example-dashboard-configuration-id",  
   "destinationBucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket",  
   "reportVersion": "V_1",  
   "reportDate": "2025-11-03",  
   "reportFormat": "Parquet",  
   "reportSchema": "message s3.storage.lens { required string version_number; required string configuration_id; required string report_date; required string aws_account_number; required string aws_region; required string storage_class; required string record_type; required string record_value; required string bucket_name; required string metric_name; required long metric_value; }",  
   "reportFiles": [  
      {  
         "key": "DestinationPrefix/StorageLensExpandedPrefixes/111122223333/example-dashboard-configuration-id/V_1/reports/dt=2025-11-03/bd23de7c-b46a-4cf4-bcc5-b21aac5be0f5.par",  
         "size": 14714,  
         "md5Checksum": "b5c741ee0251cd99b90b3e8eff50b944"  
      }  
   ]  
}
```

メトリクスのエクスポートの生成は、Amazon S3 コンソールでダッシュボード設定の一部とするか、Amazon S3 REST API、AWS CLI、および SDK を使用するかの、どちらかで実行できます。

# Amazon S3 ストレージレンズのエクスポートスキーマを理解する
<a name="storage_lens_understanding_metrics_export_schema"></a>

S3 ストレージレンズのエクスポートスキーマは、エクスポート先によって異なります。S3 汎用バケットと S3 テーブルのどちらにエクスポートするかに基づいて、適切なスキーマを選択します。

**Topics**
+ [S3 汎用バケットのスキーマをエクスポートする](#storage_lens_general_purpose_bucket_schema)
+ [S3 テーブルのスキーマをエクスポートする](#storage_lens_s3_tables_schema)

## S3 汎用バケットのスキーマをエクスポートする
<a name="storage_lens_general_purpose_bucket_schema"></a>

次の表に、S3 汎用バケットにエクスポートする場合の、S3 ストレージレンズメトリクスのエクスポートのスキーマを示します。


| Attribute Nameは  | データ型 | 列名 | 説明 | 
| --- | --- | --- | --- | 
| VersionNumber | 文字列 | version\$1number | 使用中の S3 Storage Lens メトリクスのバージョン。 | 
| ConfigurationId | String | configuration\$1id | S3 ストレージレンズ設定の  configuration\$1id。 | 
| ReportDate  | String  | report\$1date  | メトリクスが追跡された日付。 | 
|  AwsAccountNumber  |  String  |  aws\$1account\$1number  | お客様の AWS アカウント 番号。 | 
|  AwsRegion  |  文字列  |  aws\$1region  | メトリクスが追跡されている AWS リージョン。 | 
|  StorageClass  |  文字列  |  storage\$1class  | 調査対象のバケットのストレージクラス。 | 
|  RecordType  |  ENUM  |  record\$1type  |  レポートされているアーティファクトのタイプ (ACCOUNT、BUCKET、PREFIX)。 | 
|  RecordValue  |  String  |  record\$1value  | RecordType アーティファクトの値。 `record_value` は、URL エンコードされています。   | 
|  BucketName  |  String  |  bucket\$1name  | レポートされているバケットの名前。 | 
|  MetricName  |  文字列  |  metric\$1name  | レポートされているメトリクスの名前。 | 
|  MetricValue  |  Long  |  metric\$1value  | レポートされているメトリクスの値。 | 

### S3 Storage Lens でのメトリクスのエクスポート例
<a name="storage_lens_sample_metrics_export"></a>

次に示すのは、前出のスキーマに基づく S3 Storage Lens でのメトリクスのエクスポートの例です。

**注記**  
Storage Lens グループのメトリクスは、`record_type` 列内の `STORAGE_LENS_GROUP_BUCKET` または `STORAGE_LENS_GROUP_ACCOUNT` 値を探すことで識別できます。`record_value` 列には、Storage Lens グループの Amazon リソースネーム (ARN) が表示されます (例: `arn:aws:s3:us-east-1:123456789012:storage-lens-group/slg-1`)。

![\[S3 Storage Lens メトリクスのエクスポートファイルの例\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/sample_storage_lens_export.png)


以下は、Storage Lens グループのデータを使った Storage Lens メトリクスのエクスポートの例です。

![\[ストレージレンズグループデータを含む S3 Storage Lens メトリクスのエクスポートファイルの例\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/StorageLensGroups_metricsexport.png)


## S3 テーブルのスキーマをエクスポートする
<a name="storage_lens_s3_tables_schema"></a>

S3 ストレージレンズメトリクスを S3 テーブルにエクスポートする場合、データはストレージメトリクス、バケットプロパティメトリクス、アクティビティメトリクスの 3 つの個別のテーブルスキーマに整理されます。

**Topics**
+ [ストレージメトリクステーブルスキーマ](#storage_lens_s3_tables_storage_metrics)
+ [バケットプロパティメトリクステーブルスキーマ](#storage_lens_s3_tables_bucket_property_metrics)
+ [アクティビティメトリクステーブルスキーマ](#storage_lens_s3_tables_activity_metrics)

### ストレージメトリクステーブルスキーマ
<a name="storage_lens_s3_tables_storage_metrics"></a>


| 名前 | 型 | 説明 | 
| --- | --- | --- | 
| version\$1number | string | テーブルのスキーマの一意の識別子 | 
| configuration\$1id | string | S3 ストレージレンズの設定名 | 
| report\$1time | timestamptz | S3 ストレージレンズレポートが参照する日付 | 
| aws\$1account\$1id | string | エントリが参照するアカウント ID | 
| aws\$1region | string | リージョン | 
| storage\$1class | string | ストレージクラス | 
| record\$1type | string | データの集約レベルに関連するレコードのタイプ。値:ACCOUNT 、BUCKET、PREFIX、LENS GROUP。 | 
| record\$1value | string | 複数のレコードが含まれるレコードタイプを明確に区別するツールです。プレフィックスを参照するために使用されます | 
| bucket\$1name | string | バケット名　 | 
| object\$1count | long | 現在参照されている項目に保存されているオブジェクトの数 | 
| storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されているバイト数 | 
| bucket\$1key\$1sse\$1kms\$1object\$1count | long | 現在参照されている項目に保存されているカスタマーマネージドキーで暗号化されたオブジェクトの数 | 
| bucket\$1key\$1sse\$1kms\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されているカスタマーマネージドキーで暗号化されたバイト数 | 
| current\$1version\$1object\$1count | long | 現在参照されている項目に保存されている現在のバージョンオブジェクトの数 | 
| current\$1version\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている現在のバージョンのバイト数 | 
| delete\$1marker\$1object\$1count | long | 現在参照されている項目に保存されている削除マーカーオブジェクトの数 | 
| delete\$1marker\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている削除マーカーのバイト数 | 
| encrypted\$1object\$1count | long | 現在参照されている項目に保存されている暗号化されたオブジェクトの数 | 
| encrypted\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている暗号化されたバイト数 | 
| incomplete\$1mpu\$1object\$1older\$1than\$17\$1days\$1count | long | 現在参照されている項目に 7 日以上保存されている不完全なマルチパートアップロードオブジェクトの数 | 
| incomplete\$1mpu\$1storage\$1older\$1than\$17\$1days\$1bytes | DECIMAL(38,0) | 現在参照されている項目の 7 日以上経過して保存された不完全なマルチパートアップロードバイト数 | 
| incomplete\$1mpu\$1object\$1count | long | 現在参照されている項目に保存されている不完全なマルチパートアップロードオブジェクトの数 | 
| incomplete\$1mpu\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている不完全なマルチパートアップロードのバイト数 | 
| non\$1current\$1version\$1object\$1count | long | 現在参照されている項目に保存されている最新バージョン以外のオブジェクトの数 | 
| non\$1current\$1version\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている旧バージョンのバイト数 | 
| object\$1lock\$1enabled\$1object\$1count | long | 現在参照されている項目でロックが有効になっているオブジェクト用に保存されているオブジェクトの数 | 
| object\$1lock\$1enabled\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目でロックが有効になっているオブジェクトに保存されているバイト数 | 
| replicated\$1object\$1count | long | 現在参照されている項目に対してレプリケートされたオブジェクトの数 | 
| replicated\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に対してレプリケートされたバイト数 | 
| replicated\$1object\$1source\$1count | long | 現在参照されている項目に保存されたソースとしてレプリケートされたオブジェクトの数 | 
| replicated\$1storage\$1source\$1bytes | DECIMAL(38,0) | 現在参照されている項目のソースとしてレプリケートされたバイト数 | 
| sse\$1kms\$1object\$1count | long | 現在参照されている項目に保存されている SSE キーで暗号化されたオブジェクトの数 | 
| sse\$1kms\$1storage\$1bytes | DECIMAL(38,0) | 現在参照されている項目に保存されている SSE キーで暗号化されたバイト数 | 
| object\$10kb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 0KB のオブジェクトの数 | 
| object\$10kb\$1to\$1128kb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 0KB より大きく 128KB 以下のオブジェクトの数 | 
| object\$1128kb\$1to\$1256kb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 128KB より大きく 256KB 以下のオブジェクトの数 | 
| object\$1256kb\$1to\$1512kb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 256KB より大きく 512KB 以下のオブジェクトの数 | 
| object\$1512kb\$1to\$11mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 512KB より大きく 1MB 以下のオブジェクトの数 | 
| object\$11mb\$1to\$12mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 1MB より大きく 2MB 以下のオブジェクトの数 | 
| object\$12mb\$1to\$14mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 2MB より大きく 4MB 以下のオブジェクトの数 | 
| object\$14mb\$1to\$18mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 4MB より大きく 8MB 以下のオブジェクトの数 | 
| object\$18mb\$1to\$116mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 8MB より大きく 16MB 以下のオブジェクトの数 | 
| object\$116mb\$1to\$132mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 16MB より大きく 32MB 以下のオブジェクトの数 | 
| object\$132mb\$1to\$164mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 32MB より大きく 64MB 以下のオブジェクトの数 | 
| object\$164mb\$1to\$1128mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 64MB より大きく 128MB 以下のオブジェクトの数 | 
| object\$1128mb\$1to\$1256mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 128MB より大きく 256MB 以下のオブジェクトの数 | 
| object\$1256mb\$1to\$1512mb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 256MB より大きく 512MB 以下のオブジェクトの数 | 
| object\$1512mb\$1to\$11gb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 512MB より大きく 1GB 以下のオブジェクトの数 | 
| object\$11gb\$1to\$12gb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 1GB より大きく 2GB 以下のオブジェクトの数 | 
| object\$12gb\$1to\$14gb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 2GB より大きく 4GB 以下のオブジェクトの数 | 
| object\$1larger\$1than\$14gb\$1count | long | 現在のバージョン、以前のバージョン、不完全なマルチパートアップロード、削除マーカーなど、サイズが 4GB より大きいオブジェクトの数 | 

### バケットプロパティメトリクステーブルスキーマ
<a name="storage_lens_s3_tables_bucket_property_metrics"></a>


| 名前 | 型 | 説明 | 
| --- | --- | --- | 
| version\$1number | string | テーブルのスキーマの一意の識別子 | 
| configuration\$1id | string | S3 ストレージレンズの設定名 | 
| report\$1time | timestamptz | S3 ストレージレンズレポートが参照する日付 | 
| aws\$1account\$1id | string | エントリが参照するアカウント ID | 
| record\$1type | string | データの集約レベルに関連するレコードのタイプ。値:ACCOUNT 、BUCKET、PREFIX、LENS GROUP。 | 
| record\$1value | string | 複数のレコードが含まれるレコードタイプを明確に区別するツールです。プレフィックスを参照するために使用されます。 | 
| aws\$1region | string | リージョン | 
| storage\$1class | string | ストレージクラス | 
| bucket\$1name | string | バケット名　 | 
| versioning\$1enabled\$1bucket\$1count | long | 現在参照されている項目に対してバージョニングが有効になっているバケットの数 | 
| mfa\$1delete\$1enabled\$1bucket\$1count | long | 現在参照されている項目に対して MFA 削除が有効になっているバケットの数 | 
| sse\$1kms\$1enabled\$1bucket\$1count | long | 現在参照されている項目で KMS が有効になっているバケットの数 | 
| object\$1ownership\$1bucket\$1owner\$1enforced\$1bucket\$1count | long | 現在参照されている項目に対してオブジェクト所有権バケット所有者が強制されているバケットの数 | 
| object\$1ownership\$1bucket\$1owner\$1preferred\$1bucket\$1count | long | 現在参照されている項目で優先されるオブジェクト所有権バケット所有者を持つバケットの数 | 
| object\$1ownership\$1object\$1writer\$1bucket\$1count | long | 現在参照されている項目のオブジェクト所有権オブジェクトライターを持つバケットの数 | 
| transfer\$1acceleration\$1enabled\$1bucket\$1count | long | 現在参照されている項目に対して Transfer Acceleration が有効になっているバケットの数 | 
| event\$1notification\$1enabled\$1bucket\$1count | long | 現在参照されている項目に対してイベント通知が有効になっているバケットの数 | 
| transition\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の移行ライフサイクルルールの数 | 
| expiration\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の有効期限ライフサイクルルールの数 | 
| non\$1current\$1version\$1transition\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の最新バージョン以外の移行ライフサイクルルールの数 | 
| non\$1current\$1version\$1expiration\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の最新バージョン以外の有効期限ライフサイクルルールの数 | 
| abort\$1incomplete\$1multipart\$1upload\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の不完全なマルチパートアップロードライフサイクルルールの中止数 | 
| expired\$1object\$1delete\$1marker\$1lifecycle\$1rule\$1count | long | 現在参照されている項目の期限切れオブジェクト削除マーカーのライフサイクルルールの数 | 
| same\$1region\$1replication\$1rule\$1count | long | 現在参照されている項目の同一リージョンレプリケーションルールの数 | 
| cross\$1region\$1replication\$1rule\$1count | long | 現在参照されている項目のクロスリージョンレプリケーションルールの数 | 
| same\$1account\$1replication\$1rule\$1count | long | 現在参照されている項目の同一アカウントレプリケーションルールの数 | 
| cross\$1account\$1replication\$1rule\$1count | long | 現在参照されている項目のクロスアカウントレプリケーションルールの数 | 
| invalid\$1destination\$1replication\$1rule\$1count | long | 現在参照されている項目の無効なレプリケート先レプリケーションを持つバケットの数 | 

### アクティビティメトリクステーブルスキーマ
<a name="storage_lens_s3_tables_activity_metrics"></a>


| 名前 | 型 | 説明 | 
| --- | --- | --- | 
| version\$1number | string | テーブルのスキーマの一意の識別子 | 
| configuration\$1id | string | S3 ストレージレンズの設定名 | 
| report\$1time | timestamptz | S3 ストレージレンズレポートが参照する日付 | 
| aws\$1account\$1id | string | エントリが参照するアカウント ID | 
| aws\$1region | string | リージョン | 
| storage\$1class | string | ストレージクラス | 
| record\$1type | string | データの集約レベルに関連するレコードのタイプ。値: ACCOUNT、BUCKET、PREFIX。 | 
| record\$1value | string | 複数のレコードが含まれるレコードタイプを明確に区別するツールです。プレフィックスを参照するために使用されます | 
| bucket\$1name | string | バケット名　 | 
| all\$1request\$1count | long | 現在参照されている項目の \$1all\$1 リクエストの数 | 
| all\$1sse\$1kms\$1encrypted\$1request\$1count | long | 現在参照されている項目の KMS 暗号化リクエストの数 | 
| all\$1unsupported\$1sig\$1request\$1count | long | 現在参照されている項目のサポートされていない sig リクエストの数 | 
| all\$1unsupported\$1tls\$1request\$1count | long | 現在参照されている項目でサポートされていない TLS リクエストの数 | 
| bad\$1request\$1error\$1400\$1count | long | 現在参照されている項目の 400 bad request エラーの数 | 
| delete\$1request\$1count | long | 現在参照されている項目の delete リクエストの数 | 
| downloaded\$1bytes | decimal(0,0) | 現在参照されている項目のダウンロードバイト数 | 
| error\$14xx\$1count | long | 現在参照されている項目の 4xx エラーの数 | 
| error\$15xx\$1count | long | 現在参照されている項目の 5xx エラーの数 | 
| forbidden\$1error\$1403\$1count | long | 現在参照されている項目の 403 forbidden エラーの数 | 
| get\$1request\$1count | long | 現在参照されている項目の get リクエストの数 | 
| head\$1request\$1count | long | 現在参照されている項目の head リクエストの数 | 
| internal\$1server\$1error\$1500\$1count | long | 現在参照されている項目の 500 internal server error の数 | 
| list\$1request\$1count | long | 現在参照されている項目の list リクエストの数 | 
| not\$1found\$1error\$1404\$1count | long | 現在参照されている項目の 404 not found エラーの数 | 
| ok\$1status\$1200\$1count | long | 現在参照されている項目の 200 OK リクエストの数 | 
| partial\$1content\$1status\$1206\$1count | long | 現在参照されている項目の 206 partial content リクエストの数 | 
| post\$1request\$1count | long | 現在参照されている項目の post リクエストの数 | 
| put\$1request\$1count | long | 現在参照されている項目の put リクエストの数 | 
| select\$1request\$1count | long | 現在参照されている項目の select リクエストの数 | 
| select\$1returned\$1bytes | decimal(0,0) | 現在参照されている項目の select リクエストによって返されるバイト数 | 
| select\$1scanned\$1bytes | decimal(0,0) | 現在参照されている項目の select リクエストによってスキャンされたバイト数 | 
| service\$1unavailable\$1error\$1503\$1count | long | 現在参照されている項目の 503 service unavailable エラーの数 | 
| uploaded\$1bytes | decimal(0,0) | 現在参照されている項目のアップロードバイト数 | 
| average\$1first\$1byte\$1latency | long | 過去 24 時間にわたって測定された、S3 バケットが完全なリクエストを受信してから、レスポンスを返し始めるまでのリクエストあたりの平均時間 | 
| average\$1total\$1request\$1latency | long | 過去 24 時間に測定された、S3 バケットで受信した最初のバイトから送信した最後のバイトまでのリクエストあたりの平均経過時間 | 
| read\$10kb\$1request\$1count | long | データサイズが 0KB の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクトリクエスト全体を含む) | 
| read\$10kb\$1to\$1128kb\$1request\$1count | long | データサイズが 0KB より大きく 128KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1128kb\$1to\$1256kb\$1request\$1count | long | データサイズが 128KB より大きく 256KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1256kb\$1to\$1512kb\$1request\$1count | long | データサイズが 256KB より大きく 512KB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1512kb\$1to\$11mb\$1request\$1count | long | データサイズが 512KB より大きく 1MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$11mb\$1to\$12mb\$1request\$1count | long | データサイズが 1MB より大きく 2MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$12mb\$1to\$14mb\$1request\$1count | long | データサイズが 2MB より大きく 4MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$14mb\$1to\$18mb\$1request\$1count | long | データサイズが 4MB より大きく 8MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$18mb\$1to\$116mb\$1request\$1count | long | データサイズが 8MB より大きく 16MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$116mb\$1to\$132mb\$1request\$1count | long | データサイズが 16MB より大きく 32MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$132mb\$1to\$164mb\$1request\$1count | long | データサイズが 32MB より大きく 64MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$164mb\$1to\$1128mb\$1request\$1count | long | データサイズが 64MB より大きく 128MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1128mb\$1to\$1256mb\$1request\$1count | long | データサイズが 128MB より大きく 256MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1256mb\$1to\$1512mb\$1request\$1count | long | データサイズが 256MB より大きく 512MB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1512mb\$1to\$11gb\$1request\$1count | long | データサイズが 512MB より大きく 1GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$11gb\$1to\$12gb\$1request\$1count | long | データサイズが 1GB より大きく 2GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$12gb\$1to\$14gb\$1request\$1count | long | データサイズが 2GB より大きく 4GB 以下の GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| read\$1larger\$1than\$14gb\$1request\$1count | long | データサイズが 4GB より大きい GetObject リクエストの数 (範囲ベースのリクエストとオブジェクト全体のリクエストの両方を含む) | 
| write\$10kb\$1request\$1count | long | データサイズが 0KB の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$10kb\$1to\$1128kb\$1request\$1count | long | データサイズが 0KB より大きく 128KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1128kb\$1to\$1256kb\$1request\$1count | long | データサイズが 128KB より大きく 256KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1256kb\$1to\$1512kb\$1request\$1count | long | データサイズが 256KB より大きく 512KB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1512kb\$1to\$11mb\$1request\$1count | long | データサイズが 512KB より大きく 1MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$11mb\$1to\$12mb\$1request\$1count | long | データサイズが 1MB より大きく 2MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$12mb\$1to\$14mb\$1request\$1count | long | データサイズが 2MB より大きく 4MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$14mb\$1to\$18mb\$1request\$1count | long | データサイズが 4MB より大きく 8MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$18mb\$1to\$116mb\$1request\$1count | long | データサイズが 8MB より大きく 16MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$116mb\$1to\$132mb\$1request\$1count | long | データサイズが 16MB より大きく 32MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$132mb\$1to\$164mb\$1request\$1count | long | データサイズが 32MB より大きく 64MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$164mb\$1to\$1128mb\$1request\$1count | long | データサイズが 64MB より大きく 128MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1128mb\$1to\$1256mb\$1request\$1count | long | データサイズが 128MB より大きく 256MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1256mb\$1to\$1512mb\$1request\$1count | long | データサイズが 256MB より大きく 512MB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1512mb\$1to\$11gb\$1request\$1count | long | データサイズが 512MB より大きく 1GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$11gb\$1to\$12gb\$1request\$1count | long | データサイズが 1GB より大きく 2GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$12gb\$1to\$14gb\$1request\$1count | long | データサイズが 2GB より大きく 4GB 以下の PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| write\$1larger\$1than\$14gb\$1request\$1count | long | データサイズが 4GB より大きい PutObject、UploadPart、CreateMultipartUpload リクエストの数 | 
| concurrent\$1put\$1503\$1error\$1count | long | 同じオブジェクトへの同時書き込みによって生成される 503 エラーの数 | 
| cross\$1region\$1request\$1count | long | バケットのホームリージョンとは異なるリージョンのクライアントから送信されるリクエストの数 | 
| cross\$1region\$1transferred\$1bytes | decimal(0,0) | バケットのホームリージョンとは異なるリージョンの呼び出しから転送されたバイト数 | 
| cross\$1region\$1without\$1replication\$1request\$1count | long | クロスリージョンレプリケーションリクエストを除く、バケットのホームリージョンとは異なるリージョンのクライアントから送信されるリクエストの数 | 
| cross\$1region\$1without\$1replication\$1transferred\$1bytes | decimal(0,0) | クロスリージョンレプリケーションバイトを除く、バケットのホームリージョンとは異なるリージョンの呼び出しから転送されたバイト数 | 
| inregion\$1request\$1count | long | バケットのホームリージョンと同じリージョンのクライアントから送信されるリクエストの数 | 
| inregion\$1transferred\$1bytes | decimal(0,0) | バケットのホームリージョンと同じリージョンからの呼び出しから転送されたバイト数 | 
| unique\$1objects\$1accessed\$1daily\$1count | long | 過去 24 時間に少なくとも 1 回アクセスされたオブジェクトの数 | 

# CloudWatch で S3 Storage Lens のメトリクスをモニタリング
<a name="storage_lens_view_metrics_cloudwatch"></a>

S3 ストレージレンズのメトリクスを Amazon CloudWatch に公開すると、[CloudWatch ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用状況を一元的に表示できます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズのメトリクスをモニタリングしてアクションを実行できます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズのメトリクスにアクセスできるようになります。CloudWatch 機能の詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)」を参照してください。

Amazon S3 コンソール、Amazon S3 REST API、AWS CLI および AWS SDK を使用して、新規または既存のダッシュボードの設定で CloudWatch 公開オプションを有効にできます。S3 Storage Lens のアドバンストメトリクスとレコメンデーションにアップグレードされたダッシュボードは、CloudWatch の公開オプションを使用できます。S3 ストレージレンズの高度なメトリクスとレコメンデーションの料金については、「[Amazon S3 料金表](https://aws.amazon.com/s3/pricing/)」を参照してください。追加の CloudWatch メトリクスの公開料金は適用されません。ただし、ダッシュボード、アラーム、API コールなどのその他の CloudWatch 料金が適用されます。詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

S3 Storage Lens のメトリクスは、S3 Storage Lens の設定を所有するアカウント内の CloudWatch に公開されます。高度なメトリクス内で CloudWatch 公開オプションを有効にすると、CloudWatch の設定 ID、アカウント、バケット (バケットレベルのメトリクスのみ)、リージョン、およびストレージクラス別に、アカウントレベルとバケットレベルのメトリクスにアクセスできるようになります。プレフィックスレベルのメトリクスは CloudWatch では使用できません。

**注記**  
S3 Storage Lens メトリクスは毎日のメトリクスであり、CloudWatch に 1 日 1 回公開されます。CloudWatch で S3 Storage Lens メトリクスをクエリする場合、クエリの期間は 1 日 (86400 秒) にする必要があります。毎日の S3 Storage Lens メトリクスが Amazon S3 コンソールの S3 Storage Lens ダッシュボードに表示された後、これらの同じメトリクスが CloudWatch に表示されるには数時間かかることがあります。初めて S3 Storage Lens メトリクスの CloudWatch 公開オプションを有効にすると、メトリクスが CloudWatch に公開されるまで最大で 24 時間かかることがあります。

CloudWatch 公開オプションを有効にすると、次の CloudWatch 機能を使用して S3 ストレージ lensStorage レンズデータをモニタリングおよび分析できます。
+ [ダッシュボード](storage-lens-cloudwatch-monitoring-cloudwatch.md#storage-lens-cloudwatch-monitoring-cloudwatch-dashboards) - CloudWatch ダッシュボードを使用して、カスタマイズされた S3 Storage Lens ダッシュボードを作成します。CloudWatch ダッシュボードを AWS アカウント に直接アクセスできないユーザー (チーム間、ステークホルダー、組織外の人) と共有します。
+ [アラームとトリガーされたアクション](storage-lens-cloudwatch-monitoring-cloudwatch.md#storage-lens-cloudwatch-monitoring-cloudwatch-alarms) - メトリクスを監視し、閾値に違反したときにアクションを起こすアラームを構成することができます。例えば、**未完了のマルチパートアップロードバイト**メトリクスが 3 日間連続で 1 GB を超えた場合に Amazon SNS 通知を送信するアラームを設定できます。
+ [異常検出](storage-lens-cloudwatch-monitoring-cloudwatch.md#storage-lens-cloudwatch-monitoring-cloudwatch-alarms) - 異常検出を有効にして、メトリクスを継続的に分析し、正常なベースラインを決定後、異常を表面化させます。メトリクスの想定値に基づいて異常検出アラームを作成できます。例えば、**オブジェクトロックが有効になっているバイト数**メトリクスに異常がないかをモニタリングすると、オブジェクトロック設定の不正な削除を検出できます。
+ [Metric Math](storage-lens-cloudwatch-monitoring-cloudwatch.md#storage-lens-cloudwatch-monitoring-cloudwatch-metric-math) - これにより複数の S3 Storage Lens メトリクスをクエリし、数式を使用して、これらのメトリクスに基づく新しい時系列を作成できます。例えば、`StorageBytes` を `ObjectCount` で割って、平均オブジェクトサイズを取得するための新しいメトリクスを作成できます。

S3 Storage Lens メトリクスの CloudWatch 公開オプションの詳細については、以下のトピックを参照してください。

**Topics**
+ [S3 Storage Lens のメトリクスとディメンション](storage-lens-cloudwatch-metrics-dimensions.md)
+ [S3 Storage Lens 用の CloudWatch パブリッシングの有効化](storage-lens-cloudwatch-enable-publish-option.md)
+ [CloudWatch で S3 Storage Lens のメトリクスを表示します。](storage-lens-cloudwatch-monitoring-cloudwatch.md)

# S3 Storage Lens のメトリクスとディメンション
<a name="storage-lens-cloudwatch-metrics-dimensions"></a>

S3 ストレージレンズメトリクスを CloudWatch に送信するには、S3 ストレージレンズの高度なメトリクスにある CloudWatch 公開オプションを有効にする必要があります。高度なメトリクスを有効にすると、[CloudWatch ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)を使用して、S3 ストレージレンズのメトリクスを他のアプリケーションメトリクスとともにモニタリングし、運用状態の統一ビューを作成できます。ディメンションを使用して CloudWatch の S3 Storage Lens メトリクスを組織、アカウント、バケット、ストレージクラス、リージョン、メトリクスの設定 ID でフィルタリングできます。

S3 Storage Lens のメトリクスは、S3 Storage Lens の設定を所有するアカウント内の CloudWatch に公開されます。高度なメトリクス内で CloudWatch 公開オプションを有効にすると、CloudWatch の設定 ID、アカウント、バケット (バケットレベルのメトリクスのみ)、リージョン、およびストレージクラス別に、アカウントレベルとバケットレベルのメトリクスにアクセスできるようになります。プレフィックスレベルのメトリクスは CloudWatch では使用できません。

**注記**  
S3 Storage Lens メトリクスは毎日のメトリクスであり、CloudWatch に 1 日 1 回公開されます。CloudWatch で S3 Storage Lens メトリクスをクエリする場合、クエリの期間は 1 日 (86400 秒) にする必要があります。毎日の S3 Storage Lens メトリクスが Amazon S3 コンソールの S3 Storage Lens ダッシュボードに表示された後、これらの同じメトリクスが CloudWatch に表示されるには数時間かかることがあります。初めて S3 Storage Lens メトリクスの CloudWatch 公開オプションを有効にすると、メトリクスが CloudWatch に公開されるまで最大で 24 時間かかることがあります。

CloudWatch での S3 Storage Lens のメトリクスとディメンションの詳細については、以下のトピックを参照してください。

**Topics**
+ [メトリクス](#storage-lens-cloudwatch-metrics)
+ [ディメンション](#storage-lens-cloudwatch-dimensions)

## メトリクス
<a name="storage-lens-cloudwatch-metrics"></a>

S3 ストレージレンズのメトリクスは、CloudWatch 内でメトリクスとして使用できます。S3 Storage Lens のメトリクスは、`AWS/S3/Storage-Lens` 名前空間に公開されます。この名前空間は S3 Storage Lens のメトリクス専用です。Amazon S3 バケット、リクエスト、レプリケーションのメトリックスは、`AWS/S3` 名前空間に公開されます。

S3 Storage Lens のメトリクスは、S3 Storage Lens の設定を所有するアカウント内の CloudWatch に公開されます。高度なメトリクス内で CloudWatch 公開オプションを有効にすると、CloudWatch の設定 ID、アカウント、バケット (バケットレベルのメトリクスのみ)、リージョン、およびストレージクラス別に、アカウントレベルとバケットレベルのメトリクスにアクセスできるようになります。プレフィックスレベルのメトリクスは CloudWatch では使用できません。

S3 Storage Lens では、メトリクスが集計され、指定されたホームリージョンにのみ保存されます。S3 Storage Lens の設定で指定した、ホームリージョン内の CloudWatch にも S3 Storage Lens メトリクスが公開されます。

CloudWatch で使用可能なメトリックスのリストを含む S3 Storage Lens メトリクスの完全なリストについては、[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md) を参照してください。

**注記**  
CloudWatch での S3 Storage Lens メトリクスの有効な統計情報は、Average です。CloudWatch での統計の詳細については、*Amazon CloudWatch ユーザーガイド*の [CloudWatch 統計定義](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html)を参照してください。

### CloudWatch での S3 Storage Lens のメトリクスの粒度について
<a name="storage-lens-cloudwatch-metrics-granularity"></a>

S3 Storage Lens は、組織、アカウント、バケット、プレフィックスの粒度のメトリクスを提供します。S3 Storage Lens は、組織、アカウント、バケットレベルの S3 Storage Lens メトリクスを CloudWatch に公開します。プレフィクスレベルの S3 Storage Lens メトリクスは CloudWatch では使用できません。

CloudWatch で使用できる S3 Storage Lens メトリクスの粒度の詳細については、以下のリストを参照してください。
+ **組織** - 組織内のメンバーアカウント全体で集計されたメトリクス。S3 Storage Lens は、メンバーアカウントのメトリクスを管理アカウントの CloudWatch に公開します。
  + **組織とアカウント** - 組織のメンバーアカウントのメトリクス。
  + **組織とバケット** - 組織のメンバーアカウントの Amazon S3 バケットのメトリクス。
+ **アカウント** (組織レベル以外) - アカウントのバケット全体で集計されたメトリクス。
+ **バケット** (組織レベル以外) - 特定のバケットのメトリクス。CloudWatch では、 S3 Storage Lens はこれらのメトリクスを、 S3 Storage Lens の設定を作成した AWS アカウント に公開します。S3 Storage Lens は、組織外の構成に対してのみ、これらのメトリクスを公開します。

## ディメンション
<a name="storage-lens-cloudwatch-dimensions"></a>

S3 ストレージレンズで CloudWatch にデータが送信される際、ディメンションが各メトリクスにアタッチされます。ディメンションは、メトリクスの特性を記述するカテゴリです。CloudWatch が返す結果にフィルタを掛ける際にディメンションを使用できます。

例えば、 CloudWatch のすべての S3 Storage Lens のメトリクスは `configuration_id` ディメンションを持っています。このディメンションを使用して、特定の S3 Storage Lens 設定に関連付けられているメトリクスを区別できます。`organization_id` は、組織レベルのメトリクスを示します。CloudWatch のディメンションの詳細については、 「*CloudWatch ユーザーガイド* 」の「[ディメンション](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension)」を参照してください。

S3 ストレージレンズのメトリクスでは、メトリクスの粒度に応じて異なるディメンションを使用できます。例えば、`organization_id` ディメンションを使用して、組織レベルのメトリクスを AWS Organizations ID でフィルタリングすることができます。ただし、このディメンションをバケットおよびアカウントレベルのメトリクスに使用することはできません。詳細については、「[ディメンションを使用した指標のフィルタリング](storage-lens-cloudwatch-monitoring-cloudwatch.md#storage-lens-cloudwatch-monitoring-cloudwatch-dimensions)」を参照してください。

S3 Storage Lens 構成で使用できるディメンションを確認するには、次の表を参照してください。


|  **ディメンション**  |  **説明**  |  **バケット**  | **アカウント** |  **組織**  |  **組織とバケット**  |  **組織とアカウント**  | 
| --- | --- | --- | --- | --- | --- | --- | 
| configuration\$1id |  メトリクスでレポートされた S3 ストレージレンズ設定のダッシュボード名  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| metrics\$1version |  S3 ストレージレンズのメトリクスのバージョン このメトリクスのバージョンには固定値 `1.0` が含まれます。  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| organization\$1id |  メトリクスの AWS Organizations ID  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| aws\$1account\$1number | メトリクスに関連付けられた AWS アカウント。 | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| aws\$1region | メトリクスの AWS リージョン | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| bucket\$1name |  メトリクスでレポートされた S3 バケットの名前  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-no.png)  | 
| storage\$1class |  メトリクスでレポートされたバケットのストレージクラス  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png)  | 
| record\$1type |  メトリクスの粒度: 組織、アカウント、バケット  | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png) バケット | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png) アカウント | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png) バケット | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png) アカウント | ![\[Yes\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/icon-yes.png) 組織 | 

# S3 Storage Lens 用の CloudWatch パブリッシングの有効化
<a name="storage-lens-cloudwatch-enable-publish-option"></a>

S3 ストレージレンズのメトリクスを Amazon CloudWatch に公開すると、[CloudWatch ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用状況を一元的に表示できます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズのメトリクスをモニタリングしてアクションを実行できます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズのメトリクスにアクセスできるようになります。CloudWatch 機能の詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)」を参照してください。

S3 Storage Lens のメトリクスは、S3 Storage Lens の設定を所有するアカウント内の CloudWatch に公開されます。高度なメトリクス内で CloudWatch 公開オプションを有効にすると、CloudWatch の設定 ID、アカウント、バケット (バケットレベルのメトリクスのみ)、リージョン、およびストレージクラス別に、アカウントレベルとバケットレベルのメトリクスにアクセスできるようになります。プレフィックスレベルのメトリクスは CloudWatch では使用できません。

S3 コンソール、Amazon S3 REST API、AWS CLI および AWS SDK を使用して、新規または既存のダッシュボード構成で CloudWatch サポートを有効にすることができます。CloudWatch の公開オプションは、S3 ストレージレンズの高度なメトリクスとレコメンデーションにアップグレードされたダッシュボードで利用可能です。S3 ストレージレンズの高度なメトリクスとレコメンデーションの料金については、「[Amazon S3 料金表](https://aws.amazon.com/s3/pricing/)」を参照してください。追加の CloudWatch メトリクスの公開料金は適用されません。ただし、ダッシュボード、アラーム、API コールなどのその他の CloudWatch 料金が適用されます。

S3 Storage Lens メトリクスの CloudWatch パブリッシングオプションを有効にするには、以下のトピックを参照してください。

**注記**  
S3 Storage Lens メトリクスは毎日のメトリクスであり、CloudWatch に 1 日 1 回公開されます。CloudWatch で S3 Storage Lens メトリクスをクエリする場合、クエリの期間は 1 日 (86400 秒) にする必要があります。毎日の S3 Storage Lens メトリクスが Amazon S3 コンソールの S3 Storage Lens ダッシュボードに表示された後、これらの同じメトリクスが CloudWatch に表示されるには数時間かかることがあります。初めて S3 Storage Lens メトリクスの CloudWatch 公開オプションを有効にすると、メトリクスが CloudWatch に公開されるまで最大で 24 時間かかることがあります。  
現在、S3 ストレージレンズのメトリクスは CloudWatch ストリームを介して使用することはできません。

## S3 コンソールの使用
<a name="storage-lens-cloudwatch-enable-publish-console"></a>

S3 ストレージレンズのダッシュボードを更新するとき、ダッシュボード名、またはホームリージョンを変更することはできません。また、デフォルトダッシュボードのスコープを変更することもできません。これは、アカウント全体のストレージにスコープされています。

**S3 ストレージレンズのダッシュボードを更新して CloudWatch パブリッシングを有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[S3 Storage Lens]** (S3 ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. 編集するダッシュボードを選択し、 [**編集**] をクリックします。

1. **メトリクスの選択**で **[Advanced metrics and recommendations]** (アドバンストメトリクスとレコメンデーション) を選択します。

   アドバンストメトリクスとレコメンデーションには追加料金が適用されます。高度なメトリクスとレコメンデーションには、データクエリの 15 か月間、プレフィックスレベルで集計された使用状況メトリクス、バケットごとに集計されたアクティビティメトリクス、CloudWatch 公開オプション、ストレージコストの最適化とデータ保護のベストプラクティスの適用に役立つコンテキストに基づいた推奨事項が含まれています。詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

1. **[Select Advanced metrics and recommendations features]** (高度なメトリクスとレコメンデーションを選択) から **[CloudWatch publishing]** (CloudWatch パブリッシング) を選択します。
**重要**  
設定で使用状況メトリクスのプレフィクス集約を有効にすると、プレフィックスレベルのメトリックスは CloudWatch に公開されません。バケット、アカウント、組織レベルの S3 Storage Lens メトリクスのみが CloudWatch に公開されます。

1. **[Save changes]** (変更の保存) をクリックします。

**CloudWatch サポートを有効にする新しい S3 Storage Lens ダッシュボードを作成するには、次のようにします。**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[ダッシュボードを作成]** を選択します。

1. **[General]** (全般) で、次の設定オプションを定義します。

   1. **[Dashboard name]** (ダッシュボード名) に、ダッシュボード名を入力します。

      ダッシュボード名は 65 文字未満で記述する必要があり、特殊文字またはスペースを含めることはできません。ダッシュボードの作成後にダッシュボード名を変更することはできません。

   1. [**ホームリージョン**] から、ダッシュボードに対応するものを選択します。

      このダッシュボードスコープに含まれるすべてのリージョンのメトリクスは、指定されたホームリージョンに集約され保存されます。CloudWatch を使用した S3 Storage Lens メトリクスはホームリージョンでも利用できます。ダッシュボードの作成後にホームリージョンを変更することはできません。

1. (オプション) タグを追加するには、[**タグを追加**] を選択し、そのタグの **キー** と **値** を入力します。
**注記**  
ダッシュボードの設定には、最大 50 個のタグを追加できます。

1. 設定のスコープを定義します。

   1. 組織レベルの設定を作成する場合は、**[Include all accounts in your configuration]** (設定にすべてのアカウントを含める) または **[Limit the scope to your signed-in account]** (サインインしたアカウントに範囲を制限する) のいずれかの設定に含めるアカウントを選択します。
**注記**  
すべてのアカウントを含める組織レベルの設定を作成する場合、含めたり、除外したりできるのはリージョンのみで、バケットはできません。

   1. S3 ストレージレンズをダッシュボード構成に含めるリージョンとバケットを選択するには、以下の手順を実行します。
      + すべてのリージョンを含めるには、**[Include Regions and buckets]** (リージョンとバケットを含める) を選択します。
      + 特定のリージョンを含めるには、**[Include all Regions]** (すべてのリージョンを含める) をクリアにします。**[Choose Regions to include]** (含めるリージョンを選択) で、S3 Storage Lens がダッシュボードに含めるリージョンを選択します。
      + 特定のバケットを含めるには、**[Include all buckets]** (すべてのバケットを含める) をクリアにします。**[Choose buckets to include]** (含めるバケットを選択) で、 S3 Storage Lens がダッシュボードに含めるバケットを選択します。
**注記**  
バケットは最大 50 個まで選択できます。

1. **[Metrics selection]** (メトリクスの選択) で **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を選択します。

   高度なメトリクスとレコメンデーションの料金設定の詳細については、[[Amazon S3 pricing]](https://aws.amazon.com/s3/pricing/) (Amazon S3 の料金) を参照してください。。

1. **[Advanced metrics and recommendations features]** (高度なメトリクスとレコメンデーションの機能) で、有効にするオプションを選択します。
   + **Advanced metrics (高度なメトリクス** 
   + **CloudWatch publishing] (CloudWatch パブリッシング**
**重要**  
S3 Storage Lens 設定で [プレフィックス集約] を有効にすると、プレフィックスレベルのメトリクスは CloudWatch に公開されません。バケット、アカウント、組織レベルの S3 Storage Lens メトリクスのみが CloudWatch に公開されます。
   + **プレフィックス集約**
**注記**  
高度なメトリクスとレコメンデーションの機能の詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[Advanced metrics]** (高度なメトリクス) を有効にした場合は、S3 ストレージレンズのダッシュボードに表示する **[Advanced metrics categories]** (高度なメトリクスのカテゴリ) を選択します。
   + **アクティビティのメトリクス**
   + **Detailed status code metrics] (詳細なステータスコードメトリクス**
   + **Advanced cost optimization metrics] (高度なコスト最適化メトリクス**
   + **Advanced data protection metrics] (高度なデータ保護メトリクス**

   メトリクスのカテゴリの詳細については、「[メトリクスのカテゴリ](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types)」を参照してください。メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

1. (オプション) メトリクスのエクスポートを設定します。

   ウィザードの各ステップの設定方法については、「[S3 コンソールの使用](storage_lens_creating_dashboard.md#storage_lens_console_creating)」を参照してください。

1. **[ダッシュボードを作成]** を選択します。

## の使用AWS CLI
<a name="storage-lens-cloudwatch-enable-publish-cli"></a>

次の AWS CLI の例では、S3 ストレージレンズの組織レベルの高度なメトリクスとレコメンデーションの構成を使用して、CloudWatch の公開オプションを有効にします。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control put-storage-lens-configuration --account-id=555555555555 --config-id=your-configuration-id --region=us-east-1 --storage-lens-configuration=file://./config.json

config.json
{
  "Id": "SampleS3StorageLensConfiguration",
  "AwsOrg": {
    "Arn": "arn:aws:organizations::123456789012:organization/o-abcdefgh"
  },
  "AccountLevel": {
    "ActivityMetrics": {
      "IsEnabled":true
    },
    "AdvancedCostOptimizationMetrics": {
      "IsEnabled":true
    },
    "AdvancedDataProtectionMetrics": {
      "IsEnabled":true
    },
    "DetailedStatusCodesMetrics": {
      "IsEnabled":true
    },
    "BucketLevel": {
      "ActivityMetrics": {
        "IsEnabled":true
      },
      "AdvancedCostOptimizationMetrics": {
        "IsEnabled":true
      },
      "DetailedStatusCodesMetrics": {
        "IsEnabled":true
      },
      "PrefixLevel":{
        "StorageMetrics":{
          "IsEnabled":true,
          "SelectionCriteria":{
            "MaxDepth":5,
            "MinStorageBytesPercentage":1.25,
            "Delimiter":"/"
          }
        }
      }
    }
  },
  "Exclude": {
    "Regions": [
      "eu-west-1"
    ],
    "Buckets": [
      "arn:aws:s3:::amzn-s3-demo-source-bucket "
    ]
  },
  "IsEnabled": true,
  "DataExport": {
    "S3BucketDestination": {
      "OutputSchemaVersion": "V_1",
      "Format": "CSV",
      "AccountId": "111122223333",
      "Arn": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
      "Prefix": "prefix-for-your-export-destination",
      "Encryption": {
        "SSES3": {}
      }
    },
    "CloudWatchMetrics": {
      "IsEnabled": true
    }
  }
}
```

## AWS SDK for Java の使用
<a name="storage-lens-cloudwatch-enable-publish-sdk"></a>

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.ActivityMetrics;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.CloudWatchMetrics;
import com.amazonaws.services.s3control.model.Format;
import com.amazonaws.services.s3control.model.Include;
import com.amazonaws.services.s3control.model.OutputSchemaVersion;
import com.amazonaws.services.s3control.model.PrefixLevel;
import com.amazonaws.services.s3control.model.PrefixLevelStorageMetrics;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.S3BucketDestination;
import com.amazonaws.services.s3control.model.SSES3;
import com.amazonaws.services.s3control.model.SelectionCriteria;
import com.amazonaws.services.s3control.model.StorageLensAwsOrg;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensDataExport;
import com.amazonaws.services.s3control.model.StorageLensDataExportEncryption;
import com.amazonaws.services.s3control.model.StorageLensTag;

import java.util.Arrays;
import java.util.List;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateAndUpdateDashboard {

    public static void main(String[] args) {
        String configurationId = "ConfigurationId";
        String sourceAccountId = "Source Account ID";
        String exportAccountId = "Destination Account ID";
        String exportBucketArn = "arn:aws:s3:::amzn-s3-demo-destination-bucket"; // The destination bucket for your metrics export must be in the same Region as your S3 Storage Lens configuration.
        String awsOrgARN = "arn:aws:organizations::123456789012:organization/o-abcdefgh";
        Format exportFormat = Format.CSV;

        try {
            SelectionCriteria selectionCriteria = new SelectionCriteria()
                    .withDelimiter("/")
                    .withMaxDepth(5)
                    .withMinStorageBytesPercentage(10.0);
            PrefixLevelStorageMetrics prefixStorageMetrics = new PrefixLevelStorageMetrics()
                    .withIsEnabled(true)
                    .withSelectionCriteria(selectionCriteria);
            BucketLevel bucketLevel = new BucketLevel()
                    .withActivityMetrics(new ActivityMetrics().withIsEnabled(true))
                    .withAdvancedCostOptimizationMetrics(new AdvancedCostOptimizationMetrics().withIsEnabled(true))
                    .withAdvancedDataProtectionMetrics(new AdvancedDataProtectionMetrics().withIsEnabled(true))
                    .withDetailedStatusCodesMetrics(new DetailedStatusCodesMetrics().withIsEnabled(true))
                    .withPrefixLevel(new PrefixLevel().withStorageMetrics(prefixStorageMetrics));
            AccountLevel accountLevel = new AccountLevel()
                    .withActivityMetrics(new ActivityMetrics().withIsEnabled(true))
                    .withAdvancedCostOptimizationMetrics(new AdvancedCostOptimizationMetrics().withIsEnabled(true))
                    .withAdvancedDataProtectionMetrics(new AdvancedDataProtectionMetrics().withIsEnabled(true))
                    .withDetailedStatusCodesMetrics(new DetailedStatusCodesMetrics().withIsEnabled(true))
                    .withBucketLevel(bucketLevel);

            Include include = new Include()
                    .withBuckets(Arrays.asList("arn:aws:s3:::amzn-s3-demo-bucket"))
                    .withRegions(Arrays.asList("us-west-2"));

            StorageLensDataExportEncryption exportEncryption = new StorageLensDataExportEncryption()
                    .withSSES3(new SSES3());
            S3BucketDestination s3BucketDestination = new S3BucketDestination()
                    .withAccountId(exportAccountId)
                    .withArn(exportBucketArn)
                    .withEncryption(exportEncryption)
                    .withFormat(exportFormat)
                    .withOutputSchemaVersion(OutputSchemaVersion.V_1)
                    .withPrefix("Prefix");
            CloudWatchMetrics cloudWatchMetrics = new CloudWatchMetrics()
                    .withIsEnabled(true);
            StorageLensDataExport dataExport = new StorageLensDataExport()
                    .withCloudWatchMetrics(cloudWatchMetrics)
                    .withS3BucketDestination(s3BucketDestination);

            StorageLensAwsOrg awsOrg = new StorageLensAwsOrg()
                    .withArn(awsOrgARN);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withInclude(include)
                    .withDataExport(dataExport)
                    .withAwsOrg(awsOrg)
                    .withIsEnabled(true);

            List<StorageLensTag> tags = Arrays.asList(
                    new StorageLensTag().withKey("key-1").withValue("value-1"),
                    new StorageLensTag().withKey("key-2").withValue("value-2")
            );

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
                    .withTags(tags)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

## REST API の使用
<a name="storage-lens-cloudwatch-enable-publish-api"></a>

Amazon S3 REST API を使用して CloudWatch 公開オプションを有効にするには、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutStorageLensConfiguration.html) を使用します。

**次のステップ**  
CloudWatch 公開オプションを有効にすると、 CloudWatch の S3 Storage Lens メトリクスにアクセスできます。CloudWatch 機能を活用して、CloudWatch で S3 Storage Lens データをモニタリングおよび分析することもできます。詳細については、以下の各トピックを参照してください。
+ [S3 Storage Lens のメトリクスとディメンション](storage-lens-cloudwatch-metrics-dimensions.md)
+ [CloudWatch で S3 Storage Lens のメトリクスを表示します。](storage-lens-cloudwatch-monitoring-cloudwatch.md)

# CloudWatch で S3 Storage Lens のメトリクスを表示します。
<a name="storage-lens-cloudwatch-monitoring-cloudwatch"></a>

S3 ストレージレンズのメトリクスを Amazon CloudWatch に公開すると、[CloudWatch ダッシュボード](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)で運用状況を一元的に表示できます。また、アラームやトリガーアクション、メトリクス計算、異常検出などの CloudWatch 機能を使用して、S3 ストレージレンズのメトリクスをモニタリングしてアクションを実行できます。さらに CloudWatch API オペレーションにより、サードパーティープロバイダーを含むアプリケーションが S3 ストレージレンズのメトリクスにアクセスできるようになります。CloudWatch 機能の詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)」を参照してください。

Amazon S3 コンソール、Amazon S3 REST API、AWS CLI および AWS SDK を使用して、新規または既存のダッシュボード構成で CloudWatch 公開オプションを有効にすることができます。CloudWatch の公開オプションは、S3 ストレージレンズの高度なメトリクスとレコメンデーションにアップグレードされたダッシュボードで利用可能です。S3 ストレージレンズの高度なメトリクスとレコメンデーションの料金については、「[Amazon S3 料金表](https://aws.amazon.com/s3/pricing/)」を参照してください。追加の CloudWatch メトリクスの公開料金は適用されません。ただし、ダッシュボード、アラーム、API コールなどのその他の CloudWatch 料金が適用されます。詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

S3 Storage Lens のメトリクスは、S3 Storage Lens の設定を所有するアカウント内の CloudWatch に公開されます。高度なメトリクス内で CloudWatch 公開オプションを有効にすると、CloudWatch の設定 ID、アカウント、バケット (バケットレベルのメトリクスのみ)、リージョン、およびストレージクラス別に、アカウントレベルとバケットレベルのメトリクスにアクセスできるようになります。プレフィックスレベルのメトリクスは CloudWatch では使用できません。

**注記**  
S3 Storage Lens メトリクスは毎日のメトリクスであり、CloudWatch に 1 日 1 回公開されます。CloudWatch で S3 Storage Lens メトリクスをクエリする場合、クエリの期間は 1 日 (86400 秒) にする必要があります。毎日の S3 Storage Lens メトリクスが Amazon S3 コンソールの S3 Storage Lens ダッシュボードに表示された後、これらの同じメトリクスが CloudWatch に表示されるには数時間かかることがあります。初めて S3 Storage Lens メトリクスの CloudWatch 公開オプションを有効にすると、メトリクスが CloudWatch に公開されるまで最大で 24 時間かかることがあります。  
現在、S3 ストレージレンズのメトリクスは CloudWatch ストリームを介して使用することはできません。

CloudWatch での S3 Storage Lens メトリクスの操作方法の詳細については、以下のトピックを参照してください。

**Topics**
+ [CloudWatch ダッシュボードの使用](#storage-lens-cloudwatch-monitoring-cloudwatch-dashboards)
+ [アラームの設定、アクションのトリガー、異常検出の使用](#storage-lens-cloudwatch-monitoring-cloudwatch-alarms)
+ [ディメンションを使用した指標のフィルタリング](#storage-lens-cloudwatch-monitoring-cloudwatch-dimensions)
+ [メトリクス数学による新しいメトリクスの計算](#storage-lens-cloudwatch-monitoring-cloudwatch-metric-math)
+ [グラフでの検索式の使用](#storage-lens-cloudwatch-monitoring-cloudwatch-search-expressions)

## CloudWatch ダッシュボードの使用
<a name="storage-lens-cloudwatch-monitoring-cloudwatch-dashboards"></a>

CloudWatch ダッシュボードを使用して、S3 Storage Lens メトリクスを他のアプリケーションメトリクスとともにモニタリングし、運用状態の統一ビューを作成できます。ダッシュボードは、CloudWatch コンソールのカスタマイズ可能なホームページで、 リソースを単一のビューでリソースをモニタリングするために使用できます。

CloudWatch には、特定のメトリクスまたはディメンションへのアクセスの制限をサポートしない幅広い権限コントロールがあります。CloudWatch へのアクセス権を持つアカウントまたは組織のユーザーは、CloudWatch サポートオプションが有効になっているすべての S3 Storage Lens 設定のメトリクスにアクセスできます。S3 Storage Lens では、特定のダッシュボードのアクセス許可を管理することはできません。CloudWatch のアクセス許可の詳細については *Amazon CloudWatch ユーザーガイド*の [CloudWatch リソースに対するアクセス許可の管理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html)を参照してください。

CloudWatch ダッシュボードの使用とアクセス許可の設定の詳細については、 *Amazon CloudWatch ユーザーガイド*の [Amazon CloudWatch ダッシュボードの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)および [CloudWatch ダッシュボードの共有](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-dashboard-sharing.html)を参照してください。

## アラームの設定、アクションのトリガー、異常検出の使用
<a name="storage-lens-cloudwatch-monitoring-cloudwatch-alarms"></a>

CloudWatch で S3 Storage Lens メトリクスを監視し、しきい値を超えたときにアクションを実行する CloudWatch アラームを設定できます。例えば、**未完了のマルチパートアップロードバイト**メトリクスが 3 日間連続で 1 GB を超えた場合に Amazon SNS 通知を送信するアラームを設定できます。

また、異常検出を有効にして S3 Storage Lens のメトリクスを継続的に分析し、通常のベースラインを決定後、異常を検出できます。メトリクスの想定値に基づいて異常検出アラームを作成できます。例えば、**オブジェクトロックが有効になっているバイト数**メトリクスに異常がないかをモニタリングすると、オブジェクトロック設定の不正な削除を検出できます。

詳細な説明と例については、「[Amazon CloudWatch アラームを使用する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」そして 「*Amazon CloudWatch ユーザーガイド*」の「[グラフのメトリクスからアラームを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create_alarm_metric_graph.html)」を参照してください。

## ディメンションを使用した指標のフィルタリング
<a name="storage-lens-cloudwatch-monitoring-cloudwatch-dimensions"></a>

ディメンションを使用して、CloudWatch コンソールで S3 Storage Lens メトリクスをフィルタリングできます。例えば、次のようにフィルタリングできます。`configuration_id`、`aws_account_number`、`aws_region`、`bucket_name`、など。

S3 Storage Lens は、アカウントごとに複数のダッシュボード構成をサポートします。つまり、異なる構成に同じバケットを含めることができます。これらのメトリクスが CloudWatch に公開されると、バケットは CloudWatch 内に重複するメトリクスを持つことになります。CloudWatch の特定の S3 Storage Lens 設定のメトリクスだけを表示するには、`configuration_id` ディメンションを使用できます。`configuration_id` でフィルタリングすると、特定した構成に関連付けられたメトリクスのみが表示されます。

設定 ID によるフィルタリングの詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[利用可能なメトリクスを検索する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/finding_metrics_with_cloudwatch.html)」を参照してください。

## メトリクス数学による新しいメトリクスの計算
<a name="storage-lens-cloudwatch-monitoring-cloudwatch-metric-math"></a>

メトリクス数学により複数の S3 Storage Lens メトリクスをクエリし、数式を使用して、これらのメトリクスに基づく新しい時系列を作成できます。例えば、オブジェクト数から暗号化されたオブジェクト数を引いて、暗号化されていないオブジェクトの新しいメトリクスを作成できます。また、`StorageBytes` を `ObjectCount` で割って平均オブジェクトサイズを、`BytesDownloaded` を `StorageBytes` で割って 1 日にアクセスしたバイト数を取得するためのメトリクスを作成することもできます。

詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch メトリクス数学の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)」を参照してください。

## グラフでの検索式の使用
<a name="storage-lens-cloudwatch-monitoring-cloudwatch-search-expressions"></a>

S3 ストレージレンズのメトリクスを使用すると、検索式を作成することができます。例えば、**IncompleteMultipartUploadStorageBytes** と呼ばれるすべてのメトリクスの検索式を作成して、`SUM` を式に追加することができます。この検索式を使用すると、ストレージのすべてのディメンションで未完了のマルチパートアップロードバイトの合計を 1 つのメトリクスで確認できます。

この例では、**IncompleteMultipartUploadStorageBytes** と呼ばれるすべてのメトリクスの検索式を作成するために使用する構文を示します。

```
SUM(SEARCH('{AWS/S3/Storage-Lens,aws_account_number,aws_region,configuration_id,metrics_version,record_type,storage_class} MetricName="IncompleteMultipartUploadStorageBytes"', 'Average',86400))
```

この構文の詳細については、 「*Amazon CloudWatch ユーザーガイド*」の 「[CloudWatch 検索式の構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html)」を参照してください。検索式を使用した CloudWatch グラフを作成するには、 「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-search-expression.html)」の「*検索式を使用した CloudWatch グラフの作成*」を参照してください。

# Amazon S3 ストレージレンズメトリクスのユースケース
<a name="storage-lens-use-cases"></a>

Amazon S3 ストレージレンズのダッシュボードを使用して、インサイトと傾向を可視化し、外れ値にフラグを付け、レコメンデーションを受け取ることができます。S3 ストレージレンズメトリクスは、主要なユースケースに合致するカテゴリに整理されます。これらのメトリクスを使用して、次のことができます。
+ コスト最適化の機会の特定
+ データ保護のベストプラクティスの適用
+ アクセス管理のベストプラクティスの適用
+ アプリケーションワークロードのパフォーマンスの向上

例えば、コスト最適化メトリクスを使用して、Amazon S3 のストレージコストを削減する機会を特定することができます。7 日以上経過したマルチパートアップロードのあるバケットや、最新ではないバージョンが蓄積されているバケットを特定できます。

同様に、データ保護メトリクスを使用することで、組織内のデータ保護のベストプラクティスに従っていないバケットを特定できます。例えば、デフォルトの暗号化に AWS Key Management Service キー (SSE-KMS) を使用しないバケットや、S3 バージョニングが有効になっていないバケットを特定できます。

S3 ストレージレンズのアクセス管理メトリクスでは、S3 オブジェクト所有権のバケット設定を特定でき、アクセスコントロールリスト (ACL) アクセス許可をバケットポリシーに移行して ACL を無効にできます。

[S3 ストレージレンズの高度なメトリクス](storage_lens_basics_metrics_recommendations.md)を有効にしている場合は、詳細なステータスコードメトリクスを使用してリクエストの成功または失敗の数を取得し、アクセスやパフォーマンスの問題のトラブルシューティングに使用できます。

高度なメトリクスを使用すると、追加のコスト最適化メトリクスやデータ保護メトリクスにアクセスして、S3 ストレージ全体のコストをさらに削減し、データ保護のベストプラクティスとの整合性を高める機会を特定することもできます。例えば、高度なコスト最適化メトリクスにはライフサイクルルール数が含まれます。このメトリクスを使用して、7 日以上経過した未完了のマルチパートアップロードを失効させるライフサイクルルールがないバケットを特定できます。高度なデータ保護メトリクスには、レプリケーションルール数が含まれます。

メトリクスのカテゴリの詳細については、「[メトリクスのカテゴリ](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types)」を参照してください。S3 ストレージレンズメトリクスの完全なリストについては、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

**Topics**
+ [Amazon S3 ストレージレンズを使用したストレージコストの最適化](storage-lens-optimize-storage.md)
+ [S3 ストレージレンズによるデータ保護](storage-lens-data-protection.md)
+ [オブジェクト所有権設定を監査するための S3 の使用](storage-lens-access-management.md)
+ [S3 ストレージレンズのメトリクスを使用してパフォーマンスを改善する](storage-lens-detailed-status-code.md)

# Amazon S3 ストレージレンズを使用したストレージコストの最適化
<a name="storage-lens-optimize-storage"></a>

S3 ストレージレンズのコスト最適化メトリクスを使用すると、S3 ストレージの全体的なコストを削減できます。コスト最適化メトリクスは、Amazon S3 をコスト効率よく、ベストプラクティスに従って設定したことを確認するのに役立ちます。例えば、次のようなコスト最適化の機会を特定できます。
+ 7 日以上経過した未完了のマルチパートアップロードを含むバケット
+ 多数の旧バージョンが蓄積されているバケット
+ 未完了のマルチパートアップロードを中止するためのライフサイクルルールが設定されていないバケット
+ 旧バージョンのオブジェクトを期限切れにするライフサイクルルールがないバケット
+ オブジェクトを別のストレージクラスに移行するためのライフサイクルルールがないバケット

その後、このデータを使用して、バケットにライフサイクルルールを追加できます。

次の例は、S3 ストレージレンズダッシュボードでコスト最適化メトリクスを使用してストレージコストを最適化する方法を示しています。

**Topics**
+ [最大の S3 バケットを特定する](#identify-largest-s3-buckets)
+ [コールド Amazon S3 バケットを検出する](#uncover-cold-buckets)
+ [未完了のマルチパートアップロードを特定する](#locate-incomplete-mpu)
+ [保持する旧バージョンの数を減らす](#reduce-noncurrent-versions-retained)
+ [ライフサイクルルールがないバケットを特定し、ライフサイクルルール数を確認する](#identify-missing-lifecycle-rules)

## 最大の S3 バケットを特定する
<a name="identify-largest-s3-buckets"></a>

料金は S3 バケットでのオブジェクトの保存に対して発生します。請求される料金は、オブジェクトのサイズ、オブジェクトの保存期間、およびそれらのストレージクラスに応じて異なります。S3 ストレージレンズで、アカウント内のすべてのバケットを一元的に表示できます。組織が持つすべてのアカウントのバケットをすべて表示するには、AWS Organizations レベルの S3 ストレージレンズダッシュボードを設定できます。最大のバケットは、このダッシュボードのビューから特定できます。

### ステップ 1: 最大のバケットを特定する
<a name="optimize-storage-identify-largest-buckets"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

   ダッシュボードが開くと、S3 ストレージレンズがメトリクスを収集した最新の日付を確認できます。ダッシュボードでは常に、メトリクスの集計が可能な、最新の日付で読み込が行われます。

1. 選択した日付範囲の **[ストレージの合計]** メトリクスで最大バケットのランキングを表示するには、**[*日付*の上位 N の概要]** セクションまでスクロールダウンします。

   ソート順序を切り替えて、最も小さいバケットを表示できます。また、**[Metric]** (メトリクス) の選択を調整して、使用可能なメトリクスのいずれかでバケットをランク付けすることもできます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。この傾向は、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間の傾向です。
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. バケットに関するより詳細な情報については、ページの上部までスクロールし、**[Bucket]** (バケット) タブを選択します。

   **[Buckets]** (バケット) タブでは、最近の増加率、平均的なオブジェクトサイズ、最大のプレフィックス、およびオブジェクトの数などの詳細を確認できます。

### ステップ 2: バケットに移動して調査する
<a name="optimize-storage-investigate"></a>

最大の S3 バケットを特定したら、S3 コンソール内の各バケットに移動してバケット内のオブジェクトを表示し、関連するワークロードを理解し、内部所有者を特定できます。バケットの所有者に連絡すれば、この増加が見込まれていたものかどうか、またはこの増加をさらにモニタリングして制御する必要があるかどうかを確認できます。

## コールド Amazon S3 バケットを検出する
<a name="uncover-cold-buckets"></a>

[S3 ストレージレンズの高度なメトリクス](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection) を有効にしている場合は、[アクティビティメトリクス](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_types)を使用して、S3 バケットがどの程度「コールド」かを理解できます。「コールド」なバケットとは、そのストレージがアクセスされなくなった (またはほとんどアクセスされない) バケットです。通常、このアクティビティの欠如はバケットのオブジェクトが頻繁にアクセスされていないことを示します。

**[GET Requests]** (GET リクエスト) および **[Download Bytes]** (ダウンロード済みバイト数) などのアクティビティメトリクスは、バケットが毎日どのくらいの頻度でアクセスされるかを示します。アクセスパターンの一貫性を理解し、まったくアクセスされなくなったバケットを特定するために、このデータの数か月間にわたる傾向を得ることができます。**[Download bytes / Total storage]** (ダウンロード済みバイト数÷ストレージの合計) として計算される **[Retrieval rate]** (取得率) メトリクスは、毎日アクセスされるバケット内のストレージの比率を示します。

**注記**  
1 日に同じオブジェクトが複数回ダウンロードされる場合は、ダウンロードのバイト数が重複します。

**前提条件**  
S3 ストレージレンズダッシュボードでアクティビティメトリクスを表示するには、S3 ストレージレンズ **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから、**[Activity metrics]** (アクティビティメトリクス) を選択する必要があります。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

### ステップ 1: アクティブなバケットを特定する
<a name="storage-lens-identify-active-buckets"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[バケット]** タブを選択してから、**[*日付*別のバケットごとのバブル分析]** セクションまでスクロールダウンします。

   **[*日付*別のバケットごとのバブル分析]** セクションでは、バブルの **[X 軸]**、**[Y 軸]**、**[サイズ]** を表す 3 つのメトリクスを使用して、バケットを複数のディメンションにプロットできます。

1. コールドになったバケットを見つけるには、**[X 軸]**、**[Y 軸]**、**[サイズ]** で、**[合計ストレージ]**、**[% 取り出し率]**、**[オブジェクトサイズの平均]** のメトリクスを選択します。

1. **[*日付*別のバケットごとのバブル分析]** セクションで、取得率がゼロ (またはゼロに近い) で、かつ相対的なストレージサイズが大きいバケットを探し、そのバケットを表すバブルを選択します。

   より詳細なインサイトの選択肢が記載されたボックスが表示されます。次のいずれかを行います。

   1. **[Bucket]** (バケット) タブを更新して、選択したバケットのメトリクスのみを表示するには、**[Drill down]** (ドリルダウン)、**[Apply]** (適用) を順に選択します。

   1. バケットレベルのデータをアカウント、AWS リージョン、ストレージクラス、またはバケットごとに集約するには、**[Analyze by]** (分析基準)、**[Dimension]** (ディメンション) の順に選択します。例えば、ストレージクラス別に集計するには、**[Dimension]** (ディメンション) に **[Storage class]** (ストレージクラス) を選択します。

   コールドになったバケットを見つけるには、**[Total storage]** (ストレージの合計)、**[% retrieval rate]** (% 取得率)、および **[Average object size]** (平均オブジェクトサイズ) メトリクスを使用してバブル分析を実行します。取得率がゼロ (またはゼロに近い) で、かつ相対的なストレージサイズが大きいバケットを探します。

   ダッシュボードの **[Bucket]** (バケット) タブが更新され、選択した集計またはフィルターのデータが表示されます。ストレージクラスまたは別のディメンション別に集計した場合、その新しいタブがダッシュボードに表示されます (例えば、**[Storage class]** (ストレージクラス) タブ)。

### ステップ 2: コールドバケットを調査する
<a name="storage-lens-investigate-buckets"></a>

そこからアカウントまたは組織内のコールドバケットの所有者を特定し、そのストレージが引き続き必要かどうかを確認できます。その後、バケットに[ライフサイクル有効期限設定](object-lifecycle-mgmt.md)を設定する、またはデータを [Amazon Glacier ストレージクラス](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html)にアーカイブすることによって、コストを最適化できます。

将来のコールドバケット問題を回避するには、[S3 ライフサイクル設定を使用してデータを自動的に移行させる](lifecycle-configuration-examples.md)、または [S3 Intelligent-Tiering による自動アーカイブ](archived-objects.md)を有効にすることができます。

ステップ 1 を実施してホットバケットを識別することもできます。次に、これらのバケットが正しい [S3 ストレージクラス](storage-class-intro.md)を使用するようにして、パフォーマンスとコストの面で最も効果的にリクエストに応えられるようにします。

## 未完了のマルチパートアップロードを特定する
<a name="locate-incomplete-mpu"></a>

スループットを向上させ、ネットワーク問題からより迅速に復旧するため、マルチパートアップロードを使用して超大型のオブジェクト (最大 50 TB) を複数のパートから成るセットとしてアップロードすることができます。マルチパートアップロードのプロセスが完了しなかった場合、未完了のなパートが使用不可能な状態でバケットに残ります。これらの未完了のパートには、アップロードプロセスが完了するか、未完了の部分が削除されるまで、ストレージコストが発生します。詳細については、「[Amazon S3 でのマルチパートアップロードを使用したオブジェクトのアップロードとコピー](mpuoverview.md)」を参照してください。

S3 ストレージレンズを使用すると、7 日以上経過した未完了のマルチパートアップロードを含め、アカウント内、または組織全体にある未完了のマルチパートアップロードのバイト数を特定できます。未完了のマルチパートアップロードメトリクスの完全なリストについては、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

ベストプラクティスとして、特定の日数を過ぎた未完了のマルチパートアップロードを期限切れにするように、ライフサイクルルールを設定することをおすすめします。未完了のマルチパートアップロードを期限切れにするライフサイクルルールを作成する場合は、7 日間から始めることをお勧めします。

### ステップ 1: 未完了のマルチパートアップロードの全体的なトレンドを確認する
<a name="locate-incomplete-mpu-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[*日付*のスナップショット]** セクションの **[メトリクスのカテゴリ]** で、**[コスト最適化]** を選択します。

   **[*日付*のスナップショット]** セクションが更新され、**[7 日以上経過した未完了のマルチパートアップロードバイト数]** を含む **[コスト最適化]** メトリクスが表示されます。

   S3 ストレージレンズダッシュボードのどのグラフでも、未完了のマルチパートアップロードのメトリクスを確認できます。これらのメトリクスを使用して、全体的な増加傾向に対するそれらの寄与度などを含め、ストレージに対する未完了のマルチパートアップロードのバイト数の影響をさらに評価することができます。また、**[アカウント]**、**[AWS リージョン]**、**[バケット]**、**[ストレージクラス]** の各タブを使用して、より詳細な集計レベルまで掘り下げてデータを分析することもできます。例については、[コールド Amazon S3 バケットを検出する](#uncover-cold-buckets)を参照してください。

### ステップ 2: マルチパートアップロードバイト数が最も多く、未完了のマルチパートアップロードを中止するライフサイクルルールがないバケットを特定する
<a name="locate-incomplete-mpu-step2"></a>

**前提条件**  
S3 ストレージレンズダッシュボードに **[Abort incomplete multipart upload lifecycle rule count]** (未完了のマルチパートアップロードの中止ライフサイクルルール数) メトリクスを表示するには、S3 ストレージレンズの **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから **[Advanced cost optimization metrics]** (高度なコスト最適化メトリクス) を選択する必要があります。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. 7 日以上経過した未完了のマルチパートアップロードが蓄積されているバケットを特定するには、**[*日付*の上位 N の概要]** セクションに移動します。

   デフォルトでは、**[*日付*の上位 N の概要]** セクションには、上位 3 つのバケットのメトリクスが表示されます。**[Top N]** (トップ N) のフィールドでバケット数を増減できます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。(このトレンドは、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間のトレンドです。) 
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[Metric]** (メトリクス) で、**[Cost optimization]** (コスト最適化) カテゴリの **[Incomplete multipart upload bytes greater than 7 days old]** (7 日以上経過した未完了のマルチパートアップロードバイト数) を選択します。

   **[上位バケット*数*]** には、7 日以上経過している未完了のマルチパートアップロードのストレージバイト数が最も多いバケットが表示されます。

1. 未完了のマルチパートアップロードに関する詳細なバケットレベルのメトリクスを表示するには、ページの一番上までスクロールして、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Cost optimization]** (コスト最適化) を選択します。次に，**[Summary]** (概要) を選択解除します。

   **[Buckets]** (バケット) リストが更新され、表示されているバケットで利用可能なすべての **[Cost optimization]** (コスト最適化) メトリクスが表示されます。

1. **[Buckets]** (バケット) リストをフィルタリングして特定のコスト最適化メトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. **[Incomplete multipart upload bytes greater than 7 days old]** (7 日以上経過した未完了のマルチパートアップロードバイト数) および **[Abort incomplete multipart upload lifecycle rule count]** (未完了のマルチパートアップロードの中止ライフサイクルルール数) 以外のすべてのコスト最適化メトリクスのトグルを選択解除します。

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

   **[Buckets]** (バケット) リストが更新され、未完了のマルチパートアップロードのバケットレベルのメトリクスとライフサイクルルール数が表示されます。このデータを使用して、7 日以上経過した未完了のマルチパートアップロードバイト数が最も多く、未完了のマルチパートアップロードを中止するライフサイクルルールが欠落しているバケットを特定できます。次に、S3 コンソールでこれらのバケットに移動し、ライフサイクルルールを追加して、放棄された未完了のマルチパートアップロードを削除できます。

### ステップ 3: 未完了のマルチパートアップロードを 7 日後に削除するライフサイクルルールを追加する
<a name="locate-incomplete-mpu-step3"></a>

未完了のマルチパートアップロードを自動的に管理するには、S3 コンソールを使用して、指定された日数後にバケットから未完了のマルチパートアップロードのバイトを失効させるライフサイクル設定を作成できます。詳細については、「[不完全なマルチパートアップロードを削除するためのバケットライフサイクル設定の設定](mpu-abort-incomplete-mpu-lifecycle-config.md)」を参照してください。

## 保持する旧バージョンの数を減らす
<a name="reduce-noncurrent-versions-retained"></a>

S3 バージョニング機能を有効にすると、同じオブジェクトの複数の異なるバージョンが保持されます。これらは、オブジェクトが誤って削除または上書きされた場合にデータをすばやく回復させるために使用できます。旧バージョンを移行または期限切れにするライフサイクルルールを設定せずに S3 バージョニングを有効にした場合、旧バージョンが大量に蓄積され、ストレージコストに影響する可能性があります。詳細については、「[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)」を参照してください。

### ステップ 1: 最新でないオブジェクトバージョンが最も多いバケットを特定する
<a name="reduce-noncurrent-versions-retained-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[*日付*のスナップショット]** セクションの **[メトリクスのカテゴリ]** で、**[コスト最適化]** を選択します。

   **[*日付*のスナップショット]** セクションが更新され、**[コスト最適化]** メトリクスが表示されます。これには、**[旧バージョンのバイト数 %]** メトリクスが含まれます。**[% noncurrent version bytes]** (旧バージョンのバイト数 %) のメトリクスは、ダッシュボードの範囲内かつ選択された日付に関して、ストレージの合計バイト数のうち、旧バージョンに起因するバイト数の割合を表します。
**注記**  
**[% noncurrent version bytes]** (旧バージョンのバイト数 %) がアカウントレベルでストレージの 10 パーセントを超過する場合、保存しているオブジェクトバージョンの数が多すぎる可能性があります。

1. 旧バージョンが大量に蓄積されているバケットを特定するには:

   1. **[*日付*の上位 N の概要]** セクションまで下にスクロールします。**[Top N]** (上位 N) には、データを表示したいバケットの数を入力します。

   1. **[Metric]** (メトリクス) で、**[% noncurrent version bytes]** (旧バージョンのバイト数 %) を選択します。

      **[上位バケット*数*]** の下に、**[旧バージョンのバイト数 %]** が最も高い (指定した数の) バケットが表示されます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。この傾向は、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間の傾向です。
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

   1. 最新でないオブジェクトバージョンに関する詳細なバケットレベルのメトリクスを表示するには、ページの一番上までスクロールして、**[Bucket]** (バケット) タブを選択します。

      S3 ストレージレンズダッシュボードのどのグラフや可視化でも、**[アカウント]**、**[AWS リージョン]**、**[ストレージクラス]**、または **[バケット]** タブを使用して、より深いレベルの集計にドリルダウンできます。例については、[コールド Amazon S3 バケットを検出する](#uncover-cold-buckets)を参照してください。

   1. **[Buckets]** (バケット) セクションの **[Metric categories]** (メトリクスカテゴリ) で、**[Cost optimization]** (コスト最適化) を選択します。次に。**[Summary]** (概要) を選択解除します。

      旧バージョンに関連する他のメトリクスと共に、**[% noncurrent version bytes]** (旧バージョンのバイト数 %) メトリクスを確認できるようになりました。

### ステップ 2: 旧バージョンを管理するための移行および有効期限のライフサイクルルールがないバケットを特定する
<a name="reduce-noncurrent-versions-retained-step2"></a>

**前提条件**  
S3 ストレージレンズダッシュボードで **[Noncurrent version transition lifecycle rule count]** (旧バージョン移行ライフサイクルルール数) および **[Noncurrent version expiration lifecycle rule count]** (旧バージョン有効期限ライフサイクルルール数) メトリクスを確認するには、S3 ストレージレンズの **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション)を有効にしてから、**[Advanced cost optimization metrics]** (高度なコスト最適化メトリクス) を選択する必要があります。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. ストレージレンズダッシュボードで、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Cost optimization]** (コスト最適化) を選択します。次に，**[Summary]** (概要) を選択解除します。

   **[Buckets]** (バケット) リストが更新され、表示されているバケットで利用可能なすべての **[Cost optimization]** (コスト最適化) メトリクスが表示されます。

1. **[Buckets]** (バケット) リストをフィルタリングして特定のコスト最適化メトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. 次の項目だけが選択された状態になるまで、他のすべてのコスト最適化メトリクスを選択解除します。
   + **% noncurrent version bytes (旧バージョンのバイト数** %)
   + **Noncurrent version transition lifecycle rule count (旧バージョン移行ライフサイクルルール数**
   + **Noncurrent version expiration lifecycle rule count (旧バージョン有効期限ライフサイクルルール数**

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

   **[Buckets]** (バケット)リストが更新され、旧バージョンのバイト数と旧バージョンのライフサイクルルール数のメトリクスが表示されます。このデータを使用して、旧バージョンのバイト数の割合が高いが、移行および有効期限のライフサイクルルールが欠落しているバケットを特定できます。次に、S3 コンソールでこれらのバケットに移動し、これらのバケットにライフサイクルルールを追加できます。

### ステップ 3: ライフサイクルルールを追加して最新でないオブジェクトバージョンを移行または期限切れにする
<a name="reduce-noncurrent-versions-retained-step3"></a>

追加の調査が必要なバケットを判断したら、S3 コンソールでそのバケットに移動し、指定した日数後に旧バージョンを失効させるライフサイクルルールを追加できます。あるいは、旧バージョンを保持したままコストを削減するために、旧バージョンを Amazon Glacier ストレージクラスのいずれかに移行するライフサイクルルールを設定することもできます。詳細については、「[バージョニングが有効なバケットへのライフサイクルルールを指定する](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex6)」を参照してください。

## ライフサイクルルールがないバケットを特定し、ライフサイクルルール数を確認する
<a name="identify-missing-lifecycle-rules"></a>

S3 ストレージレンズには、ライフサイクルルールがないバケットを特定するために使用できる S3 ライフサイクルルール数メトリクスが用意されています。ライフサイクルルールがないバケットを見つけるには、**[Total buckets without lifecycle rules]** (ライフサイクルルールがないバケットの合計数) メトリクスを使用できます。S3 ライフサイクル設定のないバケットには、不要になったストレージや、低コストのストレージクラスに移行できるストレージがある可能性があります。ライフサイクルルール数メトリクスを使用して、有効期限ルールや移行ルールなど、特定の種類のライフサイクルルールが欠落しているバケットを特定することもできます。

**前提条件**  
S3 ライフサイクルダッシュボードでライフサイクルルール数のメトリクスと **[Total buckets without lifecycle rules]** (ライフサイクルルールがないバケットの合計数) メトリクスを表示するには、S3 ストレージレンズの **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから **[Advanced cost optimization metrics]** (高度なコスト最適化メトリクス) を選択する必要があります。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

### ステップ 1: ライフサイクルルールが設定されていないバケットを特定する
<a name="identify-missing-lifecycle-rules-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. ライフサイクルルールのない特定のバケットを確認するには、**[*日付*の上位 N の概要]** セクションまで下にスクロールします。

   デフォルトでは、**[*日付*の上位 N の概要]** セクションには、上位 3 つのバケットのメトリクスが表示されます。**[Top N]** (トップ N) のフィールドでバケット数を増やすことができます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。この傾向は、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間の傾向です。
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[Metric]** (メトリクス) で、**[Total buckets without lifecycle rules]** (ライフサイクルルールがないバケットの合計数) を **[Cost optimization]** (コスト最適化) カテゴリから選択します。

1. **[Total buckets without lifecycle rules]** (ライフサイクルルールがないバケットの合計数) については、次のデータを確認してください:
   + **上位アカウント*数*** – ライフサイクルルールのないバケット数が最も多いアカウントを確認できます。
   + **上位リージョン*数*** – ライフサイクルルールのないバケットの内訳をリージョン別に表示します。
   + **上位バケット*数*** – どのバケットにライフサイクルルールがないかを確認できます。

   S3 ストレージレンズダッシュボードのどのグラフや可視化でも、**[アカウント]**、**[AWS リージョン]**、**[ストレージクラス]**、または **[バケット]** タブを使用して、より深いレベルの集計にドリルダウンできます。例については、[コールド Amazon S3 バケットを検出する](#uncover-cold-buckets)を参照してください。

   ライフサイクルルールがないバケットを特定したら、バケットの特定のライフサイクルルール数を確認することもできます。

### ステップ 2: バケットのライフサイクルルール数を確認する
<a name="identify-missing-lifecycle-rules-step2"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. S3 ストレージレンズダッシュボードで、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Cost optimization]** (コスト最適化) を選択します。次に，**[Summary]** (概要) を選択解除します。

   **[Buckets]** (バケット) リストが更新され、表示されているバケットで利用可能なすべての **[Cost optimization]** (コスト最適化) メトリクスが表示されます。

1. **[Buckets]** (バケット) リストをフィルタリングして特定のコスト最適化メトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. 次の項目だけが選択された状態になるまで、他のすべてのコスト最適化メトリクスを選択解除します。
   + **Transition lifecycle rule count (移行ライフサイクルルール数**
   + **Expiration lifecycle rule count (有効期限ライフサイクルルール数**
   + **Noncurrent version transition lifecycle rule count (旧バージョン移行ライフサイクルルール数**
   + **Noncurrent version expiration lifecycle rule count (旧バージョン有効期限ライフサイクルルール数**
   + **Abort incomplete multipart upload lifecycle rule count (未完了のマルチパートアップロードの中止ライフサイクルルール数**
   + **Total lifecycle rule count (ライフサイクルルールの合計数**

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

   **[Buckets]** (バケット) リストが更新され、バケットのライフサイクルルール数メトリクスが表示されます。このデータを使用して、ライフサイクルルールがないバケットや、有効期限や移行ルールなどの特定の種類のライフサイクルルールがないバケットを特定できます。次に、S3 コンソールでこれらのバケットに移動し、これらのバケットにライフサイクルルールを追加できます。

### ステップ 3: ライフサイクルルールを追加する
<a name="identify-missing-lifecycle-rules-step3"></a>

ライフサイクルルールのないバケットを特定したら、ライフサイクルルールを追加できます。詳細については、「[バケットに S3 ライフサイクル設定を設定する](how-to-set-lifecycle-configuration-intro.md)」および「[S3 ライフサイクル設定の例](lifecycle-configuration-examples.md)」を参照してください。

# S3 ストレージレンズによるデータ保護
<a name="storage-lens-data-protection"></a>

Amazon S3 ストレージレンズのデータ保護メトリクスを使用して、データ保護のベストプラクティスが適用されていないバケットを特定できます。これらのメトリクスを使用して対策を講じ、ベストプラクティスに沿った標準設定を適用して、アカウントや組織内のさまざまなバケットにわたってデータを保護できます。例えば、データ保護メトリクスを使用して、デフォルトの暗号化に AWS Key Management Service (AWS KMS) キー (SSE-KMS) を使用しないバケットや、AWS Signature Version 2 (SigV2) を使用するリクエストを特定できます。

以下のユースケースでは、S3 ストレージレンズダッシュボードを使用して外れ値を特定し、S3 バケット全体にデータ保護のベストプラクティスを適用する戦略を提供します。

**Topics**
+ [AWS KMS によるデフォルトの暗号化 (SSE-KMS) でサーバー側暗号化を使用しないバケットを識別する](#storage-lens-sse-kms)
+ [S3 バージョニングが有効なバケットを識別する](#storage-lens-data-protection-versioning)
+ [AWS Signature Version 2 (SigV2) を使用したリクエストを識別する](#storage-lens-data-protection-sigv)
+ [各バケットのレプリケーションルールの総数を数える](#storage-lens-data-protection-replication-rule)
+ [オブジェクトロックバイトのパーセンテージを識別する](#storage-lens-data-protection-object-lock)

## AWS KMS によるデフォルトの暗号化 (SSE-KMS) でサーバー側暗号化を使用しないバケットを識別する
<a name="storage-lens-sse-kms"></a>

Amazon S3 のデフォルトの暗号化を使用して、S3 バケットのデフォルト暗号化の動作を設定できます。詳細については、「[Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定](bucket-encryption.md)」を参照してください。

**[SSE-KMS enabled bucket count]** (SSE-KMS 対応バケット数) と**[% SSE-KMS enabled buckets]** (% SSE-KMS 対応バケット) メトリクスを使用して、デフォルトの暗号化に AWS KMS キー (SSE-KMS) によるサーバー側暗号化を使用しているバケットを特定できます。S3 ストレージレンズは、暗号化されていないバイト、暗号化されていないオブジェクト、暗号化されたバイト、および暗号化されたオブジェクトのメトリクスも提供します。メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

SSE-KMS 暗号化メトリクスを一般的な暗号化メトリクスのコンテキストで分析すると、SSE-KMS を使用していないバケットを特定できます。アカウントまたは組織のすべてのバケットに SSE-KMS を使用する場合は、これらのバケットのデフォルトの暗号化設定を SSE-KMS を使用するように更新できます。SSE-KMS に加え、Amazon S3 で管理されたキー (SSE-S3) またはお客様から提供されたキー (SSE-C) によりサーバー側の暗号化を使用できます。詳細については、「[暗号化によるデータの保護](UsingEncryption.md)」を参照してください。

### ステップ 1: どのバケットがデフォルトの暗号化に SSE-KMS を使用しているかを特定する
<a name="storage-lens-sse-kms-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[Trends and distributions]** (傾向とディストリビューション) セクションで、プライマリメトリクスには **[% SSE-KMS enabled bucket count]** (% SSE-KMS 対応バケット数) を選択し、セカンダリメトリクスには **[% encrypted bytes]** (% 暗号化バイト数) を選択します。

   **[*日付*の傾向]** グラフが更新され、SSE-KMS と暗号化されたバイトの傾向が表示されます。

1. SSE-KMS の詳細なバケットレベルのインサイトを表示するには:

   1. グラフ上のポイントを選択します。より詳細なインサイトの選択肢が記載されたボックスが表示されます。

   1. **[Buckets]** (バケット) ディメンションを選択します。次に、**適用**を選択します。

1. **[*日付*のバケット別分布]** グラフで、**[SSE-KMS が有効なバケット数]** メトリクスを選択します。

1. これで、SSE-KMS が有効になっているバケットと有効になっていないバケットを確認できます。

### ステップ 2: バケットのデフォルトの暗号化設定を更新する
<a name="storage-lens-sse-kms-step2"></a>

どのバケットが **[% encrypted bytes]** (% 暗号化バイト) のコンテキストで SSE-KMS を使用するかを確認できたので、SSE-KMS を使用しないバケットを特定できます。その後、オプションで S3 コンソール内のこれらのバケットに移動し、デフォルトの暗号化設定を SSE-KMS または SSE-S3 を使用するように更新できます。詳細については、「[デフォルトの暗号化の設定](default-bucket-encryption.md)」を参照してください。

## S3 バージョニングが有効なバケットを識別する
<a name="storage-lens-data-protection-versioning"></a>

S3 バージョニング機能を有効にすると、同じオブジェクトの複数のバージョンが保持されます。これらは、オブジェクトが誤って削除された、または上書きされた場合にデータをすばやく回復させるために使用できます。**[Versioning-enabled bucket count]** (バージョニングが有効なバケット数) メトリクスを使用して、どのバケットが S3 バージョニングを使用しているかを確認できます。次に、S3 コンソールでアクションを実行して、他のバケットの S3 バージョニングを有効にできます。

### ステップ 1: S3 バージョニングが有効なバケットを識別する
<a name="storage-lens-data-protection-versioning-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. ナビゲーションペインで、[**Storage Lens**]、[**ダッシュボード**] の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[Trends and distributions]** (傾向とディストリビューション) セクションで、プライマリメトリクスには **[Versioning-enabled bucket count]** (バージョニングが有効なバケット数) を選択し、セカンダリメトリクスには **[Buckets]** (バケット) を選択します。

   **[*日付*の傾向]** グラフが更新され、S3 バージョニングが有効なバケットの傾向が表示されます。トレンドラインのすぐ下に、**[Storage class distribution]** (ストレージクラスディストリビューション) と**[Region distribution]** (リージョンディストリビューション) サブセクションが表示されます。

1. **[*日付*の傾向]** グラフに表示されているバケットについてより詳細なインサイトを表示して、より詳細な分析を実行できるようにするには、次の操作を行います。

   1. グラフ上のポイントを選択します。より詳細なインサイトの選択肢が記載されたボックスが表示されます。

   1. データに適用するディメンションを **[Account]** (アカウント)、**[AWS リージョン]**、**[Storage class]** (ストレージクラス)、**[Bucket]** (バケット) から選択して、より詳細な分析を行います。次に、**適用**を選択します。

1. **[*日付*別のバケットによるバブル分析]** セクションで、**[バージョニングが有効なバケット数]**、**[バケット]**、**[アクティブバケット]** のメトリクスを選択します。

   **[Bubble analysis by buckets for date]** (日付別のバケットごとのバブル分析) セクションが更新され、選択したメトリクスのデータが表示されます。**このデータを使用して、合計バケット数に関連して、どのバケットで S3 バージョニングが有効になっているかを確認できます。**[*日付*別のバケットごとのバブル分析]** セクションでは、バブルの **[X 軸]**、**[Y 軸]**、**[サイズ]** を表す 3 つのメトリクスを使用して、バケットを複数のディメンションにプロットできます。

### ステップ 2: S3 バージョニングを有効にする
<a name="storage-lens-data-protection-versioning-step2"></a>

S3 バージョニングが有効になっているバケットを特定したら、S3 バージョニングが有効になっていないバケット、またはバージョニングが停止されているバケットを特定できます。次に、オプションで S3 コンソールでこれらのバケットのバージョニングを有効にできます。詳細については、「[バケットでのバージョニングの有効化](manage-versioning-examples.md)」を参照してください。

## AWS Signature Version 2 (SigV2) を使用したリクエストを識別する
<a name="storage-lens-data-protection-sigv"></a>

**[All unsupported signature requests]** (すべてのサポートされていない署名リクエスト) メトリクスを使用して、AWS Signature Version 2 (SigV2) を使用するリクエストを特定できます。このデータは、SigV2 を使用している特定のアプリケーションを特定するのに役立ちます。その後、これらのアプリケーションを AWS Signature Version 4 (SigV4) に移行できます。

SigV4 はすべての新しい S3 アプリケーションに推奨される署名方法です。SigV4 はセキュリティが向上し、すべての AWS リージョン でサポートされています。詳細については、「[Amazon S3 更新 - SigV2 の非推奨期間の延長および変更](https://aws.amazon.com/blogs/aws/amazon-s3-update-sigv2-deprecation-period-extended-modified/)」を参照してください。

**前提条件**  
**[All unsupported signature requests]** (すべてのサポートされていない署名リクエスト) を S3 ストレージレンズダッシュボードに表示するには、S3 ストレージレンズの **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから、**[Advanced data protection metrics]** (高度なデータ保護メトリクス) を選択します。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

### ステップ 1: SigV2 署名の傾向を AWS アカウント、リージョン、バケット別に調べる
<a name="storage-lens-data-protection-sigv-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. SigV2 を使用するリクエストがある特定のバケット、アカウント、リージョンを特定するには:

   1. **[上位 N]** の **[*日付*の上位 N の概要]** に、データを表示したいバケットの数を入力します。

   1. **[Metric]** (メトリクス) では、**[Data protection]** (データ保護) カテゴリから **[All unsupported signature requests]** (すべてのサポートされていない署名リクエスト) を選択します。

      **[*日付*の上位 N の概要]** が更新され、アカウント、AWS リージョン、バケット別に SigV2 リクエストのデータが表示されます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。この傾向は、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間の傾向です。
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

### ステップ 2: SigV2 リクエストを通じてアプリケーションからアクセスされるバケットを特定する
<a name="storage-lens-data-protection-sigv-step2"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. ストレージレンズダッシュボードで、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Data protection]** (データ保護) を選択します。次に、**[Summary]** (概要) を選択解除します。

   **[Buckets]** (バケット) リストが更新され、表示されているバケットで利用可能なすべての **[Data protection]** (データ保護) メトリクスが表示されます。

1. **[Buckets]** (バケット) リストをフィルタリングして特定のデータ保護メトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. 次の項目だけが選択された状態になるまで、他のすべてのデータ保護メトリクスを選択解除します。
   + **All unsupported signature requests] (すべてのサポートされていない署名リクエスト**
   + **[% all unsupported signature requests] (% すべてのサポートされていない署名リクエスト**)

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

   **[Buckets]** (バケット) リストが更新され、SigV2 リクエストのバケットレベルのメトリクスが表示されます。このデータを使用して、SigV2 リクエストがある特定のバケットを特定できます。次に、この情報を使用してアプリケーションを SigV4 に移行できます。詳細については、*Amazon Simple Storage Service API リファレンス*の「[リクエストの認証 (AWS 署名バージョン 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)」を参照してください。

## 各バケットのレプリケーションルールの総数を数える
<a name="storage-lens-data-protection-replication-rule"></a>

S3 レプリケーションを使用すると、Amazon S3 バケット間でオブジェクトを自動で非同期的にコピーできます。オブジェクトのレプリケーション用に設定されたバケットは、同じ AWS アカウント が所有することも、異なるアカウントが所有することもできます。詳細については、「[リージョン内およびリージョン間でのオブジェクトのレプリケート](replication.md)」を参照してください。

S3 ストレージレンズのレプリケーションルール数メトリクスを使用して、レプリケーション用に設定されているバケットに関する詳細なバケットごとの情報を取得できます。この情報には、バケット内とリージョン内およびバケット間とリージョン間のレプリケーションルールが含まれます。

**前提条件**  
レプリケーションルール数メトリクスを S3 ストレージレンズダッシュボードに表示するには、S3 ストレージレンズ **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから、**[Advanced data protection metrics]** (高度なデータ保護メトリクス) を選択します。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

### ステップ 1: 各バケットのレプリケーションルールの総数を数える
<a name="storage-lens-data-protection-replication-rule-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. ストレージレンズダッシュボードで、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Data protection]** (データ保護) を選択します。次に、**[Summary]** (概要) を選択解除します。

1. **[Buckets]** (バケット) リストをフィルタリングしてレプリケーションルール数メトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. レプリケーションルール数メトリクスだけが選択された状態になるまで、他のすべてのデータ保護メトリクスを選択解除します。
   + **Same-Region Replication rule count] (同一リージョンレプリケーションのルール数**
   + **Cross-Region Replication rule count] (クロスリージョンレプリケーションルール数**
   + **Same-account replication rule count] (同一アカウントレプリケーションのルール数**
   + **Cross-account replication rule count] (クロスリージョンレプリケーションルール数**
   + **Total replication rule count] (レプリケーションルールの合計数**

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

### ステップ 2: レプリケーションルールを追加する
<a name="storage-lens-data-protection-replication-rule-step2"></a>

バケットごとのレプリケーションルール数が決まったら、オプションで追加のレプリケーションルールを作成できます。詳細については、「[ライブレプリケーションの設定例](replication-example-walkthroughs.md)」を参照してください。

## オブジェクトロックバイトのパーセンテージを識別する
<a name="storage-lens-data-protection-object-lock"></a>

S3 オブジェクトロックでは、*write-once-read-many (WORM)* モデルを使用してオブジェクトを保存できます。オブジェクトロックを使用して、オブジェクトが削除または上書きされることを、一定期間または無期限に防止できます。オブジェクトロックは、バケットを作成する場合にのみ有効にでき、S3 バージョニングも有効化できます。ただし、個々のオブジェクトバージョンの保存期間を編集したり、オブジェクトロックが有効になっているバケットにリーガルホールドを適用したりできます。詳細については、「[S3 Object Lock を使用したオブジェクトのロック](object-lock.md)」を参照してください。

S3 ストレージレンズのオブジェクトロックメトリクスを使用して、アカウントまたは組織の **[% Object Lock bytes]** (% オブジェクトロックバイト) メトリクスを確認できます。この情報を使用して、アカウントまたは組織内のどのバケットがデータ保護のベストプラクティスに従っていないかを特定できます。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[Snapshot]** (スナップショット) セクションの **[Metrics categories]** (メトリクスのカテゴリ) で、**[Data protection]** (データ保護) を選択します。

   **[Snapshot]** (スナップショット) セクションが更新され、**[% Object Lock bytes]** (% オブジェクトロックバイト) メトリクスを含むデータ保護メトリクスが表示されます。アカウントまたは組織のオブジェクトロックバイトの全体のパーセンテージを確認できます。

1. バケットあたりの **[% Object Lock bytes]** (% オブジェクトロックバイト) を確認するには、**[Top N overview]** (トップ N の概要) セクションまでスクロールしてください。

   オブジェクトロックのオブジェクトレベルのデータを取得するには、**[Object Lock object count]** (オブジェクトロックオブジェクト数) と**[% Object Lock objects]** (% オブジェクトロックオブジェクト) メトリクスを使用することもできます。

1. **[Metric]** (メトリクス) には、**[Data protection]** (データ保護) カテゴリから **[% Object Lock bytes]** (% オブジェクトロックバイト) を選択します。

   デフォルトでは、**[*日付*の上位 N の概要]** セクションには、上位 3 つのバケットのメトリクスが表示されます。**[Top N]** (トップ N) のフィールドでバケット数を増やすことができます。**[*日付*の上位 N の概要]** セクションには、前日または前週からの変化率と、傾向を視覚化するスパークラインも表示されます。この傾向は、無料メトリクスの場合は 14 日間、高度なメトリクスとレコメンデーションの場合は 30 日間の傾向です。
**注記**  
S3 ストレージレンズの高度なメトリクスとレコメンデーションの場合、メトリクスは 15 か月間クエリで利用できます。詳細については、「[メトリクスの選択](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)」を参照してください。

1. **[% Object Lock bytes]** (% オブジェクトロックバイト) については、次のデータを確認してください。
   + **[上位アカウント*数*]** – **[Object Lock のバイト数 %]** が最も高いアカウントと最も低いアカウントを確認できます。
   + **[上位リージョン*数*]** – リージョン別の **[Object Lock のバイト数 %]** の内訳を表示します。
   + **[上位バケット*数*]** – **[Object Lock のバイト数 %]** が最も高いバケットと最も低いバケットを確認できます。

# オブジェクト所有権設定を監査するための S3 の使用
<a name="storage-lens-access-management"></a>

Amazon S3 オブジェクト所有権は、S3 バケットレベルの設定で、アクセスコントロールリスト (ACL) を無効にし、バケット内のオブジェクトの所有権を制御するために使用できます。オブジェクト所有権をバケット所有者強制に設定する場合、[アクセスコントロールリスト (ACL)](acl-overview.md) を無効にして、バケット内のすべてのオブジェクトの所有権を取得できます。この方法により、Amazon S3 に保存されているデータのアクセス管理を簡素化できます。

デフォルトでは、別の AWS アカウント がオブジェクトを S3 バケットにアップロードすると、そのアカウント (オブジェクトライター) がオブジェクトを所有し、そのオブジェクトにアクセスでき、ACL を介して他のユーザーにそのオブジェクトへのアクセスを許可できます。オブジェクトの所有権を使用して、このデフォルトの動作を変更できます。

Amazon S3 の最新のユースケースの大部分では ACL を使用する必要がなくなっています。そのため、オブジェクトごとに個別にアクセスを制御する必要がある状況を除き、ACL を無効にすることをお勧めします。オブジェクトの所有権をバケット所有者に強制設定することで、ACL を無効にして、アクセスコントロールに関するポリシーに依存できます。詳細については、「[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md)」を参照してください。

S3 ストレージレンズのアクセス管理メトリクスを使用すると、ACL が無効になっていないバケットを特定できます。これらのバケットを特定したら、ACL のアクセス許可をポリシーに移行し、これらのバケットの ACL を無効にできます。

**Topics**
+ [ステップ 1: オブジェクト所有権設定の一般的な傾向を特定する](#storage-lens-access-management-step1)
+ [ステップ 2: オブジェクト所有権設定のバケットレベルの傾向を把握する](#storage-lens-access-management-step2)
+ [ステップ 3: オブジェクト所有権の設定をバケット所有者強制に更新し、ACL を無効にする](#storage-lens-access-management-step3)

## ステップ 1: オブジェクト所有権設定の一般的な傾向を特定する
<a name="storage-lens-access-management-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. **[*日付*のスナップショット]** セクションの **[メトリクスのカテゴリ]** で、**[アクセス管理]** を選択します。

   **[*日付*のスナップショット]** セクションが更新され、**[% オブジェクト所有権のバケット所有者強制]** メトリクスが表示されます。アカウントまたは組織内のバケットで、オブジェクト所有権のバケット所有者強制設定を使用して ACL を無効にしているバケット全体の割合を確認することができます。

## ステップ 2: オブジェクト所有権設定のバケットレベルの傾向を把握する
<a name="storage-lens-access-management-step2"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. バケットレベルの詳細なメトリクスを表示するには、**[Bucket]** (バケット) タブを選択します。

1. **[*日付*のバケット別分布]** セクションで、**[% オブジェクト所有権のバケット所有者強制]** メトリクスを選択します。

   グラフが更新され、**[% Object Ownership bucket owner enforced]**.(% オブジェクト所有権のバケット所有者強制) のバケットごとの内訳が表示されます。どのバケットがオブジェクト所有権のバケット所有者強制設定を使用して ACL を無効にしているかを確認できます。

1. バケット所有者強制設定をコンテキストで確認するには、**[Buckets]** (バケット) セクションまでスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Access management]** (アクセス管理) を選択します。次に、**[Summary]** (概要) を選択解除します。

   **[Buckets]** (バケット) リストには、バケット所有者強制、バケット所有者優先、オブジェクト作成者の 3 つのオブジェクト所有権設定すべてのデータが表示されます。

1. **[Buckets]** (バケット) リストをフィルタリングして特定のオブジェクト所有権設定のみのメトリクスを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. 表示しないメトリクスを選択解除します。

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

## ステップ 3: オブジェクト所有権の設定をバケット所有者強制に更新し、ACL を無効にする
<a name="storage-lens-access-management-step3"></a>

オブジェクト所有権にオブジェクト作成者およびバケット所有者優先設定を使用しているバケットを特定したら、ACL アクセス許可をバケットポリシーに移行できます。ACL アクセス許可の移行が完了したら、オブジェクト所有権の設定をバケット所有者強制に更新して ACL を無効にできます。詳細については、「[ACL を無効にする前提条件。](object-ownership-migrating-acls-prerequisites.md)」を参照してください。

# S3 ストレージレンズのメトリクスを使用してパフォーマンスを改善する
<a name="storage-lens-detailed-status-code"></a>

[S3 ストレージレンズの高度なメトリクス](storage_lens_basics_metrics_recommendations.md#storage_lens_basics_metrics_selection)を有効にしている場合は、詳細なステータスコードのメトリクスを使用して、リクエストの成功または失敗の数を取得できます。この情報は、アクセスまたはパフォーマンス問題のトラブルシューティングに役立てることができます。詳細なステータスコードのメトリクスには、「403 Forbidden」や「503 Service Unavailable」などの HTTP ステータスコードの数が表示されます。S3 バケット、アカウント、組織にわたる詳細なステータスコードのメトリクスの全体的な傾向を調べることができます。次に、バケットレベルのメトリクスを詳しく調べて、そのバケットに現在アクセスしていてエラーの原因となっているワークロードを特定できます。

例えば、**403 Forbidden エラー数**メトリクスを見ると、適切なアクセス権限が適用されていない状態でバケットにアクセスしているワークロードを特定できます。これらのワークロードを特定したら、S3 ストレージレンズ以外で詳しく調べて 403 Forbidden エラーのトラブルシューティングを行うことができます。

この例では、**403 Forbidden エラー数**と **% 403 Forbidden エラー**のメトリクスを使用して、403 Forbidden エラーの傾向分析を行う方法を示しています。これらのメトリクスを使用すると、適切なアクセス権限が適用されていないバケットにアクセスしているワークロードを特定できます。他の**[Detailed status code metrics]** (詳細なステータスコードのメトリクス) についても同様の傾向分析を行うことができます。詳細については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

**前提条件**  
S3 ストレージレンズのダッシュボードに**[Detailed status code metrics]** (詳細なステータスコードのメトリクス) を表示するには、S3 ストレージレンズの **[Advanced metrics and recommendations]** (高度なメトリクスとレコメンデーション) を有効にしてから、**[Detailed status code metrics]** (詳細なステータスコードのメトリクス) を選択する必要があります。詳細については、「[S3 コンソールの使用](storage_lens_editing.md#storage_lens_console_editing)」を参照してください。

**Topics**
+ [ステップ 1: 個々の HTTP ステータスコードの傾向分析を行う](#storage-lens-detailed-status-code-step1)
+ [ステップ 2: バケットごとのエラー数を分析する](#storage-lens-detailed-status-code-step2)
+ [ステップ 3: エラーをトラブルシューティングする](#storage-lens-detailed-status-code-step3)

## ステップ 1: 個々の HTTP ステータスコードの傾向分析を行う
<a name="storage-lens-detailed-status-code-step1"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードの名前を選択します。

1. **[傾向とディストリビューション]** セクションの **[プライマリメトリクス]** で、**[詳細なステータスコード]** カテゴリから **[403 Forbidden エラー数]** を選択します。**[Secondary metric]** (セカンダリメトリクス) で、**[% 403 Forbidden errors]** (% 403 Forbidden エラー) を選択します。

1. **[*日付*の上位 N の概要]** セクションまで下にスクロールします。**[メトリクス]** では、**[詳細なステータスコード]** カテゴリから **[403 Forbidden エラー数]** または **[% 403 Forbidden エラー]** を選択します。

   **[*日付*の上位 N の概要]** セクションが更新され、アカウント、AWS リージョン、バケット別の上位の 403 Forbidden エラー数が表示されます。

## ステップ 2: バケットごとのエラー数を分析する
<a name="storage-lens-detailed-status-code-step2"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens]** (ストレージレンズ)、**[Dashboards]** (ダッシュボード) の順にクリックします。

1. **[Dashboards]** (ダッシュボード) リストで、表示するダッシュボードを選択します。

1. ストレージレンズダッシュボードで、**[Bucket]** (バケット) タブを選択します。

1. **[Buckets]** (バケット) セクションまで下にスクロールします。**[Metrics categories]** (メトリクスのカテゴリ) で、**[Detailed status codes]** (詳細なステータスコード) のメトリクスを選択します。次に、**[Summary]** (概要) を選択解除します。

   **[Bucket]** (バケット) リストが更新され、詳細なステータスコードの利用可能なメトリクスがすべて表示されます。この情報を使用して、特定の HTTP ステータスコードの割合が高いバケットと、バケット間で共通するステータスコードを確認できます。

1. **[Bucket]** (バケット) リストをフィルタリングして特定の詳細なステータスコードのメトリクスのみを表示するには、設定アイコン (![\[A screenshot that shows the preferences icon in the S3 Storage Lens dashboard.\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/preferences.png)) を選択します。

1. **[Bucket]** (バケット) リストに表示したくない詳細なステータスコードのメトリクスがある場合は、トグルをオフにします。

1. (オプション) **[Page size]** (ページサイズ) で、リストに表示するバケットの数を選択します。

1. **[確認]** を選択します。

   **[Bucket]** (バケット) リストには、指定したバケットの数のエラー数メトリクスが表示されます。この情報を使用して、多くのエラーが発生している特定のバケットを特定し、バケットごとにエラーをトラブルシューティングできます。

## ステップ 3: エラーをトラブルシューティングする
<a name="storage-lens-detailed-status-code-step3"></a>

 特定の HTTP ステータスコードの割合が高いバケットを特定したら、これらのエラーをトラブルシューティングできます。詳細については次を参照してください:
+ [Amazon S3 でファイルをアップロードしようとすると、「403 Forbidden」(403 禁止) エラーが表示されるのはなぜですか?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-403-forbidden-error/)
+ [Amazon S3 のバケットポリシーを変更しようとすると、「403 Forbidden」(403 禁止) エラーが表示されるのはなぜですか?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-access-denied-bucket-policy/)
+ [すべてのリソースが同じ AWS アカウント に属している Amazon S3 バケットの「403 Forbidden」(403 禁止) エラーをトラブルシューティングするにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-troubleshoot-403-resource-same-account/)
+ [Amazon S3 からの HTTP 500 または 503 エラーをトラブルシューティングするにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/http-5xx-errors-s3/)

# AWS Organizations での Amazon S3 ストレージレンズの使用
<a name="storage_lens_with_organizations"></a>

Amazon S3 ストレージレンズは、オブジェクトストレージの使用状況とアクティビティを組織全体で可視化するために使用できるクラウドストレージの分析機能です。S3 ストレージレンズメトリクスを使用することで、組織全体でどれだけのストレージがあるか、または最も急速に成長しているバケットとプレフィックスは何かなどの、要約されたインサイトを生成できます。また、Amazon S3 ストレージレンズを使用することで、AWS Organizations の階層に属しているすべての AWS アカウントから、ストレージのメトリクスと使用状況に関するデータを収集できます。これを行うには、AWS Organizations を使用している必要があります。また、AWS Organizations 管理アカウントを使用して、S3 ストレージレンズに対し、信頼されたアクセスを有効にする必要があります。

信頼されたアクセスを有効にしてから、組織内のアカウントに対し、委任管理者の権限を追加します。委任管理者アカウントは、組織全体のストレージメトリクスとユーザーデータを収集する S3 ストレージレンズの設定とダッシュボードを作成するために使用されます。信頼されたアクセスの有効化の詳細については、*AWS Organizations ユーザーガイド*の「[Amazon S3 ストレージレンズと AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-s3lens.html)」を参照してください。

**Topics**
+ [S3 ストレージレンズのための信頼されたアクセスを有効にする](storage_lens_with_organizations_enabling_trusted_access.md)
+ [S3 ストレージレンズのための信頼されたアクセスを無効にする](storage_lens_with_organizations_disabling_trusted_access.md)
+ [S3 ストレージレンズでの委任管理者の登録](storage_lens_with_organizations_registering_delegated_admins.md)
+ [S3ストレージレンズでの委任管理者の登録を解除する](storage_lens_with_organizations_deregistering_delegated_admins.md)

# S3 ストレージレンズのための信頼されたアクセスを有効にする
<a name="storage_lens_with_organizations_enabling_trusted_access"></a>

信頼されたアクセスが有効化された Amazon S3 ストレージレンズでは、AWS Organizations API オペレーションを通じて、AWS Organizations の階層、メンバーシップ、および構造にアクセスできるようになります。S3 ストレージレンズは、組織全体の構造で信頼されたサービスとして認識されます。

ダッシュボードの設定が作成されるたびに、組織の管理アカウントまたは委任管理者アカウントのために、サービスにリンクされたロールが S3 ストレージレンズにより作成されます。サービスにリンクされたロールにより、S3 ストレージレンズは次の操作を実行できます。
+ 組織を説明する
+ アカウントを一覧表示する
+ 組織の AWS のサービスアクセスリストを検証する
+ 組織の委任管理者を取得する



S3 ストレージレンズは、組織のアカウントのクロスアカウントメトリクスを収集するためのアクセスを確実に有しているようにできます。詳細については、「[Amazon S3 ストレージレンズでのサービスにリンクされたロールの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-service-linked-roles.html)」を参照してください。

信頼されたアクセスを有効にしておくと、組織内のアカウントに対し、委任管理者権限を割り当てることができます。サービスに対する委任管理者としてマークされたアカウントには、組織内で、すべての読み取り専用 API オペレーションにアクセスするための承認が与えられます。このアクセス権により、委任管理者には組織のメンバーと構造に対する可視性が提供され、彼らも S3 ストレージレンズダッシュボードを作成できるようになります。

**注記**  
信頼されたアクセスは、[管理アカウント](https://docs.aws.amazon.com/managedservices/latest/userguide/management-account.html)からのみ有効化できます。
 組織に対し、S3 Storage Lens ダッシュボードまたは、その設定を作成できるのは、管理アカウントと委任された管理者のみです。

# S3 コンソールの使用
<a name="storage_lens_console_organizations_enabling_trusted_access"></a>

**S3 ストレージレンズに AWS Organizations での信頼されたアクセスが付与されるには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[AWS Organizations 設定]** を選択します。**[ストレージレンズへの AWS Organizations アクセス]** ページが表示されます。

1. **[AWS Organizations 信頼されたアクセス]** で、**[編集]** を選択します。

   **[AWS Organizations アクセス]** ページが表示されます。

1. **[有効化]** を選択して、S3 ストレージレンズダッシュボードの信頼されたアクセスを有効にします。

1. **[Save changes]** (変更の保存) をクリックします。

# の使用AWS CLI
<a name="OrganizationsEnableTrustedAccessS3LensCLI"></a>

**Example**  
次の例は、AWS CLI で S3 ストレージレンズの AWS Organizations での信頼されたアクセスを有効にする方法を示しています。  

```
aws organizations enable-aws-service-access --service-principal storage-lens.s3.amazonaws.com
```

# AWS SDK for Java の使用
<a name="OrganizationsEnableTrustedAccessS3LensJava"></a>

**Example – SDK for Java を使用して S3 ストレージレンズで AWS Organizations での信頼されたアクセスを有効にする**  
次の例は、SDK for Java で S3 ストレージレンズの信頼されたアクセスを有効にする方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.organizations.AWSOrganizations;
import com.amazonaws.services.organizations.AWSOrganizationsClient;
import com.amazonaws.services.organizations.model.EnableAWSServiceAccessRequest;

public class EnableOrganizationsTrustedAccess {
	private static final String S3_STORAGE_LENS_SERVICE_PRINCIPAL = "storage-lens.s3.amazonaws.com";

	public static void main(String[] args) {
		try {
            AWSOrganizations organizationsClient = AWSOrganizationsClient.builder()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(Regions.US_EAST_1)
                .build();

            organizationsClient.enableAWSServiceAccess(new EnableAWSServiceAccessRequest()
                .withServicePrincipal(S3_STORAGE_LENS_SERVICE_PRINCIPAL));
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but AWS Organizations couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // AWS Organizations couldn't be contacted for a response, or the client
            // couldn't parse the response from AWS Organizations.
            e.printStackTrace();
        }
	}
}
```

# S3 ストレージレンズのための信頼されたアクセスを無効にする
<a name="storage_lens_with_organizations_disabling_trusted_access"></a>

委任された管理者としてのアカウントを削除するか、信頼されたアクセスを無効化すると、アカウント所有者の S3 ストレージレンズダッシュボードのメトリクスは、アカウントレベルでのみ機能するように制限されます。そのため、各アカウント保有者は、自身のアカウントの範囲に限定して S3 ストレージレンズが提供する機能にアクセスでき、組織全体へのアクセスはできなくなります。

S3 ストレージレンズで信頼されたアクセスを無効にすると、信頼されたアクセスを必要とするダッシュボードは更新されなくなります。作成された組織ダッシュボードも更新されなくなります。代わりに、[S3 ストレージレンズダッシュボードの履歴データ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html#storage_lens_basics_data_queries)をクエリできるのは、データが引き続き利用可能である間のみです。

**注記**  
また、S3 ストレージレンズの信頼されたアクセスを無効にすると、すべての組織レベルのダッシュボードで、ストレージのメトリクスの収集と集計が自動的に停止されます。これは、S3 ストレージレンズが組織アカウントへの信頼されたアクセスを失ったためです。
管理アカウントと委任管理者アカウントは、無効化されたダッシュボードの履歴データを引き続き表示することができます。また、この履歴データは、利用可能である間は引き続きクエリできます。

# S3 コンソールの使用
<a name="storage_lens_console_organizations_disabling_trusted_access"></a>

**S3 Storage Lens の信頼されたアクセスを無効にするには、**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1. **[AWS Organizations 設定]** を選択します。**[ストレージレンズへの AWS Organizations アクセス]** ページが表示されます。

1. **[AWS Organizations 信頼されたアクセス]** で、**[編集]** を選択します。

   **[AWS Organizations アクセス]** ページが表示されます。

1. **[無効化]** を選択して、S3 ストレージレンズダッシュボードの信頼されたアクセスを無効にします。

1. **[Save changes]** (変更の保存) をクリックします。

# の使用AWS CLI
<a name="OrganizationsDisableTrustedAccessS3LensCLI"></a>

**Example**  
次の例では、AWS CLI を使用して S3 ストレージレンズの信頼されたアクセスを無効にします。  

```
aws organizations disable-aws-service-access --service-principal storage-lens.s3.amazonaws.com
```

# AWS SDK for Java の使用
<a name="OrganizationsDisableTrustedAccessS3LensJava"></a>

**Example – S3 ストレージレンズの AWS Organizations での信頼されたアクセスを無効にします。**  
次の例は、SDK for Java で S3 ストレージレンズの AWS Organizations での信頼されたアクセスを無効にする方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.organizations.AWSOrganizations;
import com.amazonaws.services.organizations.AWSOrganizationsClient;
import com.amazonaws.services.organizations.model.DisableAWSServiceAccessRequest;

public class DisableOrganizationsTrustedAccess {
	private static final String S3_STORAGE_LENS_SERVICE_PRINCIPAL = "storage-lens.s3.amazonaws.com";

	public static void main(String[] args) {
		try {
            AWSOrganizations organizationsClient = AWSOrganizationsClient.builder()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(Regions.US_EAST_1)
                .build();

            // Make sure to remove any existing delegated administrator for S3 Storage Lens 
            // before disabling access; otherwise, the request will fail.
            organizationsClient.disableAWSServiceAccess(new DisableAWSServiceAccessRequest()
                .withServicePrincipal(S3_STORAGE_LENS_SERVICE_PRINCIPAL));
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but AWS Organizations couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // AWS Organizations couldn't be contacted for a response, or the client
            // couldn't parse the response from AWS Organizations.
            e.printStackTrace();
        }
	}
}
```

# S3 ストレージレンズでの委任管理者の登録
<a name="storage_lens_with_organizations_registering_delegated_admins"></a>

組織の管理アカウントまたは委任管理者アカウントからは、組織レベルのダッシュボードを作成できます。委任管理者アカウントでは、管理アカウントを除く他のアカウントに対し、組織レベルのダッシュボードの作成を許可できます。他のアカウントを組織の委任管理者として登録および登録解除できるのは、その組織の管理者アカウントのみです。

信頼されたアクセスを有効にすると、[管理アカウント](https://docs.aws.amazon.com/managedservices/latest/userguide/management-account.html)の AWS Organizations REST API、AWS CLI、または SDK を使用して、組織内のアカウントへの委任管理者アクセスを登録できます。(詳細については、AWS Organizations API リファレンスの「[https://docs.aws.amazon.com/organizations/latest/APIReference/API_RegisterDelegatedAdministrator.html](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RegisterDelegatedAdministrator.html)」を参照してください。)** アカウントが委任された管理者として登録されると、そのアカウントがら AWS Organizations のすべての読み取り専用 API オペレーションにアクセスすることが承認されます。これにより、ユーザーに代わって S3 Storage Lens ダッシュボードを作成するための可視性が、組織のメンバーと構造に対し提供されます。

**注記**  
AWS Organizations の REST API、AWS CLI、または SDK を使用して委任管理者を指定するには、その前に、[https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html) オペレーションを呼び出す必要があります。

# S3 コンソールの使用
<a name="storage_lens_console_organizations_registering_delegated_admins"></a>

**S3 Storage Lens のための委任された管理者を登録するには、**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1.  **[AWS Organizations 設定]** を選択します。

1. **[委任管理者]** で、**[アカウントを登録]** を選択します。

1. アカウントを委任管理者として登録するための AWS アカウント ID を追加します。委任管理者は、組織内のすべてのアカウントとストレージのために組織レベルのダッシュボードを作成できます。

1. **[アカウントを登録]** を選択します。

# の使用AWS CLI
<a name="OrganizationsRegisterDelegatedAdministratorS3LensCLI"></a>

**Example**  
次の例は、AWS CLI を使用して、S3 ストレージレンズで Organizations の委任管理者を登録する方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
aws organizations register-delegated-administrator --service-principal storage-lens.s3.amazonaws.com --account-id 111122223333
```

# AWS SDK for Java の使用
<a name="OrganizationsRegisterDelegatedAdministratorS3LensJava"></a>

**Example – S3 ストレージレンズで Organizations の委任された管理者を登録する**  
次の例は、SDK for Java で S3 ストレージレンズの AWS Organizations 委任管理者を登録する方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.organizations.AWSOrganizations;
import com.amazonaws.services.organizations.AWSOrganizationsClient;
import com.amazonaws.services.organizations.model.RegisterDelegatedAdministratorRequest;

public class RegisterOrganizationsDelegatedAdministrator {
	private static final String S3_STORAGE_LENS_SERVICE_PRINCIPAL = "storage-lens.s3.amazonaws.com";

	public static void main(String[] args) {
		try {
            String delegatedAdminAccountId = "111122223333"; // Account Id for the delegated administrator.
            AWSOrganizations organizationsClient = AWSOrganizationsClient.builder()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(Regions.US_EAST_1)
                .build();

            organizationsClient.registerDelegatedAdministrator(new RegisterDelegatedAdministratorRequest()
                .withAccountId(delegatedAdminAccountId)
                .withServicePrincipal(S3_STORAGE_LENS_SERVICE_PRINCIPAL));
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but AWS Organizations couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // AWS Organizations couldn't be contacted for a response, or the client
            // couldn't parse the response from AWS Organizations.
            e.printStackTrace();
        }
	}
}
```

# S3ストレージレンズでの委任管理者の登録を解除する
<a name="storage_lens_with_organizations_deregistering_delegated_admins"></a>

信頼されたアクセスを有効にした後で、組織内のアカウントに対する委任管理者のアクセス権限を登録解除できます。委任管理者アカウントでは、[管理アカウント](https://docs.aws.amazon.com/managedservices/latest/userguide/management-account.html)を除く他のアカウントに対し、組織レベルのダッシュボードの作成を許可できます。組織の管理アカウントのみが、その組織内の委任管理者のアカウントの登録を解除できます。

また、管理アカウントから AWS Organizations AWS マネジメントコンソール、REST API、AWS CLI、または AWS SDK を使用することで、委任管理者の登録を解除できます。詳細については、「*AWS Organizations API リファレンス*」の「[https://docs.aws.amazon.com/organizations/latest/APIReference/API_DeregisterDelegatedAdministrator.html](https://docs.aws.amazon.com/organizations/latest/APIReference/API_DeregisterDelegatedAdministrator.html)」を参照してください。

アカウントが委任管理者として登録解除されると、アカウントは次のものにアクセスできなくなります。
+ 組織のメンバーと構造を可視化するすべての読み取り専用 AWS Organizations API オペレーション。
+ 委任管理者が作成したすべての組織レベルのダッシュボード。また、委任管理者の登録を解除すると、委任管理者によって作成されたすべての組織レベルのダッシュボードで、ストレージのメトリクスの新たな集計が自動的に停止されます。
**注記**  
登録解除された委任管理者は、データがクエリに利用できる間は、作成したものの無効化されたダッシュボードの履歴データを引き続き見ることができます。

# S3 コンソールの使用
<a name="storage_lens_console_organizations_deregistering_delegated_admins"></a>

**S3 ストレージレンズの委任管理者を登録解除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[ストレージレンズ]** に移動します。

1.  **[AWS Organizations 設定]** を選択します。

1. **[委任管理者]** で、登録解除するアカウントを選択します。

1. **[アカウントの登録解除]** を選択します。登録解除されたアカウントは委任管理者ではなくなり、組織内のすべてのアカウントとストレージに対して組織レベルのダッシュボードを作成できなくなります。

1. **[アカウントを登録]** を選択します。

# の使用AWS CLI
<a name="OrganizationsDeregisterDelegatedAdministratorS3LensCLI"></a>

**Example**  
次の例は、AWS CLI を使用して S3 ストレージレンズで Organizations の委任管理者を登録解除する方法を示しています。この例を実行するには、`111122223333` をユーザー自身の AWS アカウント ID に置き換えます。  

```
aws organizations deregister-delegated-administrator --service-principal storage-lens.s3.amazonaws.com --account-id 111122223333
```

# AWS SDK for Java の使用
<a name="OrganizationsDeregisterDelegatedAdministratorS3LensJava"></a>

**Example – S3 ストレージレンズで Organizations の委任管理者の登録を解除する**  
次の例は、SDK for Java を使用して S3 ストレージレンズで Organizations 委任管理者を登録解除する方法を示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.organizations.AWSOrganizations;
import com.amazonaws.services.organizations.AWSOrganizationsClient;
import com.amazonaws.services.organizations.model.DeregisterDelegatedAdministratorRequest;

public class DeregisterOrganizationsDelegatedAdministrator {
	private static final String S3_STORAGE_LENS_SERVICE_PRINCIPAL = "storage-lens.s3.amazonaws.com";

	public static void main(String[] args) {
		try {
            String delegatedAdminAccountId = "111122223333"; // Account Id for the delegated administrator.
            AWSOrganizations organizationsClient = AWSOrganizationsClient.builder()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(Regions.US_EAST_1)
                .build();

            organizationsClient.deregisterDelegatedAdministrator(new DeregisterDelegatedAdministratorRequest()
                .withAccountId(delegatedAdminAccountId)
                .withServicePrincipal(S3_STORAGE_LENS_SERVICE_PRINCIPAL));
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but AWS Organizations couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // AWS Organizations couldn't be contacted for a response, or the client
            // couldn't parse the response from AWS Organizations.
            e.printStackTrace();
        }
	}
}
```

# S3 ストレージレンズグループを使用したメトリクスのフィルタリングと集計
<a name="storage-lens-groups-overview"></a>

Amazon S3 ストレージレンズグループは、オブジェクトメタデータに基づくカスタムフィルタを使用してメトリクスを集約します。Storage Lens グループを使用すると、経過時間別のオブジェクトの分布や最も一般的なファイルタイプなど、データの特性を掘り下げて調べることができます。例えば、メトリクスをオブジェクトタグでフィルタリングして急速に増加しているデータセットを特定したり、オブジェクトのサイズと経過時間に基づいてストレージを視覚化してストレージアーカイブ戦略に役立てたりすることができます。結果として、Amazon S3 ストレージレンズグループは、S3 ストレージの理解と最適化に役立ちます。

Storage Lens グループを使用すると、プレフィックス、サフィックス、[オブジェクトタグ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)、オブジェクトサイズ、オブジェクト経過時間などのオブジェクトメタデータを使用して S3 Storage Lens メトリクスを分析およびフィルタリングできます。また、これらのフィルタを組み合わせて適用できます。Storage Lens グループを S3 Storage Lens ダッシュボードにアタッチすると、Amazon S3 ストレージレンズグループによって集約された S3 Storage Lens メトリクスをダッシュボードで直接表示できます。

例えば、オブジェクトサイズや経過時間層でメトリクスをフィルタリングして、ストレージのどの部分が小さなオブジェクトで構成されているかを判断することもできます。その後、この情報を S3 Intelligent-Tiering や S3 Lifecycle で使用して、小さなオブジェクトをさまざまなストレージクラスに移行することで、コストとストレージの最適化を図ることができます。

**Topics**
+ [S3 Storage Lens グループの仕組み](storage-lens-groups.md)
+ [Storage Lens グループの使用](storage-lens-group-tasks.md)

# S3 Storage Lens グループの仕組み
<a name="storage-lens-groups"></a>

Storage Lens グループを使用すると、オブジェクトメタデータに基づくカスタムフィルタを使用してメトリクスを集約できます。カスタムフィルタを定義する場合、プレフィックス、サフィックス、オブジェクトタグ、オブジェクトサイズ、オブジェクト経過時間、またはこれらのカスタムフィルタの組み合わせを使用できます。Storage Lens グループの作成時には、1 つのフィルタまたは複数のフィルタ条件を含めることもできます。複数のフィルタ条件を指定するには、`And` または `Or` 論理演算子を使用します。

Storage Lens グループを作成して設定すると、Storage Lens グループ自体が、グループを関連付けるダッシュボードのカスタムフィルタとして機能します。その後、ダッシュボードで Storage Lens グループフィルタを使用して、グループで定義したカスタムフィルタに基づくストレージメトリクスを取得できます。

S3 Storage Lens ダッシュボードで Storage Lens グループのデータを表示するには、グループを作成した後でグループをダッシュボードにアタッチする必要があります。Storage Lens グループを Storage Lens ダッシュボードにアタッチすると、ダッシュボードは 48 時間以内にストレージ使用状況のメトリクスを収集します。その後、このデータを Storage Lens ダッシュボードで視覚化するか、メトリクスのエクスポートを使用してエクスポートできます。Storage Lens グループをダッシュボードにアタッチし忘れると、Storage Lens グループのデータがキャプチャされず、どこにも表示されなくなります。

**注記**  
S3 Storage Lens グループを作成すると、AWS リソースが作成されます。したがって、各 Storage Lens グループには独自の Amazon リソースネーム (ARN) があり、[S3 Storage Lens ダッシュボードにアタッチしたり、S3 Storage Lens ダッシュボードから除外したりする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html)ときに指定できます。
Storage Lens グループがダッシュボードに関連付けられていない場合、Storage Lens グループの作成に追加料金は発生しません。
S3 Storage Lens は、一致するすべての Storage Lens グループのオブジェクトの使用状況メトリクスを集約します。そのため、オブジェクトが 2 つ以上の Storage Lens グループのフィルタ条件に一致すると、ストレージ使用状況全体で同じオブジェクトの数が繰り返し表示されます。

指定したホームリージョン (サポート対象 AWS リージョン のリストから) のアカウントレベルで Storage Lens グループを作成できます。これで、ダッシュボードが同じ AWS アカウント とホームリージョンにある限り、Storage Lens グループを複数の Storage Lens ダッシュボードに接続できます。それぞれの AWS アカウント でホームリージョンごとに最大 50 の Storage Lens グループを作成できます。

AmazonS3 コンソール、AWS Command Line Interface、(AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して S3 Storage Lens グループを作成および管理できます。

**Topics**
+ [Storage Lens グループ集約メトリクスの表示](#storage-lens-group-aggregation)
+ [Storage Lens グループのアクセス許可。](#storage-lens-group-permissions)
+ [Storage Lens グループの設定](#storage-lens-groups-configuration)
+ [AWS リソースタグ](#storage-lens-group-resource-tags)
+ [Storage Lens グループメトリクスのエクスポート](#storage-lens-groups-metrics-export)

## Storage Lens グループ集約メトリクスの表示
<a name="storage-lens-group-aggregation"></a>

グループをダッシュボードにアタッチすることにより、Storage Lens グループの集約されたメトリクスを表示できます。アタッチする Storage Lens グループは、ダッシュボードアカウントの指定されたホームリージョン内に存在している必要があります。

Storage Lens グループをダッシュボードにアタッチするには、ダッシュボード設定の **Storage Lens グループ集約**セクションでグループを指定する必要があります。複数の Storage Lens グループがある場合、**Storage Lens グループ集約**結果をフィルタして、目的のグループを含めたり除外したりできます。グループをダッシュボードに関連付ける方法の詳細については、「[S3 Storage Lens グループをダッシュボードにアタッチまたは削除する、またはダッシュボードから S3 Storage Lens グループを削除する](storage-lens-groups-dashboard-console.md)」を参照してください。

グループをアタッチした後、48 時間以内にダッシュボードに追加の Storage Lens グループ集約データが表示されます。

**注記**  
Storage Lens グループ集約メトリクスを表示するには、そのグループを S3 Storage Lens ダッシュボードにアタッチする必要があります。

## Storage Lens グループのアクセス許可。
<a name="storage-lens-group-permissions"></a>

Storage Lens グループでは、S3 Storage Lens のアクションへのアクセスを許可するために、AWS Identity and Access Management (IAM) で特定のアクセス許可が必要となります。これらのアクセス許可を付与するには、アイデンティティベースの IAM ポリシーを使用できます。このポリシーを、IAM ユーザー、グループ、またはロールにアタッチして、アクセス許可を付与することができます。このようなアクセス許可には、Storage Lens グループの作成や削除、設定の表示、タグの管理などが含まれます。

アクセス許可を付与する IAM ユーザーまたはロールは、Storage Lens グループを作成または所有するアカウントに属している必要があります。

Storage Lens グループを使用し、Storage Lens グループのメトリクスを表示するには、まず S3 Storage Lens を使用するための適切なアクセス許可が必要です。詳細については、「[Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md)」を参照してください。

S3 Storage Lens グループを作成して管理するには、実行するアクションに応じて次の IAM アクセス許可が必要です。


| Action | IAM アクセス許可 | 
| --- | --- | 
|  新しい Storage Lens グループを作成する  |  `s3:CreateStorageLensGroup`  | 
|  タグ付きの新しい Storage Lens グループを作成する  |  `s3:CreateStorageLensGroup`, `s3:TagResource`  | 
|  既存の Storage Lens グループを更新する  |  `s3:UpdateStorageLensGroup`  | 
|  Storage Lens グループ設定の詳細を返す  |  `s3:GetStorageLensGroup`  | 
|  ホームリージョンのすべての Storage Lens グループを一覧表示する  |  `s3:ListStorageLensGroups`  | 
|  Storage Lens グループを削除する。  |  `s3:DeleteStorageLensGroup`  | 
|  Storage Lens グループに追加されたタグを一覧表示する  |  `s3:ListTagsForResource`  | 
|  既存の Storage Lens グループの Storage Lens グループタグを追加または更新する  |  `s3:TagResource`  | 
|  Storage Lens グループからタグを削除する  |  `s3:UntagResource`  | 

Storage Lens グループを作成するアカウントで IAM ポリシーを設定する方法の例を次に示します。このポリシーを使用するには、`us-east-1` を Storage Lens グループがあるホームリージョンに置き換えてください。`111122223333` を自分の ID と置き換え、AWS アカウント を Storage Lens グループの名前と置き換えます。これらのアクセス許可をすべての Storage Lens グループに適用するには、`example-storage-lens-group` を `*` と置き換えてください。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EXAMPLE-Statement-ID",
            "Effect": "Allow",
            "Action": [
                "s3:CreateStorageLensGroup",
                "s3:UpdateStorageLensGroup",
                "s3:GetStorageLensGroup",
                "s3:ListStorageLensGroups",
                "s3:DeleteStorageLensGroup,
                "s3:TagResource",
                "s3:UntagResource",
                "s3:ListTagsForResource"
                ],
            "Resource": "arn:aws:s3:us-east-1:111122223333:storage-lens-group/example-storage-lens-group"
        }
    ]
}
```

S3 Storage Lens アクセス許可の詳細については、「[Amazon S3 ストレージレンズアクセス許可の設定](storage_lens_iam_permissions.md)」を参照してください。IAM ポリシー言語については、「[Amazon S3 のポリシーとアクセス許可](access-policy-language-overview.md)」を参照してください。

## Storage Lens グループの設定
<a name="storage-lens-groups-configuration"></a>

### S3 Storage Lens グループ名
<a name="storage-lens-group-name"></a>

ダッシュボードにアタッチするグループを簡単に判断できるように、Storage Lens グループには用途を示す名前を付けることをお勧めします。[Storage Lens グループをダッシュボードにアタッチする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html)には、ダッシュボード設定の **[Storage Lens グループ集約]** セクションでグループを指定する必要があります。

Storage Lens グループ名はアカウント内で一意である必要があります。名前は、64 文字以下にし、使用できるのは、文字 (a～z、A～Z)、数字 (0-9)、ハイフン (`-`)、およびアンダースコア (`_`) のみです。

### ホームリージョン
<a name="storage-lens-group-home-region"></a>

ホームリージョンは、Storage Lens グループを作成および管理する AWS リージョン です。Storage Lens グループは、Amazon S3 ストレージレンズダッシュボードと同じホームリージョンに作成されます。Storage Lens グループの設定とメトリクスもこのリージョンに保存されます。ホームリージョンごとに最大 50 の Storage Lens グループを作成できます。

 Storage Lens グループを作成した後は、ホームリージョンを編集できません。

### 範囲
<a name="storage-lens-group-scope"></a>

Storage Lens グループにオブジェクトを含めるには、そのオブジェクトが Amazon S3 ストレージレンズダッシュボードの範囲内にある必要があります。Storage Lens ダッシュボードの範囲は、S3 Storage Lens ダッシュボード設定の**ダッシュボードスコープ**に含めたバケットによって決まります。

オブジェクトにさまざまなフィルタを使用して Storage Lens グループの範囲を定義できます。S3 Storage Lens ダッシュボードでこれらの Storage Lens グループのメトリクスを表示するには、オブジェクトが Storage Lens グループに追加したフィルタと一致している必要があります。例えば、Storage Lens グループにプレフィックス `marketing` とサフィックス `.png` が付いたオブジェクトが含まれているが、それらの条件に一致するオブジェクトがないとします。この場合、この Storage Lens グループのメトリクスは毎日のメトリクスのエクスポートでは生成されず、このグループのメトリクスはダッシュボードに表示されません。

### フィルタ
<a name="storage-lens-group-filters"></a>

S3 Storage Lens グループでは以下のフィルタを使用できます。
+ **プレフィックス** — [含まれるオブジェクトのプレフィックスを指定します](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。これはオブジェクトキー名の先頭にある文字列です。例えば、**[プレフィックス]** フィルタの値 `images` には、`images/`、`images-marketing`、`images/production` のいずれかのプレフィックスを持つオブジェクトが含まれます。プレフィックスの最大長は、1,024 バイトです。
+ **サフィックス** — 含まれるオブジェクトのサフィックスを指定します (`.png`、`.jpeg`、`.csv` など)。プレフィックスの最大長は、1,024 バイトです。
+ **オブジェクトタグ** — フィルタの対象となる[オブジェクトタグ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)のリストを指定します。タグキーは 128 Unicode 文字、タグ値は 256 Unicode 文字を超過してはいけません。オブジェクトタグ値フィールドを空のままにした場合、S3 Storage Lens グループは、空のタグ値も持つ他のオブジェクトとオブジェクトのみを一致させることに注意してください。
+ **経過時間** — 含まれるオブジェクトのオブジェクト経過時間範囲を日数で指定します。整数のみがサポートされます。
+ **サイズ** — 含まれるオブジェクトのオブジェクトサイズをバイト単位で指定します。整数のみがサポートされます。許容される最大値は 50 TB です。

### Storage Lens グループのオブジェクトタグ
<a name="storage-lens-group-object-tags"></a>

最大 10 個のオブジェクトタグフィルタを含む [Storage Lens グループを作成できます](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-create.html)。次の例には、`Marketing-Department` という名前の Storage Lens グループのフィルタとして 2 つのオブジェクトタグのキーと値のペアが含まれています。この例を使用するには、`Marketing-Department` をグループの名前に置き換え、`object-tag-key-1`、`object-tag-value-1` をフィルタリングするオブジェクトタグのキーと値のペアに置き換えます。

```
{
    "Name": "Marketing-Department",
    "Filter": {
     "MatchAnyTag":[
                {
                    "Key": "object-tag-key-1",
                    "Value": "object-tag-value-1"
                },
                {
                    "Key": "object-tag-key-2",
                    "Value": "object-tag-value-2"
                }
            ]
    }
}
```

### 論理演算子 (`Or` または `And`)
<a name="storage-lens-group-logical-operators"></a>

Storage Lens グループに複数のフィルタ条件を含めるには、論理演算子 (`And` または `Or`) を使用できます。次の例では、`Marketing-Department` という名前の Storage Lens グループに `Prefix`、`ObjectAge`、`ObjectSize` フィルタを含む `And` 演算子があります。`And` 演算子が使用されるため、これらのフィルタ条件を**すべて**満たすオブジェクトのみが Storage Lens グループのスコープに含まれます。

この例を使用するには、`user input placeholders` をフィルタする値に置き換えます。

```
{
    "Name": "Marketing-Department",
    "Filter": {
        "And": {
            "MatchAnyPrefix": [
                "prefix-1",
                "prefix-2",
                "prefix-3/sub-prefix-1" 
            ],
             "MatchObjectAge": {
                "DaysGreaterThan": 10,
                "DaysLessThan": 60
            },
            "MatchObjectSize": {
                "BytesGreaterThan": 10,
                "BytesLessThan": 60 
            }
        }
    }
}
```

**注記**  
フィルタの条件の**いずれか**に一致するオブジェクトを含める場合は、この例では `And` 論理演算子を `Or` 論理演算子に置き換えてください。

## AWS リソースタグ
<a name="storage-lens-group-resource-tags"></a>

S3 ストレージレンズグループはそれぞれ独自の Amazon AWS リソースネーム (ARN) を持つリソースとみなされます。そのため、Storage Lens グループを設定するときに、AWS オプションでグループにリソースタグを追加できます。Storage Lens グループごとに最大 50 個のタグを追加できます。タグ付きの Storage Lens グループを作成するには、`s3:CreateStorageLensGroup` と `s3:TagResource` の権限が必要です。

AWS リソースタグを使用して、部門、事業内容、またはプロジェクトごとにリソースを分類できます。そうすることで、同じ種類のリソースが多い場合に役立ちます。タグを適用すると、割り当てたタグに基づいて特定の Storage Lens グループをすばやく識別できます。また、コストの追跡と割り当てにもタグを使用できます。

さらに、Storage Lens グループに AWS リソースタグを追加すると、[属性ベースのアクセス制御 (ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)) が有効になります。ABAC は、このケースタグの属性に基づいて権限を定義する認可戦略です。IAM ポリシーでリソースタグを指定する条件を使用して、[AWS リソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)を制御できます。

タグのキーと値は編集でき、タグはリソースからいつでも削除できます。また、次の点について注意してください:
+ キーとタグの値は大文字と小文字が区別されます。
+ 特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、以前の値は新しい値によって上書きされます。
+ リソースを削除すると、リソースのタグも削除されます。
+ AWS リソースタグにはプライベートデータや機密データを含めないでください。
+ システムタグ (または `aws:` で始まるタグキーを持つタグ) はサポートされていません。
+ 各タグキーの長さは 128 文字以下にする必要があります。各タグ値の長さは 256 文字以下にする必要があります。

## Storage Lens グループメトリクスのエクスポート
<a name="storage-lens-groups-metrics-export"></a>

S3 Storage Lens グループメトリクスは、Storage Lens グループがアタッチされているダッシュボードの [Amazon S3 ストレージレンズメトリクスエクスポート](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_understanding_metrics_export_schema.html)に含まれています。Storage Lens メトリクスのエクスポート機能に関する一般的な情報については、「[データエクスポートで Amazon S3 Storage Lens のメトリクスを確認する](storage_lens_view_metrics_export.md)」を参照してください。

Storage Lens グループのメトリクスエクスポートには、Storage Lens グループをアタッチしたダッシュボードの範囲内にあるすべての S3 Storage Lens メトリクスが含まれます。エクスポートには、Storage Lens グループの追加メトリクスデータも含まれます。

Storage Lens グループを作成すると、そのグループの所属するダッシュボードのメトリクスエクスポートを設定したときに選択したバケットに、メトリクスのエクスポートが毎日送信されます。最初のエクスポートを受信するに最大 48 時間かかることがあります。

日次エクスポートでメトリクスを生成するには、オブジェクトが Storage Lens グループに含めたフィルタと一致する必要があります。Storage Lens グループに含められたフィルタに一致するオブジェクトがない場合、メトリクスは生成されません。ただし、オブジェクトが 2 つ以上の Storage Lens グループと一致する場合、そのオブジェクトはメトリクスのエクスポートに表示される際、グループごとに別々に表示されます。

Storage Lens グループのメトリクスは、ダッシュボードのメトリクスエクスポートの `record_type` 列で以下のいずれかの値を探すことにより特定できます。
+ `STORAGE_LENS_GROUP_BUCKET`
+ `STORAGE_LENS_GROUP_ACCOUNT`

`record_value` 列には、Storage Lens グループのリソース ARN が表示されます (例: `arn:aws:s3:us-east-1:111122223333:storage-lens-group/Marketing-Department`)。

# Storage Lens グループの使用
<a name="storage-lens-group-tasks"></a>

Amazon S3 ストレージレンズグループは、オブジェクトメタデータに基づくカスタムフィルタを使用してメトリクスを集約します。プレフィックス、サフィックス、オブジェクトタグ、オブジェクトサイズ、オブジェクト経過時間使用して S3 Storage Lens メトリクスを分析およびフィルタリングできます。Amazon S3 ストレージレンズのグループを使用して、Amazon S3 バケット間での使用状況を分類することもできます。その結果、S3 ストレージの理解を深め最適化できるようになります。

Storage Lens グループのデータの視覚化を開始するには、まず [Storage Lens グループを S3 Storage Lens ダッシュボードにアタッチする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html#storage-lens-groups-attach-dashboard-console)必要があります。Storage Lens グループをダッシュボードで管理する必要がある場合は、ダッシュボードの設定を編集できます。アカウントにどの Storage Lens グループがあるかを確認するには、それらのグループを一覧表示できます。どの Storage Lens グループがダッシュボードにアタッチされているかを確認するには、ダッシュボードの **[Storage Lens グループ]** タブを随時確認できます。既存の Storage Lens グループのスコープを確認または更新するには、その詳細を表示できます。Storage Lens グループを完全に削除することもできます。

権限を管理するために、ユーザー定義の AWS リソースタグを作成して Storage Lens グループに追加できます。AWS リソースタグを使用して、部門、事業内容、またはプロジェクトごとにリソースを分類できます。そうすることで、同じ種類のリソースが多い場合に役立ちます。タグを適用すると、割り当てたタグに基づいて特定の Storage Lens グループをすばやく識別できます。

さらに、Storage Lens グループに AWS リソースタグを追加すると、[属性ベースのアクセス制御 (ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)) が有効になります。ABAC は、このケースタグの属性に基づいて権限を定義する認可戦略です。IAM ポリシーでリソースタグを指定する条件を使用して、[AWS リソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)を制御できます。

**Topics**
+ [Storage Lens グループの作成](storage-lens-groups-create.md)
+ [S3 Storage Lens グループをダッシュボードにアタッチまたは削除する、またはダッシュボードから S3 Storage Lens グループを削除する](storage-lens-groups-dashboard-console.md)
+ [Storage Lens グループのデータの視覚化](storage-lens-groups-visualize.md)
+ [Storage Lens グループの更新](storage-lens-groups-update.md)
+ [Storage Lens グループによる AWS リソースタグの管理](storage-lens-groups-manage-tags.md)
+ [すべての Storage Lens グループの一覧表示](storage-lens-groups-list.md)
+ [Storage Lens グループ詳細の表示](storage-lens-groups-view.md)
+ [Storage Lens グループの削除](storage-lens-groups-delete.md)

# Storage Lens グループの作成
<a name="storage-lens-groups-create"></a>

以下の例は、Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用して Amazon S3 ストレージレンズグループを作成する方法を示しています。

## S3 コンソールの使用
<a name="create-storage-lens-group-console"></a>

**Storage Lens グループを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョンの名前をクリックします。次に、切り替え先のリージョンを選択します。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループの作成]** を選択します。

1. **[全般]** で、現在の **[ホームリージョン]** を表示して、**[ストレージレンズグループ名]** を入力します。

1. **[スコープ]** で、Storage Lens グループに適用するためのフィルタを選択します。複数のフィルタを適用するには、フィルタを選択し、**AND** または **OR** 論理演算子を選択します。
   + **[プレフィックス]** フィルタでは、**[プレフィックス]** を選択し、プレフィックス文字列を入力します。複数のプレフィックスを追加するには、**[プレフィックスを追加]** を選択します。プレフィックスを削除するには、削除するボリュームの横にある **[削除]** を選択します。
   + **[オブジェクトタグ]** フィルタでは、**[オブジェクトタグ]** を選択し、オブジェクトのキーと値のペアを入力します。次に、**[タグを追加]** を選択します。タグを削除するには、削除したいタグの横にある**[削除]** を選択します。
   + **[サフィックス]** フィルタでは、**[サフィックス]** を選択し、サフィックス文字列を入力します。複数のサフィックスを追加するには、**[サフィックスを追加]** を選択します。サフィックスを削除するには、削除したいサフィックスの横にある**[削除]** を選択します。
   + **[経過時間]** フィルタでは、オブジェクトの有効期間を日単位で指定します。**[オブジェクトの最短経過時間を指定]** を選択し、オブジェクトの最低経過時間を入力します。次に、**[オブジェクトの最長経過時間を指定]** を選択し、オブジェクトの最長経過時間を入力します。
   + **[サイズ]** フィルタで、オブジェクトサイズの範囲と測定単位を指定します。**[最小オブジェクトサイズを指定]** を選択し、オブジェクトの最小オブジェクトサイズを入力します。**[最大オブジェクトサイズを指定]** を選択し、オブジェクトの最大オブジェクトサイズを入力します。

1. (オプション) AWS リソースタグには、キーと値のペアを追加し、**[タグを追加]** を選択します。

1. **[Storage Lens グループの作成]** を選択します。

## の使用AWS CLI
<a name="create-storage-lens-group-cli"></a>

次の AWS CLI コマンド例は、Storage Lens グループを作成します。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json
```

次の AWS CLI コマンド例は、2 つの AWS リソースタグを持つ Storage Lens グループを作成します。このコマンドの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json \
--tags Key=k1,Value=v1 Key=k2,Value=v2
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。

## AWS SDK for Java の使用
<a name="create-storage-lens-group-sdk-java"></a>

次の AWS SDK for Java 例は、Storage Lens グループを作成します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

**Example — 1 つのフィルタで Storage Lens グループを作成します。**  
次の例は、`Marketing-Department` という Storage Lens グループを作成します。このグループには、経過時間範囲を `30`～`90` 日で指定するオブジェクト経過時間フィルタがあります。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;
 
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
 
public class CreateStorageLensGroupWithObjectAge {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";
        
        try {
            StorageLensGroupFilter objectAgeFilter = StorageLensGroupFilter.builder()
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90)
                            .build())
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(objectAgeFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 複数のフィルタを含む `AND` 演算子を使用して Storage Lens グループを作成します。**  
次の例は、`Marketing-Department` という Storage Lens グループを作成します。このグループ `AND` は演算子を使用して、オブジェクトが**すべて**のフィルタ条件に一致する必要があることを示します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.S3Tag;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupAndOperator;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;


public class CreateStorageLensGroupWithAndFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create object tags.
            S3Tag tag1 = S3Tag.builder()
                    .key("object-tag-key-1")
                    .value("object-tag-value-1")
                    .build();
            S3Tag tag2 = S3Tag.builder()
                    .key("object-tag-key-2")
                    .value("object-tag-value-2")
                    .build();

            StorageLensGroupAndOperator andOperator = StorageLensGroupAndOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .matchAnyTag(tag1, tag2)
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90).build())
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L).build())
                    .build();

            StorageLensGroupFilter andFilter = StorageLensGroupFilter.builder()
                    .and(andOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(andFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 複数のフィルタを含む `OR` 演算子を使用して Storage Lens グループを作成します。**  
次の例は、`Marketing-Department` という Storage Lens グループを作成します。このグループは、`OR` 演算子を使用してプレフィックスフィルタ (`prefix-1`、`prefix-2`、`prefix3/sub-prefix-1`) または `1000`～`6000` バイトまでのサイズ範囲を持つオブジェクトサイズフィルタを適用します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupOrOperator;

public class CreateStorageLensGroupWithOrFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            StorageLensGroupOrOperator orOperator = StorageLensGroupOrOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L)
                            .build())
                    .build();

            StorageLensGroupFilter orFilter = StorageLensGroupFilter.builder()
                    .or(orOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(orFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 1 つのフィルタと 2 つの AWS リソースタグを持つ Storage Lens グループを作成します。**  
次の例は、サフィックスフィルタを持つ `Marketing-Department` という Storage Lens グループを作成します。この例では、Storage Lens グループに 2 AWS つのリソースタグも追加しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.Tag;

public class CreateStorageLensGroupWithResourceTags {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create AWS resource tags.
            Tag resourceTag1 = Tag.builder()
                    .key("resource-tag-key-1")
                    .value("resource-tag-value-1")
                    .build();
            Tag resourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-value-2")
                    .build();

            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(suffixFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .tags(resourceTag1, resourceTag2)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。

# S3 Storage Lens グループをダッシュボードにアタッチまたは削除する、またはダッシュボードから S3 Storage Lens グループを削除する
<a name="storage-lens-groups-dashboard-console"></a>

Amazon S3 ストレージレンズの高度なティアにアップグレードしたら、[Storage Lens グループ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-overview.html)をダッシュボードにアタッチできます。複数の Storage Lens グループがある場合、目的のグループを含めたり除外したりできます。

Storage Lens グループは、ダッシュボードアカウントの指定されたホームリージョン内に存在している必要があります。Storage Lens グループをダッシュボードに接続すると、48 時間以内にメトリクスのエクスポートで追加の Storage Lens グループの集約データを受け取ります。

**注記**  
Storage Lens グループの集約メトリクスを表示するには、そのデータを Storage Lens ダッシュボードにアタッチする必要があります。Storage Lens グループの JSON 設定ファイルの例については、「[JSON の Storage Lens グループを使用した S3 Storage Lens の設定例](S3LensHelperFilesCLI.md#StorageLensGroupsHelperFilesCLI)」を参照してください。

## S3 コンソールの使用
<a name="storage-lens-groups-attach-dashboard-console"></a>

**Storage Lens グループを Storage Lens ダッシュボードにアタッチするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左ナビゲーションペインの、**[S3 Storage Lens ]** で、**[ダッシュボード]** を選択します。

1. Storage Lens グループをアタッチする Storage Lens ダッシュボードのオプションボタンを選択します。

1. **[編集]** を選択します。

1. **メトリクスの選択**で **[Advanced metrics and recommendations]** (アドバンストメトリクスとレコメンデーション) を選択します。

1. **[Storage Lens グループ集約]** を選択します。
**注記**  
デフォルトでは、**[高度なメトリクス]** も選択されています。ただし、Storage Lens グループのデータを集約する必要がないため、この設定の選択を解除することもできます。

1. **[ストレージレンズグループ集約]** までスクロールし、データ集約に含める、または除外する 1 つまたは複数の Storage Lens グループを指定します。次のフィルタリングオプションを設定できます。
   + 特定の Storage Lens グループを含める場合は、**[Storage Lens グループを含める]** を選択します。**[含めるStorage Lens グループ]** で、Storage Lens グループを選択します。
   + すべての Storage Lens グループを含める場合は、[**ホームリージョンのすべてのStorage Lens グループをこのアカウントに含める**] を選択します。
   + 特定の Storage Lens グループを除外する場合は、**[Storage Lens グループを除外する]** を選択します。**[除外する Storage Lens グループ]** で、除外する Storage Lens グループを選択します。

1. **[Save changes]** (変更の保存) をクリックします。Storage Lens グループを正しく設定していれば、48 時間以内にダッシュボードに追加の Storage Lens グループ集約データが表示されます。

**S3 Storage Lens ダッシュボードから Storage Lens グループを削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインの、**[S3 Storage Lens]** で、**[ダッシュボード]** を選択します。

1. Storage Lens グループを削除する Storage Lens ダッシュボードのオプションボタンを選択します。

1. **[ダッシュボード設定を表示]** を選択します。

1. **[編集]** を選択します。

1. **[メトリクスの選択]** セクションまで下にスクロールします。

1. **[Storage Lens グループ集約]** で、削除する Storage Lens グループの横にある **[X]** を選択します。これにより、Storage Lens グループが削除されます。

   すべての Storage Lens グループをダッシュボードに含めた場合は、**[このアカウントにホームリージョンのすべての Storage Lens グループを含める]** の横にあるチェックボックスをオフにします。

1. **[Save changes]** (変更の保存) をクリックします。
**注記**  
ダッシュボードに設定の更新が反映されるまでに最大 48 時間かかることがあります。

## AWS SDK for Java の使用
<a name="StorageLensGroupsConfigurationJava"></a>

**Example – すべての ストレージレンズグループをダッシュボードにアタッチする**  
次の SDK for Java の例では、アカウント *111122223333* のすべての Storage Lens グループを *DashboardConfigurationId* ダッシュボードにアタッチします。  

```
package aws.example.s3control;


import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWithStorageLensGroups {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel();

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example – 2 つの ストレージレンズグループをダッシュボードにアタッチする**  
次の AWS SDK for Java 例では、2 つのストレージレンズグループ (*StorageLensGroupName1* と *StorageLensGroupName2*) を *ExampleDashboardConfigurationId* ダッシュボードにアタッチします。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;
import com.amazonaws.services.s3control.model.StorageLensGroupLevelSelectionCriteria;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWith2StorageLensGroups {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String storageLensGroupName1 = "StorageLensGroupName1";
        String storageLensGroupName2 = "StorageLensGroupName2";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevelSelectionCriteria selectionCriteria = new StorageLensGroupLevelSelectionCriteria()
                    .withInclude(
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName1,
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName2);

            System.out.println(selectionCriteria);
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel()
                    .withSelectionCriteria(selectionCriteria);

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example – 除外項目を含むすべてのストレージレンズグループをアタッチする**  
次の SDK for Java 例では、2 つの Storage Lens グループを *ExampleDashboardConfigurationId* ダッシュボードにアタッチします (指定した *StorageLensGroupName1* と *StorageLensGroupName2* を除く):  

```
package aws.example.s3control;


import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;
import com.amazonaws.services.s3control.model.StorageLensGroupLevelSelectionCriteria;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWith2StorageLensGroupsExcluded {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String storageLensGroupName1 = "StorageLensGroupName1";
        String storageLensGroupName2 = "StorageLensGroupName2";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevelSelectionCriteria selectionCriteria = new StorageLensGroupLevelSelectionCriteria()
                    .withInclude(
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName1,
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName2);

            System.out.println(selectionCriteria);
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel()
                    .withSelectionCriteria(selectionCriteria);

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループのデータの視覚化
<a name="storage-lens-groups-visualize"></a>

Storage Lens グループのデータは、[Amazon S3 ストレージレンズダッシュボードにグループをアタッチする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html#storage-lens-groups-attach-dashboard-console)ことで視覚化できます。ダッシュボード設定の Storage Lens グループ集約に Storage Lens グループを含めてから、Storage Lens グループのデータがダッシュボードに表示されるまでに最大 48 時間かかることがあります。

ダッシュボードの設定が更新されると、新しくアタッチされた Storage Lens グループが **[Storage Lens グループ]** タブの使用可能なリソースのリストに表示されます。データを別の次元でスライスすることで、**[概要]** タブでストレージ使用状況をさらに分析することもできます。例えば、**上位 3 つ**のカテゴリにリストされている項目の 1 つを選択し、**[分析基準]** を選択すると、データを別のディメンションで分割できます。フィルタ自体と同じディメンションを適用することはできません。

**注記**  
Storage Lens グループフィルタとプレフィックスフィルタ、またはその逆は適用できません。また、プレフィックスフィルタを使用して Storage Lens グループをさらに分析することもできません。

Amazon S3 ストレージレンズダッシュボードの [**Storage Lens グループ**] タブを使用して、ダッシュボードにアタッチされている Storage Lens グループのデータ視覚化をカスタマイズできます。ダッシュボードに添付されている一部の Storage Lens グループ、またはすべてのデータを視覚化できます。

S3 Storage Lens のデータを視覚化するときは、次の点に注意してください。
+ S3 Storage Lens は、一致するすべての Storage Lens グループのオブジェクトの使用状況メトリクスを集約します。そのため、オブジェクトが 2 つ以上の Storage Lens グループのフィルタ条件に一致すると、ストレージ使用状況全体で同じオブジェクトの数が繰り返し表示されます。
+ オブジェクトは、Storage Lens グループに含めるフィルタと一致する必要があります。Storage Lens グループに含めるフィルタに一致するオブジェクトがない場合、メトリクスは生成されません。未割り当てのオブジェクトがないかどうかを確認するには、ダッシュボードでアカウントレベルとバケットレベルの合計オブジェクト数を確認します。

# Storage Lens グループの更新
<a name="storage-lens-groups-update"></a>

以下の例は、Amazon S3 ストレージレンズグループを更新する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用して Storage Lens グループを更新できます。

## S3 コンソールの使用
<a name="update-storage-lens-group-console"></a>

**Storage Lens グループを更新するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、更新する Storage Lens グループを選択します。

1. [**スコープ**] で、[**編集**] を選択します。

1. **[スコープ]** ページで、Storage Lens グループに適用するためのフィルタを選択します。**複数のフィルタを適用するには、フィルタを選択し、AND** または **OR** の論理演算子を選択します。
   + **[プレフィックス]** フィルタでは、**[プレフィックス]** を選択し、プレフィックス文字列を入力します。複数のプレフィックスを追加するには、**[プレフィックスを追加]** を選択します。プレフィックスを削除するには、削除するボリュームの横にある **[削除]** を選択します。
   + **[オブジェクトタグ]** フィルタでは、オブジェクトのキーと値のペアを入力します。次に、**[タグの追加]** を選択します。タグを削除するには、削除したいタグの横にある**[削除]** を選択します。
   + **[サフィックス]** フィルタでは、**[サフィックス]** を選択し、サフィックス文字列を入力します。複数のサフィックスを追加するには、**[サフィックスを追加]** を選択します。サフィックスを削除するには、削除したいサフィックスの横にある**[削除]** を選択します。
   + **[経過時間]** フィルタでは、オブジェクトの有効期間を日単位で指定します。**[オブジェクトの最短経過時間を指定]** を選択し、オブジェクトの最低経過時間を入力します。**[オブジェクトの最長経過時間を指定]** を選択し、オブジェクトの最長経過時間を入力します。
   + **[サイズ]** フィルタで、オブジェクトサイズの範囲と測定単位を指定します。**[最小オブジェクトサイズを指定]** を選択し、オブジェクトの最小オブジェクトサイズを入力します。**[最大オブジェクトサイズを指定]** に、オブジェクトの最大オブジェクトサイズを入力します。

1. **[Save changes]** (変更の保存) をクリックします。Storage Lens グループの詳細ページが表示されます。

1. (オプション) 新しい AWS リソースタグを追加する場合は、**[AWS リソースタグ]** セクションまでスクロールし、**[タグを追加]** を選択します。**タグの追加** ページが表示されます。

   新しいキーと値のペアを追加し、**[変更の保存]** を選択します。Storage Lens グループの詳細ページが表示されます。

1. (オプション) 既存の AWS リソースタグを削除する場合は、**[AWS リソースタグ]** セクションまでスクロールし、リソースタグを選択します。その後、**[削除]** をクリックします。**[AWS タグの削除]** ダイアログボックスが表示されます。

   AWS リソースタグを完全に削除するには、もう一度 **[削除]** を選択します。
**注記**  
AWS リソースタグを完全に削除すると、元に戻すことはできません。

## の使用AWS CLI
<a name="update-storage-lens-group-cli"></a>

以下の AWS CLI 例コマンドでは、`marketing-department` という名前の Storage Lens グループの設定の詳細を返します。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。



```
aws s3control get-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

次の AWS CLI 例は、Storage Lens グループを更新します。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control update-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。

## AWS SDK for Java の使用
<a name="update-storage-lens-group-sdk-java"></a>

以下の AWS SDK for Java 例では、アカウント `111122223333` の `Marketing-Department` Storage Lens グループの設定の詳細を返します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupResponse;

public class GetStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            GetStorageLensGroupRequest getRequest = GetStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            GetStorageLensGroupResponse response = s3ControlClient.getStorageLensGroup(getRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

以下の例では、アカウント `111122223333` で `Marketing-Department` という名前の Storage Lens グループを更新します。この例では、`.png`、`.gif`、`.jpg`、または `.jpeg` のいずれかのサフィックスに一致するオブジェクトを含むようにダッシュボードスコープを更新します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.UpdateStorageLensGroupRequest;

public class UpdateStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create updated filter.
            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix(".png", ".gif", ".jpg", ".jpeg")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(suffixFilter)
                    .build();

            UpdateStorageLensGroupRequest updateStorageLensGroupRequest = UpdateStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId)
                    .build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.updateStorageLensGroup(updateStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。

# Storage Lens グループによる AWS リソースタグの管理
<a name="storage-lens-groups-manage-tags"></a>

Amazon S3 ストレージレンズグループはそれぞれ独自の Amazon AWS リソースネーム (ARN) を持つリソースとみなされます。そのため、Storage Lens グループを設定するときに、AWS オプションでグループにリソースタグを追加できます。Storage Lens グループごとに最大 50 個のタグを追加できます。タグ付きの Storage Lens グループを作成するには、`s3:CreateStorageLensGroup` と `s3:TagResource` の権限が必要です。

AWS リソースタグを使用して、部門、事業内容、またはプロジェクトごとにリソースを分類できます。そうすることで、同じ種類のリソースが多い場合に役立ちます。タグを適用すると、割り当てたタグに基づいて特定の Storage Lens グループをすばやく識別できます。また、コストの追跡と割り当てにもタグを使用できます。

さらに、Storage Lens グループに AWS リソースタグを追加すると、[属性ベースのアクセス制御 (ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)) が有効になります。ABAC は、このケースタグの属性に基づいて権限を定義する認可戦略です。IAM ポリシーでリソースタグを指定する条件を使用して、[AWS リソースへのアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)を制御できます。

タグのキーと値は編集でき、タグはリソースからいつでも削除できます。また、次の点について注意してください:
+ キーとタグの値は大文字と小文字が区別されます。
+ 特定のリソースについて既存のタグと同じキーを持つタグを追加した場合、以前の値は新しい値によって上書きされます。
+ リソースを削除すると、リソースのタグも削除されます。
+ AWS リソースタグにはプライベートデータや機密データを含めないでください。
+ システムタグ (`aws:` で始まるタグキーの場合) はサポートされていません。
+ 各タグキーの長さは 128 文字以下にする必要があります。各タグ値の長さは 256 文字以下にする必要があります。

次の例は、Storage Lens グループで AWS リソースタグを使用する方法を示しています。

**Topics**
+ [Storage Lens グループに AWS リソースタグを追加する](storage-lens-groups-add-tags.md)
+ [Storage Lens グループのタグ値の更新](storage-lens-groups-update-tags.md)
+ [Storage Lens グループから AWS リソースタグを削除する](storage-lens-groups-delete-tags.md)
+ [Storage Lens グループのタグの一覧表示](storage-lens-groups-list-tags.md)

# Storage Lens グループに AWS リソースタグを追加する
<a name="storage-lens-groups-add-tags"></a>

次の例は、Amazon S3 ストレージレンズグループに AWS リソースタグを使用する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してリソースタグを追加できます。

## S3 コンソールの使用
<a name="storage-lens-groups-add-tags-console"></a>

**Storage Lens グループに AWS リソースタグを追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、更新する Storage Lens グループを選択します。

1. **[AWS リソースタグ]** で **[タグを追加]** を選択します。

1. **[タグの追加]** ページで、新しいキーと値のペアを追加します。
**注記**  
既存のタグと同じ新しいタグを追加すると、以前のタグ値は上書きされます。

1. (オプション) 複数の新しいタグを追加するには、**[タグを追加]** を再度選択して新しいエントリを追加し続けます。Storage Lens グループには、最大 50 個の AWS リソースタグを追加できます。

1. (オプション) 新規追加されたエントリを削除する場合は、削除するタグの横にある**[削除]** を選びます。

1. **[Save changes]** (変更の保存) をクリックします。

## の使用AWS CLI
<a name="storage-lens-groups-add-tags-cli"></a>

以下の AWS CLI コマンド例では、`marketing-department` という名前の既存の Storage Lens グループに 2 つのリソースタグを追加しています。このコマンドの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control tag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1 --tags Key=k1,Value=v1 Key=k2,Value=v2
```

## AWS SDK for Java の使用
<a name="storage-lens-groups-add-tags-sdk-java"></a>

以下の AWS SDK for Java 例では、既存の Storage Lens グループに 2 つの AWS リソースタグを追加しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.Tag;
import software.amazon.awssdk.services.s3control.model.TagResourceRequest;

public class TagResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            Tag resourceTag1 = Tag.builder()
                .key("resource-tag-key-1")
                .value("resource-tag-value-1")
                .build();
            Tag resourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-value-2")
                    .build();
            TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tags(resourceTag1, resourceTag2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.tagResource(tagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループのタグ値の更新
<a name="storage-lens-groups-update-tags"></a>

以下の例は、Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用して Storage Lens グループを更新する方法を示しています。

## S3 コンソールの使用
<a name="storage-lens-groups-update-tags-console"></a>

**Storage Lens グループの AWS リソースタグを更新するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、更新する Storage Lens グループを選択します。

1. **[AWSリソースタグ]** で、更新するタグを選択します。

1. 更新するキーと値のペアの同じキーを使用して、新しいタグ値を追加します。チェックマークアイコンを選択してタグの値を更新します。
**注記**  
既存のタグと同じ新しいタグを追加すると、以前のタグ値は上書きされます。

1. (オプション) 新しいタグを追加する場合は、**[タグの追加]** を選択して新しいエントリを追加します。**タグの追加** ページが表示されます。

   Storage Lens グループには、最大 50 個の AWS リソースタグを追加できます。新しいタグの追加を完了したら、**[変更の保存]** を選択します。

1. (オプション) 新規追加されたエントリを削除する場合は、削除するタグの横にある**[削除]** を選びます。タグの削除を完了したら、**[タグの保存]** を選択します。

## の使用AWS CLI
<a name="storage-lens-groups-update-tags-cli"></a>

次の AWS CLI コマンド例は、`marketing-department` という名前の Storage Lens グループの 2 つのタグ値を更新します。このコマンドの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control tag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1 --tags Key=k1,Value=v3 Key=k2,Value=v4
```

## AWS SDK for Java の使用
<a name="storage-lens-groups-update-tags-sdk-java"></a>

次の AWS SDK for Java 例では、2 つの Storage Lens グループのタグ値を更新します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.Tag;
import software.amazon.awssdk.services.s3control.model.TagResourceRequest;

public class UpdateTagsForResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            Tag updatedResourceTag1 = Tag.builder()
                .key("resource-tag-key-1")
                .value("resource-tag-updated-value-1")
                .build();
            Tag updatedResourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-updated-value-2")
                    .build();
            TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tags(updatedResourceTag1, updatedResourceTag2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.tagResource(tagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループから AWS リソースタグを削除する
<a name="storage-lens-groups-delete-tags"></a>

次の例は、Storage Lens グループから AWS リソースタグを削除する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してタグを削除できます。

## S3 コンソールの使用
<a name="storage-lens-groups-delete-tags-console"></a>

**Storage Lens グループから AWS リソースタグを削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、更新する Storage Lens グループを選択します。

1. **[AWSリソースタグ]** で、削除するキーと値のペアを選択します。

1. **[削除]** を選択します。**[AWSリソースタグの削除]** ダイアログボックスが表示されます。
**注記**  
タグを使用してアクセスを制御すると、関連するリソースに影響を与える可能性があります。タグを完全に削除すると、元に戻すことはできません。

1. **[削除]** を選択してキー値のペアを完全に削除します。

## の使用AWS CLI
<a name="storage-lens-groups-delete-tags-cli"></a>

次の AWS CLI コマンドは、既存の Storage Lens グループから 2 つの AWS リソースタグを削除します。このコマンド例を使用するには、`user input placeholders` を独自の情報に置き換えてください。

```
aws s3control untag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/Marketing-Department \
--region us-east-1 --tag-keys k1 k2
```

## AWS SDK for Java の使用
<a name="storage-lens-groups-delete-tags-sdk-java"></a>

次の AWS SDK for Java 例では、アカウント `111122223333` で指定した Storage Lens グループの Amazon リソースネーム (ARN) から 2 つの AWS リソースタグを削除します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.UntagResourceRequest;

public class UntagResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            String tagKey1 = "resource-tag-key-1";
            String tagKey2 = "resource-tag-key-2";
            UntagResourceRequest untagResourceRequest = UntagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tagKeys(tagKey1, tagKey2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.untagResource(untagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループのタグの一覧表示
<a name="storage-lens-groups-list-tags"></a>

以下の例は、Storage Lens グループに関連付けられている AWS リソースタグを一覧表示する方法を示しています。Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してタグを一覧表示できます。

## S3 コンソールの使用
<a name="storage-lens-groups-list-tags-console"></a>

**Storage Lens グループのタグとタグ値のリストを確認するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、対象となる Storage Lens グループを選択します。

1. **[AWS リソースタグ]** セクションまでスクロールダウンします。Storage Lens グループに追加されたすべてのユーザー定義 AWS リソースタグが、そのタグ値とともに一覧表示されます。

## の使用AWS CLI
<a name="storage-lens-group-list-tags-cli"></a>

次の AWS CLI コマンド例では、`marketing-department` という名前の Storage Lens グループの Storage Lens グループタグすべてを一覧表示しています。このコマンドの例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control list-tags-for-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1
```

## AWS SDK for Java の使用
<a name="storage-lens-group-list-tags-sdk-java"></a>

次の AWS SDK for Java 例では、指定した Storage Lens グループ Amazon リソースネーム (ARN) のStorage Lens グループタグ値を一覧表示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceResponse;

public class ListTagsForResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            ListTagsForResourceRequest listTagsForResourceRequest = ListTagsForResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            ListTagsForResourceResponse response = s3ControlClient.listTagsForResource(listTagsForResourceRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# すべての Storage Lens グループの一覧表示
<a name="storage-lens-groups-list"></a>

以下の例は、AWS アカウント およびホームリージョン内のすべての Amazon S3 ストレージレンズグループを一覧表示する方法を示しています。これらの例は、Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してすべての Storage Lens グループを一覧表示する方法を示しています。

## S3 コンソールの使用
<a name="storage-lens-group-list-console"></a>

**アカウントとホームリージョンのすべての Amazon S3 ストレージレンズグループを一覧表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]** を選択します。

1. **Storage Lens グループには**、アカウント内の Storage Lens グループのリストが表示されます。

## の使用AWS CLI
<a name="storage-lens-groups-list-cli"></a>

次の AWS CLI 例では、アカウントのすべての Storage Lens グループを一覧表示しています。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control list-storage-lens-groups --account-id 111122223333 \
--region us-east-1
```

## AWS SDK for Java の使用
<a name="storage-lens-groups-list-sdk-java"></a>

次の AWS SDK for Java 例では、アカウント `111122223333` の Storage Lens グループを一覧表示しています。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListStorageLensGroupsRequest;
import software.amazon.awssdk.services.s3control.model.ListStorageLensGroupsResponse;

public class ListStorageLensGroups {
    public static void main(String[] args) {
        String accountId = "111122223333";

        try {
            ListStorageLensGroupsRequest listStorageLensGroupsRequest = ListStorageLensGroupsRequest.builder()
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            ListStorageLensGroupsResponse response = s3ControlClient.listStorageLensGroups(listStorageLensGroupsRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループ詳細の表示
<a name="storage-lens-groups-view"></a>

以下の例は、Amazon S3 ストレージレンズグループ設定の詳細を表示する方法を示しています。Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用してこれらの詳細を表示できます。

## S3 コンソールの使用
<a name="view-storage-lens-group-console"></a>



**Storage Lens グループ設定の詳細を表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループ]** で、対象となる Storage Lens グループの横にあるオプションボタンを選択します。

1. **[詳細を表示]** を選択します。これで、Storage Lens グループの詳細を確認できます。

## の使用AWS CLI
<a name="view-storage-lens-group-cli"></a>

次の AWS CLI 例では、Storage Lens グループの設定の詳細を返します。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control get-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

## AWS SDK for Java の使用
<a name="view-storage-lens-group-sdk-java"></a>

以下の AWS SDK for Java 例では、アカウント `111122223333` の `Marketing-Department` という Storage Lens グループの設定の詳細を返します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupResponse;

public class GetStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            GetStorageLensGroupRequest getRequest = GetStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            GetStorageLensGroupResponse response = s3ControlClient.getStorageLensGroup(getRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# Storage Lens グループの削除
<a name="storage-lens-groups-delete"></a>

以下の例は、Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用して Amazon S3 ストレージレンズグループを削除する方法を示しています。

## S3 コンソールの使用
<a name="delete-storage-lens-group-console"></a>

**Storage Lens グループを削除するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで、**[Storage Lens グループ]** を選択します。

1. **[Storage Lens グループ]** で、削除する Storage Lens グループの横にあるオプションボタンを選択します。

1. **[削除]** を選択します。**[Storage Lens グループの削除]** ダイアログボックスが表示されます。

1. もう一度 **[削除]** を選択すると、Storage Lens グループが完全に削除されます。
**注記**  
Storage Lens グループを削除すると、復元することはできません。

## の使用AWS CLI
<a name="delete-storage-lens-group-cli"></a>

以下の AWS CLI 例は、`marketing-department` という名前の Storage Lens グループを削除します。このコマンド例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
aws s3control delete-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

## AWS SDK for Java の使用
<a name="delete-storage-lens-group-sdk-java"></a>

以下の AWS SDK for Java 例は、アカウント `111122223333` で `Marketing-Department` という名前の Storage Lens グループを削除します。この例を実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.DeleteStorageLensGroupRequest;

public class DeleteStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            DeleteStorageLensGroupRequest deleteStorageLensGroupRequest = DeleteStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.deleteStorageLensGroup(deleteStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

# S3 インベントリを使用したデータのカタログ化と分析
<a name="storage-inventory"></a>

Amazon S3 インベントリを使用してストレージを管理できます。例えば、ビジネス、コンプライアンス、および規制上のニーズに対応して、オブジェクトのレプリケーションや暗号化のステータスを監査およびレポートするために使用できます。また、Amazon S3 同期 `List` API オペレーションのスケジュールされた代替手段として Amazon S3 インベントリを使用し、ビジネスワークフローやビッグデータジョブを簡素化、高速化できます。Amazon S3 インベントリは、`List` API オペレーションを使用してオブジェクトを監査しないため、バケットのリクエストレートには影響しません。

Amazon S3 インベントリは、カンマ区切り値 (CSV)、[Apache Optimized Row Columnar (ORC)](https://orc.apache.org/)、または [https://parquet.apache.org/](https://parquet.apache.org/) 出力ファイルを通じて、S3 バケットや共有プレフィックス (オブジェクト名の先頭が共通文字列) を持つオブジェクトについて、オブジェクトおよび対応するメタデータを毎日または毎週一覧表示します。毎週のインベントリを設定すると、最初のレポートの後は毎週日曜日 (UTC タイムゾーン) にレポートが生成されます。Amazon S3 インベントリの料金に関する詳細については、[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/) を参照してください。

1 つのバケットに対して複数のインベントリリストを設定できます。インベントリリストを設定する場合、以下を指定できます。
+ インベントリに含めるオブジェクトメタデータ
+ すべてのオブジェクトバージョンを一覧表示するか、現在のバージョンのみを一覧表示するか
+ インベントリリストファイル出力を保存する場所
+ インベントリを毎日生成するか、毎週生成するか
+ インベントリリストファイルを暗号化するかどうか

Amazon S3 インベントリを標準 SQL クエリを使用してクエリするには、[Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)、[Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum.html)、その他のツール ([https://prestodb.io/](https://prestodb.io/)、[https://hive.apache.org/](https://hive.apache.org/)、[https://databricks.com/spark/about/](https://databricks.com/spark/about/) など) を使用できます。Athena を使用してインベントリファイルをクエリする方法の詳細については、「[Amazon Athena で Amazon S3 インベントリをクエリする](storage-inventory-athena-query.md)」を参照してください。

**注記**  
Amazon S3 が最初のインベントリレポートを配信するまでに最大 48 時間かかることがあります。

## ソースバケットと保存先バケット
<a name="storage-inventory-buckets"></a>

インベントリでオブジェクトをリストする対象のバケットは、*ソースバケット*と呼ばれます。インベントリリストファイルを保存する先のバケットは、*保存先バケット*と呼ばれます。

**ソースバケット**

インベントリは、ソースバケットに格納されているオブジェクトをリストします。バケット全体のインベントリリストを取得することも、オブジェクトキー名のプレフィックスでリストをフィルタリングすることもできます。

ソースバケット:
+ インベントリにリストされているオブジェクトが含まれます。
+ インベントリの設定が含まれます。

**保存先バケット**

Amazon S3 インベントリリストのファイルは、保存先バケットに書き込まれます。すべてのインベントリリストファイルを保存先バケットの共通の場所にグループ化するには、インベントリ設定で保存先のプレフィックスを指定できます。

保存先バケット:
+ インベントリのファイルリストが含まれます。
+ 保存先バケットに保存されているすべてのインベントリリストファイルを一覧表示するマニフェストファイルが含まれます。詳細については、「[インベントリマニフェスト](storage-inventory-location.md#storage-inventory-location-manifest)」を参照してください。
+ バケットの所有権を検証するためのアクセス許可と、バケットにファイルを書き込むためのアクセス許可を Amazon S3 に付与する、バケットポリシーが必要です。
+ ソースバケットと同じ AWS リージョン に存在する必要があります。
+ ソースバケットと同じでもかまいません。
+ ソースバケットを所有するアカウントとは別の AWS アカウント によって所有されていてもかまいません。

## Amazon S3 インベントリのリスト
<a name="storage-inventory-contents"></a>

インベントリリストファイルには、ソースバケット内のオブジェクトのリストと、各オブジェクトのメタデータが含まれます。インベントリリストファイルは、次のいずれかの形式で保存先バケットに保存されます。
+ GZIP で圧縮された CSV ファイル
+ ZLIB で圧縮された Apache Optimized Row Columnar (ORC)
+ Snappy で圧縮された Apache Parquet ファイル

**注記**  
Amazon S3 インベントリレポートのオブジェクトのソート結果は一切保証されません。

インベントリリストファイルには、ソースバケット内のオブジェクトのリストと、リストされた各オブジェクトのメタデータが含まれます。これらのデフォルトフィールドは常に含まれます。
+ **バケット名** – インベントリ対象のバケットの名前。
+ **ETag** – エンティティタグ (ETag) は、オブジェクトのハッシュです。ETag は、変更をオブジェクトのコンテンツにのみ反映し、メタデータには反映しません。ETag は、オブジェクトデータの MD5 ダイジェストである場合があります。どちらであるかは、オブジェクトの作成方法と暗号化方法によって決まります。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)」を参照してください。
+ **キー名** – バケット内のオブジェクトを一意に識別するオブジェクトのキー名 (またはキー)。CSV ファイル形式を使用すると、キー名は URL エンコードされるため、これをデコードしてから使用する必要があります。
+ **最終更新日** – オブジェクトの作成日または最終更新日のどちらか新しい方。
+ **サイズ** - バイト単位のオブジェクトサイズ。不完全なマルチパートアップロード、オブジェクトメタデータ、削除マーカーのサイズは含まれません。
+ **ストレージクラス** – オブジェクトの保存に使用するストレージクラス。`STANDARD`、`REDUCED_REDUNDANCY`、`STANDARD_IA`、`ONEZONE_IA`、`INTELLIGENT_TIERING`、`GLACIER`、`DEEP_ARCHIVE`、`OUTPOSTS`、`GLACIER_IR`、または `SNOW` に設定します。詳細については、「[Amazon S3 ストレージクラスの理解と管理](storage-class-intro.md)」を参照してください。
**注記**  
S3 インベントリは S3 Express One Zone をサポートしていません。

レポートには、次の追加のメタデータフィールドを含めることができます。
+ **チェックサムアルゴリズム** - オブジェクトのチェックサムを作成するために使用されるアルゴリズムを示します。詳細については、「[サポートされているチェックサムアルゴリズムの使用](checking-object-integrity-upload.md#using-additional-checksums)」を参照してください。
+ **暗号化ステータス** – 使用される暗号化キーの種類に応じた、サーバー側の暗号化ステータス。Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS)、またはお客様が指定したキーによるサーバー側の暗号化 (SSE-C) のいずれかとなります。`SSE-S3`、`SSE-KMS`、`DSSE-KMS`、`SSE-C`、または `NOT-SSE` に設定します。ステータスが `NOT-SSE` の場合、オブジェクトはサーバー側の暗号化を使用して暗号化されません。詳細については、「[暗号化によるデータの保護](UsingEncryption.md)」を参照してください。
+ **S3 Intelligent-Tiering: アクセス階層** – S3 Intelligent-Tiering ストレージクラスがオブジェクトの保存先である場合、オブジェクトのアクセス階層 (高頻度または低頻度)。`FREQUENT`、`INFREQUENT`、`ARCHIVE_INSTANT_ACCESS`、`ARCHIVE`、または `DEEP_ARCHIVE` に設定します。詳細については、「[アクセスパターンが変化する、またはアクセスパターンが不明なデータを、自動的に最適化するためのストレージクラス](storage-class-intro.md#sc-dynamic-data-access)」を参照してください。
+ **S3 オブジェクトロック: 日付までの保持期限** – ロックされたオブジェクトを削除できなくなる日付。詳細については、「[S3 Object Lock を使用したオブジェクトのロック](object-lock.md)」を参照してください。
+ **S3 オブジェクトロック: 保持モード** – ロックされたオブジェクトの `Governance` または `Compliance` に設定します。詳細については、「[S3 Object Lock を使用したオブジェクトのロック](object-lock.md)」を参照してください。
+ **S3 オブジェクトロック: リーガルホールドステータス** – リーガルホールドがオブジェクトに適用されている場合は `On` に設定します。それ以外の場合は、`Off` に設定されます。詳細については、「[S3 Object Lock を使用したオブジェクトのロック](object-lock.md)」を参照してください。
+ **バージョン ID** – オブジェクトのバージョン ID。バケットのバージョニングを有効にすると、Amazon S3 はバケットに追加されたオブジェクトにバージョン番号を割り当てます。詳細については、「[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)」を参照してください。リストを現在のバージョンのオブジェクトのみに設定した場合、このフィールドは含まれません。
+ **IsLatest** – オブジェクトが現在のバージョンのオブジェクトである場合は、`True` に設定されます リストを現在のバージョンのオブジェクトのみに設定した場合、このフィールドは含まれません。
+ **削除マーカー** – オブジェクトが削除マーカーである場合は、`True` に設定されます。詳細については、「[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)」を参照してください。(オブジェクトのすべてのバージョンを含めるようにレポートを設定している場合、このフィールドはレポートに自動的に追加されます)。
+ **マルチパートアップロードフラグ** – オブジェクトがマルチパートアップロードとしてアップロードされた場合は、`True` に設定されます。詳細については、「[Amazon S3 でのマルチパートアップロードを使用したオブジェクトのアップロードとコピー](mpuoverview.md)」を参照してください。
+ **オブジェクト所有者** – オブジェクトの所有者の正規ユーザー ID。詳細については、「AWS Account Management リファレンスガイド」の「[AWS の正規ユーザー ID を検索する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)」を参照してください。**
+ **レプリケーションステータス** — `PENDING`、`COMPLETED`、`FAILED` または `REPLICA` に設定します。詳細については、「[レプリケーションステータス情報の取得](replication-status.md)」を参照してください。
+ **S3 バケットキーステータス** — `ENABLED` または `DISABLED` に設定します。オブジェクトが SSE-KMS に S3 バケットキーを使用するかどうかを示します。詳細については、「[Amazon S3 バケットキーの使用](bucket-key.md)」を参照してください。
+ **オブジェクトアクセスコントロールリスト** — このオブジェクトへのアクセスを許可する AWS アカウントまたはグループと、許可するアクセスの種類を定義するアクセスコントロールリスト (ACL)。オブジェクト ACL フィールドは JSON 形式で定義します。S3 インベントリレポートには、ACL がバケットで無効になっている場合でも、ソースバケット内のオブジェクトに関連付けられた ACL が含まれます。詳細については、「[オブジェクト ACL フィールドの使用](objectacl.md)」および「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」を参照してください。
**注記**  
オブジェクト ACL フィールドは JSON 形式で定義します。インベントリレポートには、オブジェクト ACL フィールドの値が base64 エンコードされた文字列として表示されます。  
例えば、次のオブジェクト ACL フィールドが JSON 形式で存在するとします。  

  ```
  {
          "version": "2022-11-10",
          "status": "AVAILABLE",
          "grants": [{
              "canonicalId": "example-canonical-user-ID",
              "type": "CanonicalUser",
              "permission": "READ"
          }]
  }
  ```
オブジェクト ACL フィールドはエンコードされ、次の base64 エンコードされた文字列として表示されます。  

  ```
  eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3siY2Fub25pY2FsSWQiOiJleGFtcGxlLWNhbm9uaWNhbC11c2VyLUlEIiwidHlwZSI6IkNhbm9uaWNhbFVzZXIiLCJwZXJtaXNzaW9uIjoiUkVBRCJ9XX0=
  ```
オブジェクト ACL フィールドのデコードされた値を JSON で取得するには、Amazon Athena でこのフィールドをクエリできます。クエリの例については、「[Amazon Athena で Amazon S3 インベントリをクエリする](storage-inventory-athena-query.md)」を参照してください。
+ **ライフサイクルの有効期限** – オブジェクトのライフサイクルの有効期限タイムスタンプに設定します。このフィールドは、該当するライフサイクルルールによってオブジェクトの有効期限が切れる場合にのみ入力されます。それ以外の場合、このフィールドは空になります。詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。

**注記**  
ライフサイクル設定に基づいて、オブジェクトの存続期間が終了すると、Amazon S3 が削除キューに追加し、非同期的に削除します。そのため、有効期限が切れる日と Amazon S3 がオブジェクトを削除する日との間に遅延が生じることがあります。インベントリレポートには、有効期限が切れていてもまだ削除されていないオブジェクトが含まれます。S3 ライフサイクルの有効期限アクションの詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。

以下は、4 つのレコードで構成される追加のメタデータフィールドを含むインベントリレポートの例です。

```
amzn-s3-demo-bucket1    example-object-1    EXAMPLEDC8l.XJCENlF7LePaNIIvs001    TRUE        1500    2024-08-15T15:28:26.0004    EXAMPLE21e1518b92f3d92773570f600    STANDARD    FALSE    COMPLETED    SSE-KMS    2025-01-25T15:28:26.000Z    COMPLIANCE    Off        ENABLED        eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ==    EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7000
amzn-s3-demo-bucket1    example-object-2    EXAMPLEDC8l.XJCENlF7LePaNIIvs002    TRUE        200    2024-08-21T15:28:26.000Z    EXAMPLE21e1518b92f3d92773570f601    INTELLIGENT_TIERING    FALSE    COMPLETED    SSE-KMS    2025-01-25T15:28:26.000Z    COMPLIANCE    Off    INFREQUENT    ENABLED    SHA-256    eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ==    EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7001
amzn-s3-demo-bucket1    example-object-3    EXAMPLEDC8l.XJCENlF7LePaNIIvs003    TRUE        12500    2023-01-15T15:28:30.000Z    EXAMPLE21e1518b92f3d92773570f602    STANDARD    FALSE    REPLICA    SSE-KMS    2025-01-25T15:28:26.000Z    GOVERNANCE    On        ENABLED        eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ==    EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7002
amzn-s3-demo-bucket1    example-object-4    EXAMPLEDC8l.XJCENlF7LePaNIIvs004    TRUE        100    2021-02-15T15:28:27.000Z    EXAMPLE21e1518b92f3d92773570f603    STANDARD    FALSE    COMPLETED    SSE-KMS    2025-01-25T15:28:26.000Z    COMPLIANCE    Off        ENABLED        eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3sicGVybWlzc2lvbiI6IkZVTExfQ09OVFJPTCIsInR5cGUiOiJDYW5vbmljYWxVc2VyIiwiY2Fub25pY2FsSWQiOiJFWEFNUExFNzY2ZThmNmIxMTVkOTNkNDFkZjJlYWM0MjBhYTRhNDY1ZDE3N2MxMzk4YmM2YTA4OGM3NmI3MDAwIn1dfQ==    EXAMPLE766e8f6b115d93d41df2eac420aa4a465d177c1398bc6a088c76b7003
```

古いインベントリリストを削除するライフサイクルポリシーを作成することをお勧めします。詳細については、「[オブジェクトのライフサイクルの管理](object-lifecycle-mgmt.md)」を参照してください。

`s3:PutInventoryConfiguration` アクセス許可により、ユーザーは、インベントリリストを設定するとき、各オブジェクトについて以前にリストされたすべてのメタデータフィールドを選択することと、インベントリを保存する保存先バケットを指定することの両方ができるようになります。保存先バケット内のオブジェクトへの読み取りアクセス権を持つユーザーは、インベントリリストで利用可能なすべてのオブジェクトメタデータフィールドにアクセスできます。インベントリレポートへのアクセスを制限するには、「[S3 インベントリおよび S3 分析に対するアクセス許可の付与](example-bucket-policies.md#example-bucket-policies-s3-inventory-1)」を参照してください。

### インベントリ整合性
<a name="storage-inventory-contents-consistency"></a>

すべてのオブジェクトが各インベントリリストに表示されない場合があります。インベントリリストは、`PUT` リクエスト (新しいオブジェクトと上書きの両方) および `DELETE` リクエストの結果整合性を提供します。バケットの各インベントリリストは、バケット項目のスナップショットです。これらのリストは結果的に整合します (つまり、リストには最近追加または削除されたオブジェクトが含まれない場合があります)。

オブジェクトに対してアクションを実行する前に、オブジェクトの状態を検証するには、`HeadObject` REST API リクエストを実行してオブジェクトのメタデータを取得するか、Amazon S3 コンソールでオブジェクトのプロパティを確認することをお勧めします。AWS CLI または AWS SDK でオブジェクトのメタデータを確認することもできます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)」を参照してください。

Amazon S3インベントリの使用のさらなる詳細については、以下のトピックを参照してください。

**Topics**
+ [ソースバケットと保存先バケット](#storage-inventory-buckets)
+ [Amazon S3 インベントリのリスト](#storage-inventory-contents)
+ [Amazon S3 インベントリの設定](configure-inventory.md)
+ [インベントリリストの検索](storage-inventory-location.md)
+ [インベントリ完了に関する Amazon S3 イベント通知の設定](storage-inventory-notification.md)
+ [Amazon Athena で Amazon S3 インベントリをクエリする](storage-inventory-athena-query.md)
+ [Amazon S3 インベントリレポートの空のバージョン ID 文字列を NULL 文字列に変換します。](inventory-configure-bops.md)
+ [オブジェクト ACL フィールドの使用](objectacl.md)

# Amazon S3 インベントリの設定
<a name="configure-inventory"></a>

Amazon S3 インベントリには、定義したスケジュールに従ってオブジェクトとメタデータのフラットファイルリストが用意されています。Amazon S3 同期 `List` API オペレーションの代わりにスケジュールされた S3 インベントリを使用できます。S3 インベントリは、カンマ区切り値 (CSV)、[Apache Optimized Row Columnar (ORC)](https://orc.apache.org/)、または [https://parquet.apache.org/](https://parquet.apache.org/) 出力ファイルを使用して、オブジェクトおよび対応するメタデータを一覧表示します。

S3 インベントリは、S3 バケットまたはプレフィックスを共有するオブジェクト (つまり、名前の先頭が同じ文字列のオブジェクト) に関して、インベントリリストが用意されています。詳細については、「[S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md)」を参照してください。

このセクションでは、インベントリのソースバケットと保存先バケットに関する詳細を含め、インベントリを設定する方法について説明します。

**Topics**
+ [概要](#storage-inventory-setting-up)
+ [ターゲットバケットポリシーの作成](#configure-inventory-destination-bucket-policy)
+ [カスタマーマネージドキーを暗号化に使用するためのアクセス許可を Amazon S3 に付与する](#configure-inventory-kms-key-policy)
+ [S3 コンソールを使用したインベントリの設定](#configure-inventory-console)
+ [REST API を使用して S3 インベントリを操作する](#rest-api-inventory)

## 概要
<a name="storage-inventory-setting-up"></a>

Amazon S3 インベントリは、定義したスケジュールで S3 バケット内のオブジェクトのリストを作成し、ストレージの管理に役立ちます。1 つのバケットに対して複数のインベントリリストを設定できます。インベントリリストは、保存先バケットの CSV、ORC、または Parquet ファイルに発行されます。

インベントリを設定する最も簡単な方法は、Amazon S3 を使用することですが、REST API、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用することもできます。コンソールは、次の手順の最初のステップを実行します。保存先バケットへのバケットポリシーの追加。

**S3 バケットの Amazon S3 インベントリをセットアップする方法**

1. **保存先バケットのバケットポリシーを追加します。**

   定義された場所のバケットにオブジェクトを書き込むアクセス許可を Amazon S3 に付与するバケットポリシーを保存先バケットに作成する必要があります。ポリシーの例については、「[S3 インベントリおよび S3 分析に対するアクセス許可の付与](example-bucket-policies.md#example-bucket-policies-s3-inventory-1)」を参照してください。

1. **ソースバケットのオブジェクトをリストして保存先バケットにリストを発行するようにインベントリを設定します。**

   ソースバケットのインベントリリストを設定するときは、リストを保存する保存先バケットと、リストを毎日または毎週のどちらで生成したいかを、指定します。また、すべてのオブジェクトバージョンまたは現在のバージョンだけのどちらをリストするか、どのオブジェクトメタデータを含めるかも設定できます。

   S3 インベントリレポート設定の一部のオブジェクトメタデータフィールドはオプションです。つまり、デフォルトで使用できますが、ユーザーに `s3:PutInventoryConfiguration` アクセス許可を付与すると制限できます。`s3:InventoryAccessibleOptionalFields` 条件キーを使用して、ユーザーがこれらのオプションのメタデータフィールドをレポートに含めることができるかどうかを制御できます。

   S3 インベントリで使用できるオプションのメタデータフィールドの詳細については、「*Amazon Simple Storage Service API リファレンス*」の「[https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html#API_PutBucketInventoryConfiguration_RequestBody)」を参照してください。インベントリ設定の特定のオプションのメタデータフィールドへのアクセスを制限する方法についての詳細は、「[S3 インベントリレポート設定の作成を制御する](example-bucket-policies.md#example-bucket-policies-s3-inventory-2)」を参照してください。

   Amazon S3 マネージド キー (SSE-S3) または AWS Key Management Service (AWS KMS) カスタマーマネージドキー (SSE-KMS) を使用したサーバー側の暗号化により、インベントリリストファイルを暗号化するように指定できます。
**注記**  
AWS マネージドキー(`aws/s3`) は S3 インベントリでの SSE-KMS 暗号化ではサポートされていません。

   SSE-S3 および SSE-KMS に関する詳細は、「[サーバー側の暗号化によるデータの保護](serv-side-encryption.md)」を参照してください。SSE-KMS 暗号化を使用する場合は、ステップ 3 を参照してください。
   + コンソールを使用してインベントリリストを設定する方法については、「[S3 コンソールを使用したインベントリの設定](#configure-inventory-console)」を参照してください。
   + Amazon S3 API を使用してインベントリリストを設定するには、[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html) REST API オペレーションを使用するか、AWS CLI または AWS SDK の同等のオペレーションを使用します。

1. **SSE-KMS を使用してインベントリリストファイルを暗号化するには、AWS KMS key を使用するための許可を Amazon S3 に付与します**。

   Amazon S3 REST API、AWS CLI、または AWS SDK を使用してインベントリリストファイルの暗号化を設定することができます。どちらの方法を選択しても、 カスタマーマネージドキーを使用してインベントリファイルを暗号化する許可を Amazon S3 に付与する必要があります。Amazon S3 に許可を付与するには、インベントリファイルの暗号化に使用する[カスタマーマネージドキーのキーポリシーを変更します](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-inventory.html#configure-inventory-kms-key-policy)。S3 インベントリ設定または送信先バケットの暗号化設定で KMS キー ARN を指定していることを確認します。KMS キー ARN が指定されておらず、デフォルトの暗号化設定が使用されている場合、S3 インベントリレポートにアクセスすることはできません。

   インベントリリストファイルを保存する先のバケットは、ソースバケットを所有するアカウントとは異なる AWS アカウントが所有している場合があります。Amazon S3 インベントリのクロスアカウントオペレーションで SSE-KMS 暗号化を使用する場合は、S3 インベントリの設定時に、完全修飾された KMS キー ARN を使用することをお勧めします。詳細については、「Amazon Simple Storage Service API リファレンス」の「[クロスアカウント操作での SSE-KMS 暗号化の使用](bucket-encryption.md#bucket-encryption-update-bucket-policy)」と「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionByDefault.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionByDefault.html)」を参照してください。**
**注記**  
S3 インベントリレポートにアクセスできない場合は、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) API を使用して、送信先バケットでデフォルトの SSE-KMS 暗号化が有効になっているかどうかを確認します。KMS キー ARN が指定されておらず、デフォルトの暗号化設定が使用されている場合、S3 インベントリレポートにアクセスすることはできません。S3 インベントリレポートにアクセスするには、S3 インベントリ設定または送信先バケットの暗号化設定で KMS キー ARN を指定します。

## ターゲットバケットポリシーの作成
<a name="configure-inventory-destination-bucket-policy"></a>

Amazon S3 コンソールを使用してインベントリ設定を作成する場合、Amazon S3 は、バケットへの書き込みアクセス許可を Amazon S3 に付与するバケットポリシーを、保存先バケットに自動的に作成します。ただし、AWS CLI、AWS SDK、または Amazon S3 REST API を使用してインベントリ設定を作成する場合は、バケットポリシーを保存先バケットに手動で追加する必要があります。S3 インベントリの送信先バケットポリシーにより、Amazon S3 がインベントリレポートのデータをバケットに書き込むことができるようになります。

以下は、バケットポリシーの例です。

------
#### [ JSON ]

****  

```
{  
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
            "Sid": "InventoryExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "s3.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET"
                },
                "StringEquals": {
                    "aws:SourceAccount": "source-123456789012",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
```

------

詳細については、「[S3 インベントリおよび S3 分析に対するアクセス許可の付与](example-bucket-policies.md#example-bucket-policies-s3-inventory-1)」を参照してください。

バケットポリシーを作成しようとしたときにエラーが発生した場合、解決するための手順が表示されます。例えば、別の AWS アカウント 内のターゲットバケットを選択したが、バケットポリシーの読み書きを行う許可がない場合、次のエラーメッセージが表示されます。

この場合、ターゲットバケットの所有者は、バケットポリシーをターゲットバケットに追加する必要があります。ポリシーがターゲットバケットに追加されない場合、Amazon S3 にはターゲットバケットに書き込むアクセス許可がないため、インベントリレポートを取得できません。ソースバケットが現在のユーザー以外のアカウントによって所有されている場合、ポリシーでソースバケット所有者の正しいアカウント ID に置き換える必要があります。

**注記**  
このバケットへのインベントリレポートの配信を妨げる Deny ステートメントが送信先バケットポリシーに追加されていないことを確認します。詳細については、「[Amazon S3 インベントリレポートを生成できないのはなぜですか?](https://repost.aws/knowledge-center/s3-inventory-report)」を参照してください。

## カスタマーマネージドキーを暗号化に使用するためのアクセス許可を Amazon S3 に付与する
<a name="configure-inventory-kms-key-policy"></a>

AWS Key Management Service (AWS KMS) カスタマーマネージドキーを使用して暗号化する許可を Amazon S3 に付与するには、キーポリシーを使用する必要があります。カスタマーマネージドキーを使用できるようにキーポリシーを更新するには、次の手順に従います。

**カスタマーマネージドキーを使用して暗号化するアクセス許可を Amazon S3 に付与するには**

1. カスタマーマネージドキーを所有する AWS アカウント を使用して、AWS マネジメントコンソール にサインインします。

1. AWS KMS コンソール ([https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms)) を開きます。

1. AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。

1. 左のナビゲーションペインで、[**Customer managed keys **] を選択します。

1. **[カスタマーマネージドキー]** で、インベントリファイルの暗号化に使用するカスタマーマネージドキーを選択します。

1. [**Key Policy**] (キーポリシー) セクションで、[**Switch to policy view**] (ポリシービューへの切り替え) を選択します。

1. [**編集**] をクリックし、キーポリシーを更新します。

1. **[キーポリシーの編集]** ページで、既存のキーポリシーに以下の行を追加します。`source-account-id` および `amzn-s3-demo-source-bucket` として、ユースケースに応じた値を入力します。

   ```
   {
       "Sid": "Allow Amazon S3 use of the customer managed key",
       "Effect": "Allow",
       "Principal": {
           "Service": "s3.amazonaws.com"
       },
       "Action": [
           "kms:GenerateDataKey"
       ],
       "Resource": "*",
       "Condition":{
         "StringEquals":{
            "aws:SourceAccount":"source-account-id"
        },
         "ArnLike":{
           "aws:SourceARN": "arn:aws:s3:::amzn-s3-demo-source-bucket"
        }
      }
   }
   ```

1. **[Save changes]** (変更の保存) をクリックします。

カスタマーマネージドキーの作成とキーポリシーの使用の詳細については、*AWS Key Management Service デベロッパーガイド*の次のリンクを参照してください。
+ [キーの管理](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)
+ [ のキーポリシーAWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)

**注記**  
このバケットへのインベントリレポートの配信を妨げる Deny ステートメントが送信先バケットポリシーに追加されていないことを確認します。詳細については、「[Amazon S3 インベントリレポートを生成できないのはなぜですか?](https://repost.aws/knowledge-center/s3-inventory-report)」を参照してください。

## S3 コンソールを使用したインベントリの設定
<a name="configure-inventory-console"></a>

S3 コンソールを使用してインベントリを設定するには、次の手順を使用します。
**注記**  
Amazon S3 が最初のインベントリレポートを配信するまでに最大 48 時間かかることがあります。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、Amazon S3 インベントリを設定する対象のバケットの名前を選択します。

1. **[管理]** タブを選択します。

1. [**インベントリ設定**] で、[**インベントリ設定の作成**] を選択します。

1. **[インベントリ設定名]** に、名前を入力します。

1. **[インベントリスコープ]** で、次の操作を行います。
   + オプションのプレフィックスを入力します。
   + 含めるオブジェクトバージョンとして、**[現在のバージョンのみ]** または **[すべてのバージョンを含める]** のどちらかを選択します。

1. [**Report details**] (レポートの詳細) で、[**This account**] (このアカウント) または [**A different account**] (別のアカウント) のいずれかを、レポートを保存する AWS アカウント の場所として選択します。

1. **[保存先]** で、インベントリレポートを保存する先のバケットを選択します。

   ターゲットバケットは、インベントリをセットアップするバケットと同じ AWS リージョン にある必要があります。ターゲットバケットは、別の AWS アカウント にある場合があります。保存先バケットを指定するときに、インベントリレポートをグループ化するためのオプションのプレフィックスを含めることもできます。

   **[送信先]** バケットフィールドの下に、**[送信先バケットのアクセス許可]** と表示されます。このアクセス許可を送信先バケットポリシーに追加し、Amazon S3 がバケットにデータを配置できるようにします。詳細については、「[ターゲットバケットポリシーの作成](#configure-inventory-destination-bucket-policy)」を参照してください。

1. **[頻度]** の下で、レポートを生成する頻度として、**[毎日]** または **[毎週]** を選択します。

1. **[出力形式]** で、レポートの形式を以下から 1 つ選択します。
   + **CSV** — このインベントリレポートを S3 バッチオペレーションで使用するか、このレポートを Microsoft Excel などの別のツールで分析する場合は、**[CSV]** を選択します。
   + **Apache ORC**
   + **Apache Parquet**

1. [**ステータス**] の下で、[**有効化**] または [**無効化**] を選択します。

1. サーバー側の暗号化を設定するには、**[インベントリ レポートの暗号化]** で次の手順に従います。

   1. **[サーバー側の暗号化]** で、**[暗号化キーを指定しない]** または **[暗号化キーを指定する]** を選択してデータを暗号化します。
      + Amazon S3 にオブジェクトを格納するときに、バケット設定をデフォルトのサーバー側暗号化のままにするには、**[暗号化キーを指定しない]** を選択します。送信先バケットで S3 バケットキーが有効になっている限り、コピーオペレーションは送信先バケットに S3 バケットキーを適用します。
**注記**  
指定された宛先のバケットポリシーで、Amazon S3 に保存する前にオブジェクトを暗号化する必要がある場合は、**[暗号化キーを指定する]** を選択する必要があります。そうしないと、宛先へのオブジェクトのコピーが失敗します。
      + オブジェクトを Amazon S3 に保存する前に暗号化するには、**[暗号化キーを指定する]** を選択します。

   1. **[暗号化キーを指定する]** を選択した場合は、**[暗号化タイプ]** で **[Amazon S3 マネージドキー (SSE-S3)]** または **[AWS Key Management Service キー (SSE-KMS)]** を選択する必要があります。

      SSE-S3 は、最強のブロック暗号の 1 つである 256 ビットの 高度暗号化規格 (AES-256) を使用して、各オブジェクトを暗号化します。SSE-KMS を使用すると、キーをより細かく制御できます。SSE-KMS に関する詳細は、「[Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)](UsingServerSideEncryption.md)」を参照してください。SSE-KMS に関する詳細は、「[AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用](UsingKMSEncryption.md)」を参照してください。
**注記**  
SSE-KMS を使用してインベントリリストファイルを暗号化するには、カスタマーマネージドキーを使用するためのアクセス許可を Amazon S3 に付与する必要があります。手順については、「[KMS キーを使用した暗号化のための Amazon S3 への許可の付与](#configure-inventory-kms-key-policy)」を参照してください。

   1. **[AWS Key Management Service キー (SSE-KMS)]** を選択した場合は、**[AWS KMS key]** で、以下のオプションのいずれかを使用して AWS KMS キーを指定できます。
**注記**  
インベントリリストファイルを保存する送信先バケットが別の AWS アカウント によって所有されている場合は、完全修飾 KMS キー ARN を使用して KMS キーを指定するようにしてください。
      + 使用可能な KMS キーのリストから選択するには、**[AWS KMS キーから選択する]** を選択し、使用可能なキーのリストから対称暗号化 KMS キーを選択します。KMS キーがバケットと同じリージョンにあることを確認します。
**注記**  
AWS マネージドキー (`aws/s3`) とカスタマーマネージドキーの両方がリストに表示されます。ただし、AWS マネージドキー (`aws/s3`) は S3 インベントリでの SSE-KMS 暗号化には対応していません。
      + KMS キー ARN を入力するには、**[AWS KMS キー ARN を入力]** を選択し、表示されるフィールドに KMS キー ARN を入力します。
      + AWS KMS コンソールで新しいカスタマーマネージドキーを作成するには、**[KMS キーを作成]** を選択します。

1. **[追加のメタデータフィールド]** で、インベントリレポートに追加するフィールドを以下から 1 つ以上選択します。
   + **サイズ** - バイト単位のオブジェクトサイズ。不完全なマルチパートアップロード、オブジェクトメタデータ、削除マーカーのサイズは含まれません。
   + **最終更新日** – オブジェクトの作成日または最終更新日のどちらか新しい方。
   +  [**マルチパートアップロード**] – オブジェクトがマルチパートアップロードとしてアップロードされたことを指定します。詳細については、「[Amazon S3 でのマルチパートアップロードを使用したオブジェクトのアップロードとコピー](mpuoverview.md)」を参照してください。
   + [**レプリケーションステータス**] – オブジェクトのレプリケーションステータス。詳細については、「[レプリケーションステータス情報の取得](replication-status.md)」を参照してください。
   + **暗号化ステータス** – オブジェクトの暗号化に使用するサーバー側の暗号化タイプ。詳細については、「[サーバー側の暗号化によるデータの保護](serv-side-encryption.md)」を参照してください。
   + **バケットキーのステータス** — AWS KMS で生成したバケットレベルのキーをオブジェクトに適用するかどうかを示します。詳細については、「[Amazon S3 バケットキーを使用した SSE−KMS のコストの削減](bucket-key.md)」を参照してください。
   + **オブジェクトアクセスコントロールリスト** — このオブジェクトへのアクセスを許可する AWS アカウントまたはグループと、許可するアクセスのタイプを定義するオブジェクトごとのアクセスコントロールリスト (ACL)。このフィールドの詳細については、「[オブジェクト ACL フィールドの使用](objectacl.md)」を参照してください。ACL の詳細については、「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」を参照してください。
   + **オブジェクト所有者** — オブジェクトの所有者。
   + **ストレージクラス** – オブジェクトの保存に使用するストレージクラス。
   + **インテリジェントな階層化: アクセス階層** – S3 Intelligent-Tiering ストレージクラスがオブジェクトの保存先である場合、オブジェクトのアクセス階層 (高頻度または低頻度) を示します。詳細については、「[アクセスパターンが変化する、またはアクセスパターンが不明なデータを、自動的に最適化するためのストレージクラス](storage-class-intro.md#sc-dynamic-data-access)」を参照してください。
   + **ETag** – エンティティタグ (ETag) は、オブジェクトのハッシュです。ETag は、変更をオブジェクトのコンテンツにのみ反映し、そのメタデータには反映しません。ETag は、オブジェクトデータの MD5 ダイジェストである場合と、そうでない場合があります。どちらであるかは、オブジェクトの作成方法と暗号化方法によって決まります。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Object.html)」を参照してください。
   + **チェックサムアルゴリズム** — オブジェクトのチェックサムを作成するために使用されるアルゴリズムを示します。詳細については、「[サポートされているチェックサムアルゴリズムの使用](checking-object-integrity-upload.md#using-additional-checksums)」を参照してください。
   + **[すべてのオブジェクトロック設定]** – オブジェクトのオブジェクトロックステータス (以下の設定が含まれます)。
     + **オブジェクトロック: 保持モード** – オブジェクトに適用される保護のレベル (*[ガバナンス]* または *[コンプライアンス]*)。
     + **オブジェクトロック: 日付までの保持期限** – ロックされたオブジェクトを削除できなくなる日付。
     + **[オブジェクトロック: リーガルホールドステータス]** – ロックされたオブジェクトのリーガルホールドステータス。

     S3 オブジェクトロックの詳細については、「[S3 オブジェクトロックの仕組み](object-lock.md#object-lock-overview)」を参照してください。
   + **ライフサイクルの有効期限** – インベントリレポート内のオブジェクトのライフサイクルの有効期限タイムスタンプ。このフィールドは、該当するライフサイクルルールによってオブジェクトの有効期限が切れる場合にのみ入力されます。それ以外の場合、このフィールドは空になります。詳細については、「[オブジェクトの有効期限](lifecycle-expire-general-considerations.md)」を参照してください。

   インベントリレポートの内容の詳細については、「[Amazon S3 インベントリのリスト](storage-inventory.md#storage-inventory-contents)」を参照してください。

   インベントリ設定の特定のオプションのメタデータフィールドへのアクセスを制限する方法についての詳細は、「[S3 インベントリレポート設定の作成を制御する](example-bucket-policies.md#example-bucket-policies-s3-inventory-2)」を参照してください。

1. **[作成]** を選択します。

## REST API を使用して S3 インベントリを操作する
<a name="rest-api-inventory"></a>

次に示すのは、Amazon S3 インベントリの操作に使用できる REST オペレーションです。
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEInventoryConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEInventoryConfiguration.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketListInventoryConfigs.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketListInventoryConfigs.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTInventoryConfig.html) 

# インベントリリストの検索
<a name="storage-inventory-location"></a>

インベントリリストが発行されると、マニフェストファイルは保存先バケットの次の場所に発行されます。

```
destination-prefix/amzn-s3-demo-source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json
 destination-prefix/amzn-s3-demo-source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.checksum
 destination-prefix/amzn-s3-demo-source-bucket/config-ID/hive/dt=YYYY-MM-DD-HH-MM/symlink.txt
```
+ `destination-prefix` は、インベントリ設定でオプションで指定するオブジェクトキー名プレフィックスです。このプレフィックスを使用して、保存先バケット内の共通の場所に、すべてのインベントリリストファイルをグループ化できます。
+ `amzn-s3-demo-source-bucket` は、インベントリリストの対象であるソースバケットです。複数の異なるソースバケットから複数のインベントリレポートが同じ保存先バケットに送信されたときの競合を避けるには、ソースバケット名を追加します。
+ 同じソースバケットから同じ保存先バケットに複数のインベントリレポートが送信されたときの競合を避けるには、`config-ID` を追加します。`config-ID` は、インベントリレポートの設定から取得されるため、設定時に定義したレポートの名前になります。
+ `YYYY-MM-DDTHH-MMZ` は、インベントリのレポート生成プロセスでバケットのスキャンを開始した日時を示すタイムスタンプです (例: `2016-11-06T21-32Z`)。
+ `manifest.json` はマニフェストファイルです。
+ `manifest.checksum` は、`manifest.json` ファイルのコンテンツの MD5 ハッシュです。
+ `symlink.txt` は Apache Hive 互換のマニフェストファイルです。

インベントリリストは、保存先バケットの次の場所に、毎日または毎週発行されます。

```
destination-prefix/amzn-s3-demo-source-bucket/config-ID/data/example-file-name.csv.gz
...
destination-prefix/amzn-s3-demo-source-bucket/config-ID/data/example-file-name-1.csv.gz
```
+ `destination-prefix` は、インベントリ設定でオプションで指定するオブジェクトキー名プレフィックスです。このプレフィックスを使用して、保存先バケットの共通の場所にすべてのインベントリリストファイルをグループ化できます。
+ `amzn-s3-demo-source-bucket` は、インベントリリストの対象であるソースバケットです。複数の異なるソースバケットから複数のインベントリレポートが同じ保存先バケットに送信されたときの競合を避けるには、ソースバケット名を追加します。
+ `example-file-name``.csv.gz` は、CSV インベントリファイルの 1 つです。ORC インベントリ名はファイル名拡張子 `.orc` で終わり、Parquet インベントリ名はファイル名拡張子 `.parquet` で終わります。

## インベントリマニフェスト
<a name="storage-inventory-location-manifest"></a>

マニフェストファイルの `manifest.json` と `symlink.txt` は、インベントリファイルの場所を記述します。新しいインベントリリストが配信されるたびに、新しいセットのマニフェストファイルが作成されます。これらのファイルは互いに上書きされる可能性があります。バージョニングが有効なバケットには、Amazon S3 はマニフェストファイルの新しいバージョンを作成します。

`manifest.json` ファイルに含まれる各マニフェストには、メタデータおよびその他のインベントリに関する基本的な情報が記載されています。この情報には以下が含まれます。
+ ソースバケット名
+ 保存先バケット名
+ インベントリのバージョン
+ インベントリのレポート生成プロセスでバケットのスキャンを開始した日時をエポック日付形式で示す、作成タイムスタンプ
+ インベントリファイルの形式とスキーマ
+ 保存先バケット内に存在するインベントリファイルのリスト

`manifest.json` ファイルを書き込むたびに、`manifest.checksum` ファイルのコンテンツの MD5 ハッシュとして `manifest.json` ファイルが添付されます。

**Example `manifest.json` ファイル内のインベントリマニフェスト**  
`manifest.json` ファイルに含まれる、CSV、ORC、Parquet 形式インベントリ用のインベントリマニフェストの例を以下に示します。  
CSV 形式のインベントリの `manifest.json` ファイルに含まれるマニフェストの例を次に示します。  

```
{
    "sourceBucket": "amzn-s3-demo-source-bucket",
    "destinationBucket": "arn:aws:s3:::example-inventory-destination-bucket",
    "version": "2016-11-30",
    "creationTimestamp" : "1514944800000",
    "fileFormat": "CSV",
    "fileSchema": "Bucket, Key, VersionId, IsLatest, IsDeleteMarker, Size, LastModifiedDate, ETag, StorageClass, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner",
    "files": [
        {
            "key": "Inventory/amzn-s3-demo-source-bucket/2016-11-06T21-32Z/files/939c6d46-85a9-4ba8-87bd-9db705a579ce.csv.gz",
            "size": 2147483647,
            "MD5checksum": "f11166069f1990abeb9c97ace9cdfabc"
        }
    ]
}
```
ORC 形式のインベントリの `manifest.json` ファイルに含まれるマニフェストの例を次に示します。  

```
{
    "sourceBucket": "amzn-s3-demo-source-bucket",
    "destinationBucket": "arn:aws:s3:::example-destination-bucket",
    "version": "2016-11-30",
    "creationTimestamp" : "1514944800000",
    "fileFormat": "ORC",
    "fileSchema": "struct<bucket:string,key:string,version_id:string,is_latest:boolean,is_delete_marker:boolean,size:bigint,last_modified_date:timestamp,e_tag:string,storage_class:string,is_multipart_uploaded:boolean,replication_status:string,encryption_status:string,object_lock_retain_until_date:timestamp,object_lock_mode:string,object_lock_legal_hold_status:string,intelligent_tiering_access_tier:string,bucket_key_status:string,checksum_algorithm:string,object_access_control_list:string,object_owner:string>",
    "files": [
        {
            "key": "inventory/amzn-s3-demo-source-bucket/data/d794c570-95bb-4271-9128-26023c8b4900.orc",
            "size": 56291,
            "MD5checksum": "5925f4e78e1695c2d020b9f6eexample"
        }
    ]
}
```
`manifest.json` ファイルに含まれる Parquet 形式のインベントリ用のマニフェストの例を次に示します。  

```
{
    "sourceBucket": "amzn-s3-demo-source-bucket",
    "destinationBucket": "arn:aws:s3:::example-destination-bucket",
    "version": "2016-11-30",
    "creationTimestamp" : "1514944800000",
    "fileFormat": "Parquet",
    "fileSchema": "message s3.inventory { required binary bucket (UTF8); required binary key (UTF8); optional binary version_id (UTF8); optional boolean is_latest; optional boolean is_delete_marker; optional int64 size; optional int64 last_modified_date (TIMESTAMP_MILLIS); optional binary e_tag (UTF8); optional binary storage_class (UTF8); optional boolean is_multipart_uploaded; optional binary replication_status (UTF8); optional binary encryption_status (UTF8); optional int64 object_lock_retain_until_date (TIMESTAMP_MILLIS); optional binary object_lock_mode (UTF8); optional binary object_lock_legal_hold_status (UTF8); optional binary intelligent_tiering_access_tier (UTF8); optional binary bucket_key_status (UTF8); optional binary checksum_algorithm (UTF8); optional binary object_access_control_list (UTF8); optional binary object_owner (UTF8);}",
    "files": [
        {
           "key": "inventory/amzn-s3-demo-source-bucket/data/d754c470-85bb-4255-9218-47023c8b4910.parquet",
            "size": 56291,
            "MD5checksum": "5825f2e18e1695c2d030b9f6eexample"
        }
    ]
}
```
`symlink.txt` ファイルは、Hive がインベントリファイルおよび関連データファイルを自動的に検出できるようにする Apache Hive 互換のマニフェストファイルです。Hive 互換のマニフェストは、Athena や Amazon Redshift Spectrum など、Hive 互換のサービスで動作します。また、[https://prestodb.io/](https://prestodb.io/)、[https://hive.apache.org/](https://hive.apache.org/)、[https://databricks.com/spark/about/](https://databricks.com/spark/about/) など、多くの Hive 互換のアプリケーションでも動作します。  
`symlink.txt` Apache Hive 互換のマニフェストファイルは現在、AWS Glue では動作しません。  
[https://hive.apache.org/](https://hive.apache.org/) および [https://databricks.com/spark/about/](https://databricks.com/spark/about/) による `symlink.txt` ファイルの読み取りは、ORC 形式および Parquet 形式のインベントリファイルではサポートされていません。

# インベントリ完了に関する Amazon S3 イベント通知の設定
<a name="storage-inventory-notification"></a>

マニフェストチェックサムファイルが作成されたら通知を受け取るように、Amazon S3 イベント通知をセットアップできます。これは、インベントリリストが保存先バケットに追加されたことを示します。マニフェストは、保存先の場所にあるすべてのインベントリリストの最新のリストです。

Amazon S3 は、Amazon Simple Notification Service (Amazon SNS) トピック、Amazon Simple Queue Service (Amazon SQS) キュー、または AWS Lambda 関数にイベントを発行できます。詳細については、「[Amazon S3 イベント通知](EventNotifications.md)」を参照してください。

次の通知設定は、保存先バケットに新しく追加されるすべての `manifest.checksum` ファイルが AWS Lambda `cloud-function-list-write` によって処理されることを定義します。

```
<NotificationConfiguration>
  <QueueConfiguration>
      <Id>1</Id>
      <Filter>
          <S3Key>
              <FilterRule>
                  <Name>prefix</Name>
                  <Value>destination-prefix/source-bucket</Value>
              </FilterRule>
              <FilterRule>
                  <Name>suffix</Name>
                  <Value>checksum</Value>
              </FilterRule>
          </S3Key>
     </Filter>
     <CloudFunction>arn:aws:lambda:us-west-2:222233334444:cloud-function-list-write</CloudFunction>
     <Event>s3:ObjectCreated:*</Event>
  </QueueConfiguration>
  </NotificationConfiguration>
```

詳細については、*AWS Lambda デベロッパーガイド*の[ Amazon S3 で AWS Lambda を使用する](https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html)を参照してください。

# Amazon Athena で Amazon S3 インベントリをクエリする
<a name="storage-inventory-athena-query"></a>

Athena を使用できるすべてのリージョンで、Amazon Athena で標準 SQL クエリを実行し、Amazon S3 インベントリのファイルをクエリできます。使用可能な AWS リージョン を確認するには、[AWS リージョン 表](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)を参照してください。

Athena は、[Apache Optimized Row Columnar (ORC)](https://orc.apache.org/)、[https://parquet.apache.org/](https://parquet.apache.org/)、またはカンマ区切りの値 (CSV) 形式で Amazon S3 インベントリファイルをクエリできます。Athena を使用してインベントリファイルをクエリする場合は、ORC 形式または Parquet 形式のインベントリファイルを使用することをお勧めします。ORC 形式および Parquet 形式は、より高速なクエリパフォーマンスとより低いクエリコストを提供します。ORC および Parquet は、[http://hadoop.apache.org/](http://hadoop.apache.org/) 向けに設計された自己記述型、型認識型の列指向ファイル形式です。列形式の場合、リーダーは現在のクエリに必要な列だけを読み取り、圧縮解除し、処理することができます。Amazon S3 インベントリの ORC 形式および Parquet 形式は、すべての AWS リージョンで使用できます。

**Athena を使用して Amazon S3 インベントリファイルをクエリするには**

1. Athena テーブルを作成します。テーブルの作成の詳細については、*Amazon Athena ユーザーガイド*の「 [Amazon Athena でのテーブルの作成](https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html) 」を参照してください。

1. クエリ対象のインベントリレポートが ORC 形式、Parquet 形式、CSV 形式のいずれであるかによって、以下のサンプルクエリテンプレートのいずれかを使用してクエリを作成します。
   + Athena を使用して ORC 形式のインベントリレポートをクエリするときは、次のサンプルクエリをテンプレートとして使用します。

     次のサンプルクエリには、ORC 形式のインベントリレポートのすべてのオプションフィールドが含まれています。

     このサンプルクエリを使用するには、以下を実行します。
     + `your_table_name` を、作成した Athena テーブルの名前に置き換えます。
     + インベントリ用に選択しなかったすべてのオプションフィールドを削除し、クエリとインベントリ用に選択したフィールドを対応させます。
     + 設定に応じて、次のバケット名とインベントリの場所 (設定 ID) を置き換えます。

       `s3://amzn-s3-demo-bucket/config-ID/hive/`
     + `projection.dt.range` の `2022-01-01-00-00` 日付を、Athena でデータをパーティション化する時間範囲の最初の日に置き換えます。詳細については、「[Athena でのデータのパーティション化](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)」を参照してください。

     ```
     CREATE EXTERNAL TABLE your_table_name (
              bucket string,
              key string,
              version_id string,
              is_latest boolean,
              is_delete_marker boolean,
              size bigint,
              last_modified_date timestamp,
              e_tag string,
              storage_class string,
              is_multipart_uploaded boolean,
              replication_status string,
              encryption_status string,
              object_lock_retain_until_date bigint,
              object_lock_mode string,
              object_lock_legal_hold_status string,
              intelligent_tiering_access_tier string,
              bucket_key_status string,
              checksum_algorithm string,
              object_access_control_list string,
              object_owner string,
              lifecycle_expiration_date timestamp
     ) PARTITIONED BY (
             dt string
     )
     ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
       STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'
       OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
       LOCATION 's3://amzn-s3-demo-bucket/config-ID/hive/'
       TBLPROPERTIES (
         "projection.enabled" = "true",
         "projection.dt.type" = "date",
         "projection.dt.format" = "yyyy-MM-dd-HH-mm",
         "projection.dt.range" = "2022-01-01-00-00,NOW",
         "projection.dt.interval" = "1",
         "projection.dt.interval.unit" = "HOURS"
       );
     ```
   + Athena を使用して Parquet 形式のインベントリレポートをクエリする場合は、ORC 形式のレポートでサンプルクエリを使用します。ただし、`ROW FORMAT SERDE` ステートメントで ORC SerDe の代わりに次の Parquet SerDe を使用します。

     ```
     ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
     ```
   + Athena を使用して CSV 形式のインベントリレポートをクエリするときは、次のサンプルクエリをテンプレートとして使用します。

     次のサンプルクエリには、CSV 形式のインベントリレポートのすべてのオプションフィールドが含まれています。

     このサンプルクエリを使用するには、以下を実行します。
     + `your_table_name` を、作成した Athena テーブルの名前に置き換えます。
     + インベントリ用に選択しなかったすべてのオプションフィールドを削除し、クエリとインベントリ用に選択したフィールドを対応させます。
     + 設定に応じて、次のバケット名とインベントリの場所 (設定 ID) を置き換えます。

       `s3://amzn-s3-demo-bucket/config-ID/hive/`
     + `projection.dt.range` の `2022-01-01-00-00` 日付を、Athena でデータをパーティション化する時間範囲の最初の日に置き換えます。詳細については、「[Athena でのデータのパーティション化](https://docs.aws.amazon.com/athena/latest/ug/partitions.html)」を参照してください。

     ```
     CREATE EXTERNAL TABLE your_table_name (
              bucket string,
              key string,
              version_id string,
              is_latest boolean,
              is_delete_marker boolean,
              size string,
              last_modified_date string,
              e_tag string,
              storage_class string,
              is_multipart_uploaded boolean,
              replication_status string,
              encryption_status string,
              object_lock_retain_until_date string,
              object_lock_mode string,
              object_lock_legal_hold_status string,
              intelligent_tiering_access_tier string,
              bucket_key_status string,
              checksum_algorithm string,
              object_access_control_list string,
              object_owner string,
              lifecycle_expiration_date string
     ) PARTITIONED BY (
             dt string
     )
     ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
       STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'
       OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
       LOCATION 's3://amzn-s3-demo-bucket/config-ID/hive/'
       TBLPROPERTIES (
         "projection.enabled" = "true",
         "projection.dt.type" = "date",
         "projection.dt.format" = "yyyy-MM-dd-HH-mm",
         "projection.dt.range" = "2022-01-01-00-00,NOW",
         "projection.dt.interval" = "1",
         "projection.dt.interval.unit" = "HOURS"
       );
     ```

1. 以下の例に示すように、インベントリに対してさまざまなクエリを実行できるようになりました。`user input placeholder` を、ユーザー自身の情報に置き換えます。

   ```
   # Get a list of the latest inventory report dates available.
   SELECT DISTINCT dt FROM your_table_name ORDER BY 1 DESC limit 10;
             
   # Get the encryption status for a provided report date.
   SELECT encryption_status, count(*) FROM your_table_name WHERE dt = 'YYYY-MM-DD-HH-MM' GROUP BY encryption_status;
             
   # Get the encryption status for inventory report dates in the provided range.
   SELECT dt, encryption_status, count(*) FROM your_table_name 
   WHERE dt > 'YYYY-MM-DD-HH-MM' AND dt < 'YYYY-MM-DD-HH-MM' GROUP BY dt, encryption_status;
   ```

   オブジェクトアクセスコントロールリスト (オブジェクト ACL) フィールドをインベントリレポートに追加するように S3 インベントリを設定すると、レポートにはオブジェクト ACL フィールドの値が base64 エンコードされた文字列として表示されます。オブジェクト ACL フィールドのデコードされた値を JSON で取得するには、Athena を使用してこのフィールドをクエリできます。以下のクエリの例を参照してください。オブジェクト ACL フィールドの詳細については、「[オブジェクト ACL フィールドの使用](objectacl.md)」を参照してください。

   ```
   # Get the S3 keys that have Object ACL grants with public access.
   WITH grants AS (
       SELECT key,
           CAST(
               json_extract(from_utf8(from_base64(object_access_control_list)), '$.grants') AS ARRAY(MAP(VARCHAR, VARCHAR))
           ) AS grants_array
       FROM your_table_name
   )
   SELECT key,
          grants_array,
          grant
   FROM grants, UNNEST(grants_array) AS t(grant)
   WHERE element_at(grant, 'uri') = 'http://acs.amazonaws.com/groups/global/AllUsers'
   ```

   ```
   # Get the S3 keys that have Object ACL grantees in addition to the object owner.
   WITH grants AS 
       (SELECT key,
       from_utf8(from_base64(object_access_control_list)) AS object_access_control_list,
            object_owner,
            CAST(json_extract(from_utf8(from_base64(object_access_control_list)),
            '$.grants') AS ARRAY(MAP(VARCHAR, VARCHAR))) AS grants_array
       FROM your_table_name)
   SELECT key,
          grant,
          objectowner
   FROM grants, UNNEST(grants_array) AS t(grant)
   WHERE cardinality(grants_array) > 1 AND element_at(grant, 'canonicalId') != object_owner;
   ```

   ```
   # Get the S3 keys with READ permission that is granted in the Object ACL. 
   WITH grants AS (
       SELECT key,
           CAST(
               json_extract(from_utf8(from_base64(object_access_control_list)), '$.grants') AS ARRAY(MAP(VARCHAR, VARCHAR))
           ) AS grants_array
       FROM your_table_name
   )
   SELECT key,
          grants_array,
          grant
   FROM grants, UNNEST(grants_array) AS t(grant)
   WHERE element_at(grant, 'permission') = 'READ';
   ```

   ```
   # Get the S3 keys that have Object ACL grants to a specific canonical user ID.
   WITH grants AS (
       SELECT key,
           CAST(
               json_extract(from_utf8(from_base64(object_access_control_list)), '$.grants') AS ARRAY(MAP(VARCHAR, VARCHAR))
           ) AS grants_array
       FROM your_table_name
   )
   SELECT key,
          grants_array,
          grant
   FROM grants, UNNEST(grants_array) AS t(grant)
   WHERE element_at(grant, 'canonicalId') = 'user-canonical-id';
   ```

   ```
   # Get the number of grantees on the Object ACL.
   SELECT key,
          object_access_control_list,
          json_array_length(json_extract(object_access_control_list,'$.grants')) AS grants_count
   FROM your_table_name;
   ```

Athena の詳しい使用方法については、「[Amazon Athena ユーザーガイド](https://docs.aws.amazon.com/athena/latest/ug/)」を参照してください。

# Amazon S3 インベントリレポートの空のバージョン ID 文字列を NULL 文字列に変換します。
<a name="inventory-configure-bops"></a>

**注記**  
**以下の手順は、すべてのバージョンを含む Amazon S3 インベントリレポートにのみ適用されます。また、「すべてのバージョン」レポートが S3 バージョニングが有効になっているバケットの S3 バッチオペレーションのマニフェストとして使用される場合に限ります。**現在のバージョンのみを指定する S3 インベントリレポートの文字列を変換する必要もありません。

S3 インベントリレポートは、S3 バッチ操作のマニフェストとして使用できます。ただし、バケットで S3 バージョニングが有効になっている場合、すべてのバージョンを含む S3 インベントリレポートはバージョン ID フィールドに空の文字列で NULL バージョン対応オブジェクトをマークします。インベントリレポートにすべてのオブジェクトバージョン ID が含まれる場合、バッチ操作は `null` 文字列をバージョン ID として使用しますが、空の文字列ではありません。

S3 バッチ操作ジョブが「すべてのバージョン」S3 インベントリレポートをマニフェストとして使用すると、バージョン ID フィールドに空の文字列を含むオブジェクトのすべてのタスクが失敗します。S3 インベントリレポートのバージョン ID フィールドの空文字列をバッチ操作用の `null` 文字列に変換するには、次の手順を使用します。

**バッチ操作で使用するために Amazon S3 インベントリレポートを更新します。**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. S3 インベントリレポートに移動します。インベントリレポートの構成中に指定した宛先バケットにインベントリレポートを配置します。インベントリレポートの場所の詳細については、[インベントリリストの検索](storage-inventory-location.md) を参照してください。

   1. 宛先バケットを選択します。

   1. フォルダを選択します。フォルダの名前は、元のソースバケットにちなんで付けられます。

   1. インベントリ設定の名前が付いたフォルダを選択します。

   1. **hive** という名前のフォルダの横にあるチェックボックスを選択します。ページの上部で、[**S3 URI をコピーする**] を選択し、フォルダの S3 URI をコピーします。

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Amazon Athena コンソールを開きます。

1. クエリエディタで、[**設定**] を選択し、[**管理**] を選択します。リポジトリの [**設定の管理**] ページの **クエリ結果の場所** で、クエリ結果を保存する S3 バケットを選択します。

1. クエリエディタで、次のコマンドを使用して、インベントリレポートのデータを保持する Athena テーブルを作成します。任意の名前 `table_name` に置き換え、`LOCATION` 節に、以前にコピーした S3 URI を挿入します。その後、[**Run**] を選択してクエリを実行します。

   ```
   CREATE EXTERNAL TABLE table_name(bucket string, key string, version_id string) PARTITIONED BY (dt string)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' LOCATION 'Copied S3 URI';
   ```

1. クエリエディタをクリアするには、[**Clear**] を選択します。次のコマンドを使用して、インベントリレポートをテーブルにロードします。前のステップで選択したもの `table_name` に置き換えてください。その後、[**Run**] を選択してクエリを実行します。

   ```
   MSCK REPAIR TABLE table_name;
   ```

1. クエリエディタをクリアするには、[**Clear**] を選択します。以下の `SELECT` クエリを実行して、元のインベントリレポートのすべてのエントリを取得し、空のバージョン ID を `null` 文字列に置き換えます。先に選択したもの `table_name` に置き換え、節内 `YYYY-MM-DD-HH-MM` をこのツールを実行させたいインベントリー・レポートの日付 `WHERE` に置き換えます。次に [**Run**] を選択して、クエリを実行します。

   ```
   SELECT bucket as Bucket, key as Key, CASE WHEN version_id = '' THEN 'null' ELSE version_id END as VersionId FROM table_name WHERE dt = 'YYYY-MM-DD-HH-MM';
   ```

1. Amazon S3コンソール（[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)）に戻り、先ほど **クエリ結果の場所** として選択した S3 バケットに移動します。内部には、日付で終わる一連のフォルダがあるはずです。

   例えば、**s3://**amzn-s3-demo-bucket**/*query-result-location*/Unsaved/2021/10/07/** のようなものがあるはずです。実行した `.csv` クエリの結果を含む `SELECT` ファイルが表示されるはずです。

   最新の更新日の CSV ファイルを選択してください。次のステップのために、このファイルをローカル・マシンにダウンロードします。

1. 生成された CSV ファイルには、ヘッダー行が含まれています。この CSV ファイルを S3 バッチ操作ジョブの入力として使用するには、ヘッダー行を削除する必要があります。これは、バッチ操作では CSV マニフェストのヘッダー行をサポートしないためです。

   ヘッダー行を削除するには、ファイルで次のいずれかのコマンドを実行します。*`file.csv`* をCSV ファイルの名前に置き換えてください。

   **macOS および Linux マシンの場合**、ターミナル ウィンドウで `tail` コマンドを実行します。

   ```
   tail -n +2 file.csv > tmp.csv && mv tmp.csv file.csv 
   ```

   **Windows マシンの場合**、Windows PowerShell ウィンドウで次のスクリプトを実行します。`File-location` をファイルへのパスに置き換え、`file.csv` をファイルに置き換えます。

   ```
   $ins = New-Object System.IO.StreamReader File-location\file.csv
   $outs = New-Object System.IO.StreamWriter File-location\temp.csv
   try {
       $skip = 0
       while ( !$ins.EndOfStream ) {
           $line = $ins.ReadLine();
           if ( $skip -ne 0 ) {
               $outs.WriteLine($line);
           } else {
               $skip = 1
           }
       }
   } finally {
       $outs.Close();
       $ins.Close();
   }
   Move-Item File-location\temp.csv File-location\file.csv -Force
   ```

1. CSV ファイルからヘッダー行を削除したら、S3 バッチ操作ジョブのマニフェストとして使用する準備が整いました。CSV ファイルを S3 バケットまたは任意の場所にアップロードし、CSV ファイルをマニフェストとして使用して バッチ操作ジョブを作成します。

   バッチ操作のジョブの作成の詳細については、[S3 バッチオペレーションジョブの作成](batch-ops-create-job.md) を参照してください。

# オブジェクト ACL フィールドの使用
<a name="objectacl"></a>

Amazon S3 インベントリレポートは、S3 ソースバケット内のオブジェクトのリストと、各オブジェクトのメタデータを表示します。オブジェクトアクセスコントロールリスト (ACL) フィールドは、Amazon S3 インベントリで使用できるメタデータフィールドです。オブジェクト ACL フィールドは、特に各オブジェクトのアクセスコントロールリスト (ACL) を示します。オブジェクトの ACL は、このオブジェクトへのアクセスを許可する AWS アカウントまたはグループと、付与するアクセスの種類を定義します。詳細については、「[アクセスコントロールリスト (ACL) の概要](acl-overview.md)」および「[Amazon S3 インベントリのリスト](storage-inventory.md#storage-inventory-contents)」を参照してください。

 Amazon S3 インベントリレポートのオブジェクト ACL フィールドは、JSON 形式で定義します。JSON データには、以下のデータが含まれます。
+ `version` — インベントリレポートのオブジェクト ACL フィールド形式のバージョン。バージョンは日付形式 `yyyy-mm-dd` となります。
+ `status` — 指定できる値は `AVAILABLE` または `UNAVAILABLE` です。オブジェクトでオブジェクト ACL が使用できるかどうかを示します。オブジェクト ACL のステータスが `UNAVAILABLE` である場合、インベントリレポートのオブジェクト所有者フィールドの値も `UNAVAILABLE` になります。
+ `grants` — 被付与者とアクセス許可のペア。オブジェクト ACL から付与された被付与者ごとのアクセス許可のステータスを示します。被付与者に設定できる値は `CanonicalUser` および `Group` です。被付与者の詳細については、「[アクセスコントロールリストの被付与者](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#specifying-grantee)」を参照してください。

  `Group` タイプの被付与者の場合、付与者とアクセス許可のペアには以下の属性が含まれます。
  + `uri` — 事前定義された Amazon S3 グループ。
  + `permission` — オブジェクトに付与される ACL アクセス許可。詳細については、「[オブジェクトに対する ACL アクセス許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#permissions)」を参照してください。
  + `type` — タイプ `Group`。これは被付与者がグループであることを示します。

  `CanonicalUser` タイプの被付与者の場合、付与者とアクセス許可のペアには以下の属性が含まれます。
  + `canonicalId` — 難読化された形式の AWS アカウント ID。AWS アカウント の正規ユーザー ID は、そのアカウントに固有です。正規ユーザー ID を取得できます。詳細については、「*AWS Account Management リファレンスガイド*」の「[AWS アカウント の正規ユーザー ID を検索する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)」を参照してください。
  + `permission` — オブジェクトに付与される ACL アクセス許可。詳細については、「[オブジェクト対する ACL アクセス許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#permissions)」を参照してください。
  + `type` — タイプ `CanonicalUser`。これは、被付与者が AWS アカウントであることを示します。

次の例は、JSON 形式のオブジェクト ACL フィールドに指定できる値を示しています。

```
{
    "version": "2022-11-10",
    "status": "AVAILABLE",
    "grants": [{
        "uri": "http://acs.amazonaws.com/groups/global/AllUsers",
        "permission": "READ",
        "type": "Group"
    }, {
        "canonicalId": "example-canonical-id",
        "permission": "FULL_CONTROL",
        "type": "CanonicalUser"
    }]
}
```

**注記**  
オブジェクト ACL フィールドは JSON 形式で定義されます。インベントリレポートには、オブジェクト ACL フィールドの値が base64 エンコードされた文字列として表示されます。  
例えば、次のオブジェクト ACL フィールドが JSON 形式で存在するとします。  

```
{
        "version": "2022-11-10",
        "status": "AVAILABLE",
        "grants": [{
            "canonicalId": "example-canonical-user-ID",
            "type": "CanonicalUser",
            "permission": "READ"
        }]
}
```
オブジェクト ACL フィールドはエンコードされ、次の base64 エンコードされた文字列として表示されます。  

```
eyJ2ZXJzaW9uIjoiMjAyMi0xMS0xMCIsInN0YXR1cyI6IkFWQUlMQUJMRSIsImdyYW50cyI6W3siY2Fub25pY2FsSWQiOiJleGFtcGxlLWNhbm9uaWNhbC11c2VyLUlEIiwidHlwZSI6IkNhbm9uaWNhbFVzZXIiLCJwZXJtaXNzaW9uIjoiUkVBRCJ9XX0=
```
オブジェクト ACL フィールドのデコードされた値を JSON で取得するには、Amazon Athena でこのフィールドをクエリできます。クエリの例については、「[Amazon Athena で Amazon S3 インベントリをクエリする](storage-inventory-athena-query.md)」を参照してください。