

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 署名付きリクエストの識別
<a name="identifying-requests"></a>

## 署名付き URL を使用したリクエストの識別
<a name="requests"></a>

Amazon S3 には[、Amazon S3 サーバーのアクセスログとデータイベントというリクエストレベルで使用状況をモニタリングするための 2 つの組み込みメカニズム](https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html)が用意されています。どちらのメカニズムでも、署名付き URL の使用状況を特定できます。 Amazon S3 AWS CloudTrail  

署名付き URL の使用についてログをフィルタリングするには、 認証タイプを使用できます。サーバーアクセスログについては、[Authentication Type フィールド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html#:~:text=Authentication%20Type) を調べます。これは、Amazon Athena テーブルで定義されているときに、通常 [authtype](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-s3-access-logs-to-identify-requests.html#:~:text=authtype) という名前になります。については CloudTrail、 `additionalEventData`フィールド[AuthenticationMethod](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudtrail-logging-understanding-s3-entries.html#:~:text=AuthenticationMethod)で を調べます。どちらの場合も、署名付き URLs を使用するリクエストのフィールド値は ですが`QueryString`、 `AuthHeader` は他のほとんどのリクエストの値です。

`QueryString` の使用が、署名付き URLsに常に関連しているとは限りません。検索を署名付き URL の使用のみに制限するには、クエリ文字列パラメータ を含むリクエストを検索します`X-Amz-Expires`。サーバーアクセスログについては、[Request-URI](https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html#:~:text=Request%2DURI) を調べ、クエリ文字列に `X-Amz-Expires`パラメータがあるリクエストを探します。 については CloudTrail、 `requestParameters`要素の `X-Amz-Expires`要素を調べます。

```
{"Records": [{…, "requestParameters": {…, "X-Amz-Expires": "300"}}, …]}
```

次の Athena クエリはこのフィルターを適用します。

```
SELECT * FROM {athena-table} WHERE
  authtype = 'QueryString' AND 
  request_uri LIKE '%X-Amz-Expires=%';
```

 AWS CloudTrail Lake の場合、次のクエリがこのフィルターを適用します。

```
SELECT * FROM {data-store-event-id} WHERE 
  additionalEventData['AuthenticationMethod'] = 'QueryString' AND 
  requestParameters['X-Amz-Expires'] IS NOT NULL
```

## 他のタイプの署名付きリクエストの特定
<a name="other"></a>

POST リクエストには、Amazon S3 サーバーアクセスログと `HtmlForm`に一意の認証タイプ もあります CloudTrail。この認証タイプはあまり一般的ではないため、これらのリクエストが環境で見つからない場合があります。

次の Athena クエリは、 のフィルターを適用します`HtmlForm`。

```
SELECT * FROM {athena-table} WHERE 
  authtype = 'HtmlForm';
```

 CloudTrail Lake の場合、次のクエリがフィルターを適用します。

```
SELECT * FROM {data-store-event-id} WHERE 
  additionalEventData['AuthenticationMethod'] = 'HtmlForm'
```

## リクエストパターンの識別
<a name="patterns"></a>

署名付きリクエストは、前のセクションで説明した方法を使用して確認できます。ただし、そのデータを役に立てるようにするには、パターンを見つける必要があります。クエリの簡単な`TOP 10`結果からインサイトが得られる場合がありますが、それだけでは不十分な場合は、次の表のグループ化オプションを使用してください。


| **グループ化オプション** | **サーバーアクセスログ** | **CloudTrail レイク** | **説明**  | 
| --- | --- | --- | --- | 
| **User agent** | `GROUP BY useragent` | `GROUP BY userAgent` | このグループ化オプションは、リクエストのソースと目的を見つけるのに役立ちます。ユーザーエージェントはユーザー提供であり、認証または認可メカニズムとしては信頼性がありません。ただし、ほとんどのクライアントは、少なくとも部分的に人間が読み取れる一意の文字列を使用しているため、パターンを探している場合は多くのことが明らかになる可能性があります。 | 
| **リクエスタ** | `GROUP BY requester` | `GROUP BY userIdentity['arn']` | このグループ化オプションは、リクエストに署名した IAM プリンシパルを見つけるのに役立ちます。これらのリクエストをブロックしたり、既存のリクエストの例外を作成したりすることが目的の場合、これらのクエリはその目的に十分な情報を提供します。IAM のベストプラクティスに従ってロールを使用すると、ロールの所有者が明確に識別され、その情報を使用して詳細を確認できます。 | 
| **送信元 IP アドレス** | `GROUP BY remoteip` | `GROUP BY sourceIPAddress` | このオプションは、Amazon S3 に到達する前の最後のネットワーク変換ホップでグループ化します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/presigned-url-best-practices/identifying-requests.html)<br />このデータは、ネットワーク制御を課すことを目標としている場合に役立ちます。異なるネットワークがプライベート IP アドレスを重複させる可能性があるため、ソースを明確にするために、このオプションを `endpoint` (サーバーアクセスログの場合) や `vpcEndpointId` ( CloudTrail Lake の場合) などのデータと組み合わせる必要がある場合があります。 | 
| **S3 バケット名** | `GROUP BY bucket_name` | `GROUP BY requestParameters['bucketName']` | このグループ化オプションは、リクエストを受信したバケットを検索するのに役立ちます。これにより、例外の必要性を特定できます。 | 