

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

# Amazon ECR のモニタリング
<a name="monitoring"></a>

Amazon CloudWatch を使用して Amazon ECR API の使用状況をモニタリングすることで、Amazon ECR から raw データを収集し、リアルタイムに近い読み取り可能なメトリクスに加工することができます。これらの統計情報は 2 週間記録されるため、履歴情報にアクセスして API の使用状況を把握できます。Amazon ECR のメトリクスデータは 1 分間隔で自動的に CloudWatch に送信されます。CloudWatch の詳細については、[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)を参照してください。

Amazon ECR には、認可、イメージプッシュ、およびイメージプルアクションの API の使用状況に基づいたメトリクスが用意されています。

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

次のステップでは、さまざまなタイミングと負荷条件でパフォーマンスを測定することにより、お客様の環境で通常の Amazon ECR のパフォーマンスのベースラインを確定します。Amazon ECR のモニタリングでは、過去のモニタリングデータを保存し、新しいパフォーマンスデータと比較することで、パフォーマンスの通常パターンと異常パターンを特定し、問題に対処する方法を考案できます。

**Topics**
+ [サービスクォータの可視化とアラームの設定](monitoring-quotas-alarms.md)
+ [Amazon ECR 使用状況メトリクス](monitoring-usage.md)
+ [Amazon ECR 使用状況レポート](usage-reports.md)
+ [Amazon ECR リポジトリメトリクス](ecr-repository-metrics.md)
+ [Amazon ECR イベントと EventBridge](ecr-eventbridge.md)
+ [を使用した Amazon ECR アクションのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)

# サービスクォータの可視化とアラームの設定
<a name="monitoring-quotas-alarms"></a>

CloudWatch コンソールを使用して、サービスクォータを可視化し、サービスクォータと照らして現在の使用状況を確認できます。クォータに近づいたときに通知されるようにアラームを設定することもできます。

**サービスクォータを可視化し、オプションでアラームを設定するには**

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

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. **[すべてのメトリクス]** タブで **[使用状況]** を選択し、**[ AWS リソース]** を選択します。

   サービスクォータ使用状況メトリクスのリストが表示されます。

1. いずれかのメトリクスの横にあるチェックボックスをオンにします。

   グラフには、その AWS リソースの現在の使用状況が表示されます。

1. サービスクォータをグラフに追加するには、次の手順を実行します。

   1. [**グラフ化したメトリクス**] タブを選択します。

   1. [**Math expression (数式)**]、[**Start with an empty expression (空の式で開始)**] の順に選択します。次に、新しい行の [**Details (詳細)**] に「**SERVICE\$1QUOTA(m1)**」と入力します。

      グラフに新しい行が追加され、メトリクスで表されるリソースのサービスクォータが表示されます。

1. 現在の使用状況をクォータの割合として表示するには、新しい式を追加するか、現在の [**SERVICE\$1QUOTA**] 式を変更します。新しい式には、**m1/60/SERVICE\$1QUOTA(m1)\$1100** を使用します。

1. （オプション）サービスクォータに近づいた場合に通知するアラームを設定するには、次の手順を実行します。

   1. **m1/60/SERVICE\$1QUOTA(m1)\$1100** 行の [**Actions (アクション)**] で、アラームアイコンを選択します。それはベルのように見えます。

      アラーム作成ページが表示されます。

   1. [**Conditions (条件)**] で、[**Threshold type (しきい値の種類)**] が [**Static (静的)**] で、[**Whenever Expression1 is (式 1)]** が [**Greater (大きい)**] に設定されていることを確認します。[**than (以上)**] に「**80**」と入力します。これにより、使用量がクォータの 80% を超えたときに ALARM 状態になるアラームが作成されます。

   1. [**次へ**] を選択します。

   1. 次のページで、Amazon SNS トピックを選択するか、新しいトピックを作成します。このトピックは、アラームが ALARM 状態になったときに通知されます。次いで、**[次へ]** を選択します。

   1. 次のページで、アラームの名前と説明を入力し、[**Next**] (次へ) を選択します。

   1. [**アラームの作成**] を選択します。

# Amazon ECR 使用状況メトリクス
<a name="monitoring-usage"></a>

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

Amazon ECR 使用状況メトリクスは、 AWS サービスクォータに対応しています。使用量がサービスクォータに近づいたときに警告するアラームを設定することもできます。Amazon ECR のサービスのクォータの詳細については、「[Amazon ECR のサービスクォータ](service-quotas.md)」を参照してください。

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


|  メトリクス  |  説明  | 
| --- | --- | 
|  `CallCount`  |  アカウントからの API アクションの呼び出し回数。リソースはメトリクスに関連付けられたディメンションによって定義されます。 このメトリクスの最も便利な統計は `SUM` であり、定義した期間中のすべての寄稿者からの値の合計を表します。  | 
|  `ResourceCount`  |  アカウントの指定されたリソースの数。リソースはメトリクスに関連付けられたディメンションによって定義されます。 このメトリクスの最も有用な統計は です。これは`MAXIMUM`、5 分間に使用されるリソースの最大数を表します。  | 

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


|  ディメンション  |  説明  | 
| --- | --- | 
|  `Service`  |  リソースを含む AWS サービスの名前。Amazon ECR 使用状況メトリクスの場合、このディメンションの値は `ECR` です。  | 
|  `Type`  |  報告されるエンティティタイプ。現在、Amazon ECR API 使用状況メトリクスの有効な値は のみです`API`。  | 
|  `Resource`  |  実行中のリソースタイプ。現在、Amazon ECR は以下の API アクションの API の使用状況に関する情報を返します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  Class  |  追跡されているリソースのクラス。現在、Amazon ECR はクラスディメンションを使用していません。  | 

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


|  ディメンション  |  説明  | 
| --- | --- | 
|  `Service`  |  リソースを含む AWS サービスの名前。Amazon ECR 使用状況メトリクスの場合、このディメンションの値は `ECR` です。  | 
|  `Type`  |  報告されるエンティティタイプ。現在、Amazon ECR リソース使用状況メトリクスの有効な値は のみです`RESOURCE`。  | 
|  `Resource`  |  実行中のリソースタイプ。現在、Amazon ECR は、次のメトリクスのリソース使用状況に関する情報を返します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  `ResourceId`  |  使用量が発生したリソースの識別子。現在、ResourceId は にのみ関連`ImagesPerRepositoryCount`し、その値は repository/your\$1repository\$1name としてフォーマットされています。たとえば、「repository/my-repo」は、リポジトリ内のイメージの数を「my-repo」という名前で返します。  | 

# Amazon ECR 使用状況レポート
<a name="usage-reports"></a>

AWS には、Amazon ECR リソースのコストと使用状況を分析できる Cost Explorer と呼ばれる無料のレポートツールが用意されています。

Cost Explorer を使用して、使用状況とコストのグラフを表示します。過去 13 か月からデータを表示でき、また次の 3 か月間にどのくらい使用する可能性があるかを予測します。時間の経過に伴う AWS リソースの使用量パターンを確認して、さらに照会が必要な分野を識別し、コストの把握に役立つ傾向を確認するには、Cost Explorer を使用します。データの時間範囲を指定したり、時間データを日または月ごとに表示したりもできます。

コストおよび使用状況レポートの計測データには、すべての Amazon ECR リポジトリの使用状況が示されます。詳細については、「[請求用のリソースにタグを付ける](ecr-using-tags.md#tag-resources-for-billing)」を参照してください。

 AWS コストと使用状況レポートの作成の詳細については、「 *AWS Billing ユーザーガイド*」の[AWS 「コストと使用状況レポート](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html)」を参照してください。

# Amazon ECR リポジトリメトリクス
<a name="ecr-repository-metrics"></a>

Amazon ECR はリポジトリのプルカウントメトリクスを Amazon CloudWatch に送信します。Amazon ECR のメトリクスデータは 1 分間隔で自動的に CloudWatch に送信されます。CloudWatch の詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

**Topics**
+ [CloudWatch メトリクスの有効化](#enable_cloudwatch)
+ [使用できるメトリクスとディメンション](#available_cloudwatch_metrics)
+ [CloudWatch コンソールを使用して Amazon ECR メトリクスを表示するには](#viewing_metrics_console)

## CloudWatch メトリクスの有効化
<a name="enable_cloudwatch"></a>

Amazon ECR は、すべてのリポジトリのリポジトリメトリクスを自動的に送信します。手動の手順を実行する必要はありません。

## 使用できるメトリクスとディメンション
<a name="available_cloudwatch_metrics"></a>

以下のセクションでは、 Amazon ECR が Amazon CloudWatchに送信するメトリクスとディメンションを一覧表示しています。

### Amazon ECR メトリクス
<a name="ecr-metrics"></a>

Amazon ECR には、リポジトリをモニタリングするためのメトリクスが用意されています。プルカウントを測定できます。

`AWS/ECR` 名前空間には、次のメトリクスが含まれます。

`RepositoryPullCount`  
リポジトリ内のイメージのプルの総数。  
有効なディメンション: `RepositoryName`。  
有効な統計: 平均、最小、最大、合計、サンプル数。最も有用な統計は Sum です。  
単位: 整数。

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

Amazon ECR メトリクスは `AWS/ECR` 名前空間を使用し、以下のディメンションのメトリクスを提供しています。

`RepositoryName`  
このディメンションは、指定したリポジトリのすべてのコンテナイメージに対してリクエストしたデータをフィルターします。

## CloudWatch コンソールを使用して Amazon ECR メトリクスを表示するには
<a name="viewing_metrics_console"></a>

CloudWatch コンソールで Amazon ECR レポジトリメトリクスを表示できます。CloudWatch コンソールは、リポジトリの詳細でカスタマイズ可能な表示を提供します。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

# Amazon ECR イベントと EventBridge
<a name="ecr-eventbridge"></a>

Amazon EventBridge を使用すると、 AWS サービスを自動化し、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに自動的に対応できます。 AWS のサービスからのイベントは、ほぼリアルタイムに EventBridge に提供されます。簡単なルールを作成し、ルールで対象とするイベントを指定し、イベントがルールに一致した場合に自動的に実行するアクションを含めることができます。自動的にトリガーできるオペレーションには、以下が含まれます。
+ CloudWatch Logs のロググループへのイベントの追加
+  AWS Lambda 関数の呼び出し
+ Amazon EC2 Run Command の呼び出し
+ Amazon Kinesis Data Streams へのイベントの中継
+  AWS Step Functions ステートマシンのアクティブ化
+ Amazon SNS トピックまたは Amazon SQS キューの通知

詳細については、*Amazon EventBridge ユーザーガイド*の「[Amazon EventBridge の開始方法](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)」を参照してください 。

## Amazon ECR のサンプルイベント
<a name="ecr-eventbridge-bus"></a>

以下に、Amazon ECR のイベントの例を示します。イベントは、ベストエフォートベースで出力されます。

**完了したイメージプッシュのイベント**

各イメージプッシュが完了すると、以下のイベントが送信されます。詳細については、「[Amazon ECR プライベートリポジトリへの Docker イメージのプッシュ](docker-push-ecr-image.md)」を参照してください。

```
{
    "version": "0",
    "id": "13cde686-328b-6117-af20-0e5566167482",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T01:54:34Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "PUSH",
        "image-tag": "latest"
    }
}
```

**プルスルーキャッシュアクションのイベント**

プルスルーキャッシュアクションが試行されると、次のイベントが送信されます。詳細については、「[アップストリームレジストリと Amazon ECR プライベートレジストリの同期](pull-through-cache.md)」を参照してください。

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Pull Through Cache Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2023-02-29T02:36:48Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecr:us-west-2:123456789012:repository/docker-hub/alpine"
    ],
    "detail": {
        "rule-version": "1",
        "sync-status": "SUCCESS",
        "ecr-repository-prefix": "docker-hub",
        "repository-name": "docker-hub/alpine",
        "upstream-registry-url": "public.ecr.aws",
        "image-tag": "3.17.2",
        "image-digest": "sha256:4aa08ef415aecc80814cb42fa41b658480779d80c77ab15EXAMPLE",
    }
}
```

**完了したイメージスキャンのイベント (ベーシックスキャン)**

レジストリでベーシックスキャンを有効にすると、各イメージスキャンが完了した際、以下のイベントが送信されます。`finding-severity-counts` パラメータは、重要度レベルが存在する場合にのみ、その値を返します。たとえば、イメージに `CRITICAL` レベルの結果が含まれていない場合、重要度のカウントは返されません。詳細については、「[Amazon ECR でイメージをスキャンして OS 脆弱性がないか調べる](image-scanning-basic.md)」を参照してください。

**注記**  
拡張スキャンが有効なときに Amazon Inspector によって発行されるイベントの詳細については、[Amazon ECR の拡張スキャンについて送信される EventBridge イベント](image-scanning-enhanced-events.md) を参照してください。

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Image Scan",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-10-29T02:36:48Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecr:us-east-1:123456789012:repository/my-repository-name"
    ],
    "detail": {
        "scan-status": "COMPLETE",
        "repository-name": "my-repository-name",
        "finding-severity-counts": {
	       "CRITICAL": 10,
	       "MEDIUM": 9
	     },
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "image-tags": []
    }
}
```

**拡張スキャンが有効なリソースについての変更通知のイベント (拡張スキャン)**

レジストリで拡張スキャンが有効になっている場合、拡張スキャンが有効になっているリソースで変更があった際、Amazon ECR から次のイベントが送信されます。これには、新しいリポジトリの作成、リポジトリのスキャン頻度の変更、または拡張スキャンが有効になっているリポジトリでのイメージの作成または削除が含まれます。詳しくは、「[Amazon ECR でイメージをスキャンしてソフトウェア脆弱性がないか調べる](image-scanning.md)」を参照してください。

```
{
	"version": "0",
	"id": "0c18352a-a4d4-6853-ef53-0ab8638973bf",
	"detail-type": "ECR Scan Resource Change",
	"source": "aws.ecr",
	"account": "123456789012",
	"time": "2021-10-14T20:53:46Z",
	"region": "us-east-1",
	"resources": [],
	"detail": {
		"action-type": "SCAN_FREQUENCY_CHANGE",
		"repositories": [{
				"repository-name": "repository-1",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-1",
				"scan-frequency": "SCAN_ON_PUSH",
				"previous-scan-frequency": "MANUAL"
			},
			{
				"repository-name": "repository-2",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-2",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			},
			{
				"repository-name": "repository-3",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-3",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			}
		],
		"resource-type": "REPOSITORY",
		"scan-type": "ENHANCED"
	}
}
```

**イメージ削除のイベント**

イメージが削除されると、以下のイベントが送信されます。詳細については、「[Amazon ECR でのイメージの削除](delete_image.md)」を参照してください。

```
{
    "version": "0",
    "id": "dd3b46cb-2c74-f49e-393b-28286b67279d",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T02:01:05Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "DELETE",
        "image-tag": "latest"
    }
}
```

**イメージアーカイブアクションのイベント**

イメージがアーカイブされると、次のイベントが送信されます。`target-storage-class` フィールドは に設定されます`ARCHIVE`。イベントには、アーカイブされるコンテンツのタイプを識別するためのマニフェストメディアタイプとアーティファクトメディアタイプが含まれます。

```
{
    "version": "0",
    "id": "4f5ec4d5-4de4-7aad-a046-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T00:58:09Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "ARCHIVE",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json"
    }
}
```

**イメージ復元アクションのイベント**

アーカイブされたイメージが復元されると、次のイベントが送信されます。`target-storage-class` フィールドは に設定されます`STANDARD`。イベントには、イメージが最後に復元された日時を示す`last-activated-at`フィールドが含まれます。

```
{
    "version": "0",
    "id": "7b8fc5e6-5ef5-8bbe-b157-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:15:22Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**リファラー復元アクションのイベント**

アーカイブされたリファラ (SBOM、署名、認証などの参照アーティファクト) が復元されると、次のイベントが送信されます。`detail-type` は、通常のイメージアクションと区別`ECR Referrer Action`するためのものです。フィールド`manifest-media-type`と `artifact-media-type`フィールドは、復元されるリファラの特定のタイプを識別します。この例では、SBOM アーティファクトが復元されています。

```
{
    "version": "0",
    "id": "8c9gd6f7-6fg6-9ccf-c268-EXAMPLE",
    "detail-type": "ECR Referrer Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:20:45Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "sbom",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.cncf.oras.artifact.manifest.v1+json",
        "artifact-media-type": "text/sbom+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**完了したイメージレプリケーションに関するイベント**

各イメージレプリケーションが完了すると、次のイベントが送信されます。詳細については、「[Amazon ECR でのプライベートイメージレプリケーション](replication.md)」を参照してください。

```
{
  "version": "0",
  "id": "c8b133b1-6029-ee73-e2a1-4f466b8ba999",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:44:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/docker-hub/alpine"
  ],
  "detail": {
    "result": "SUCCESS",
    "repository-name": "docker-hub/alpine",
    "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "3.17.2"
  }
}
```

**失敗したイメージレプリケーションに関するイベント**

イメージレプリケーションが失敗すると、次のイベントが送信されます。`result` フィールドには `FAILED` が含まれ、イベントの詳細に追加のエラー情報が含まれる場合があります。

```
{
  "version": "0",
  "id": "d9c244c2-7130-ff84-f3b2-5g577c9cb000",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:45:12Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/my-app"
  ],
  "detail": {
    "result": "FAILED",
    "repository-name": "my-app",
    "image-digest": "sha256:8g6c3751gf7gc5g47603ege4511d5a80ead5g90f5893543f1489bde2345",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "latest"
  }
}
```

# を使用した Amazon ECR アクションのログ記録 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon ECR は AWS CloudTrail、Amazon ECR のユーザー、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています。CloudTrail は、次の Amazon ECR アクションをイベントとしてキャプチャします。
+ Amazon ECR コンソールからのコールを始めとするすべての API コール
+ リポジトリの暗号化設定によって実行されたすべてのアクション
+ 成功アクションと失敗アクションの両方を含む、ライフサイクルポリシールールによって実行されるすべてのアクション
**重要**  
個々の CloudTrail イベントのサイズ制限により、10 個以上のイメージが期限切れになるライフサイクルポリシーアクションの場合、Amazon ECR が複数のイベントを CloudTrail に送信します。また、Amazon ECR には、イメージごとに最大 100 個のタグが含まれます。

証跡を作成すると、Amazon ECR のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。この情報を使用して、Amazon ECR に対して行われたリクエスト、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を特定できます。

詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

## CloudTrail の Amazon ECR 情報
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail は、 AWS アカウントの作成時にアカウントで有効になります。Amazon ECR でアクティビティが発生すると、そのアクティビティは [**Event history (イベント履歴)**] の他の AWS のサービスのイベントとともに CloudTrail イベントに記録されます。 AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

Amazon ECR のイベントなど、 AWS アカウントのイベントの継続的な記録については、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。コンソールで証跡を作成する場合、証跡を単一のリージョンまたはすべてのリージョンに適用できます。証跡は AWS パーティション内のイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、その他の AWS サービスを設定して、CloudTrail ログで収集したデータを分析し、それに基づく対応を行うことができます。詳細については、以下を参照してください。
+ [AWS アカウントの証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS CloudTrail ログとの サービス統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ 「[CloudTrail の Amazon SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)」
+ [CloudTrail ログファイルを複数のリージョンから受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)、[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

すべてのAmazon ECR API アクションは、CloudTrail が記録し、[Amazon Elastic Container Registry API リファレンス](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/)で説明されています。一般的なタスクを実行すると、そのタスクに含まれる各 API アクションのセクションが CloudTrail ログファイルに生成されます。たとえば、リポジトリを作成すると、`GetAuthorizationToken`、`CreateRepository`、`SetRepositoryPolicy` のセクションが CloudTrail ログファイルに生成されます。イメージをリポジトリ、、、`InitiateLayerUpload``UploadLayerPart``CompleteLayerUpload`、 `PutImage`にプッシュすると、BLOB マウントが有効になっている場合、`MountLayer`セクションが生成されます。イメージをプルすると、`GetDownloadUrlForLayer` と `BatchGetImage` のセクションが生成されます。アーカイブまたは復元すると、イメージ`UpdateImageStorageClass`セクションが生成されます。OCI 1.1 仕様をサポートする OCI クライアントが、Referrers API を使用してイメージのリファラーまたはリファレンスアーティファクトのリストを取得すると、`ListImageReferrers` CloudTrail イベントが発行されます。これらの一般的なタスクの例については、「[CloudTrail ログエントリの例](#cloudtrail-examples)」を参照してください。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
+ リクエストが、ルートと ユーザー認証情報のどちらを使用して送信されたか
+ リクエストの送信に使用された一時的なセキュリティ認証情報に、ロールとフェデレーテッドユーザーのどちらが使用されたか
+ リクエストが別の AWS サービスによって行われたかどうか

詳細については、[CloudTrail `userIdentity` 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)を参照してください。

## Amazon ECR ログファイルエントリの理解
<a name="understanding-service-name-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルには、ログエントリが 1 つ以上あります。イベントは任意の発生元からの 1 つのリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、公開 API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

### CloudTrail ログエントリの例
<a name="cloudtrail-examples"></a>

いくつかの一般的な Amazon ECR タスクの CloudTrail ログエントリの例を次に示します。

これらの例は、読みやすくするために書式設定されています。CloudTrail ログファイルでは、すべてのエントリとイベントが単一の行に連結されています。さらに、この例は 1 つの Amazon ECR エントリに限定しています。実際の CloudTrail ログファイルには、複数の AWS サービスからのエントリとイベントが表示されます。

**重要**  
**sourceIPAddress** はリクエストが行われた IP アドレスです。サービスコンソールから行われたアクションの場合、報告されるアドレスは、コンソールウェブサーバーではなく、基礎となるリソースのものです。のサービスの場合 AWS、DNS 名のみが表示されます。クライアントソース IP が AWS サービス DNS 名に置き換えられている場合でも、認証の評価はその IP を使用して行われます。

**Topics**
+ [例: リポジトリの作成アクション](#cloudtrail-examples-create-repository)
+ [例: Amazon ECR リポジトリの作成時の AWS KMS `CreateGrant` API アクション](#cloudtrail-examples-create-repository-kms)
+ [例: イメージプッシュアクション](#cloudtrail-examples-push-image)
+ [例: イメージプルアクション](#cloudtrail-examples-image-pull)
+ [例: イメージライフサイクルポリシーアクション](#cloudtrail-examples-lcp)
+ [例: イメージアーカイブアクション](#cloudtrail-examples-image-archive)
+ [例: イメージ復元アクション](#cloudtrail-examples-image-restore)
+ [例: イメージリファラーアクション](#cloudtrail-examples-image-referrers-action)

#### 例: リポジトリの作成アクション
<a name="cloudtrail-examples-create-repository"></a>

以下の例は、`CreateRepository` アクションを示す CloudTrail ログエントリです。

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-07-11T21:54:07Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            }
        }
    },
    "eventTime": "2018-07-11T22:17:43Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "CreateRepository",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "repositoryName": "testrepo"
    },
    "responseElements": {
        "repository": {
            "repositoryArn": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "repositoryName": "testrepo",
            "repositoryUri": "123456789012.dkr.ecr.us-east-2.amazonaws.com/testrepo",
            "createdAt": "Jul 11, 2018 10:17:44 PM",
            "registryId": "123456789012"
        }
    },
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "accountId": "123456789012"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### 例: Amazon ECR リポジトリの作成時の AWS KMS `CreateGrant` API アクション
<a name="cloudtrail-examples-create-repository-kms"></a>

次の例は、KMS 暗号化を有効にして Amazon ECR リポジトリを作成するときの AWS KMS `CreateGrant`アクションを示す CloudTrail ログエントリを示しています。KMS 暗号化を有効にして作成されたリポジトリごとに、2 つの `CreateGrant` ログエントリが CloudTrail に表示されます。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAIEP6W46J43IG7LXAQ",
        "arn": "arn:aws:iam::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Mary_Major",
        "sessionContext": {
            "sessionIssuer": {
                
            },
            "webIdFederationData": {
                
            },
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2020-06-10T19:22:10Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-06-10T19:22:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "keyId": "4b55e5bf-39c8-41ad-b589-18464af7758a",
        "granteePrincipal": "ecr.us-west-2.amazonaws.com",
        "operations": [
            "GenerateDataKey",
            "Decrypt"
        ],
        "retiringPrincipal": "ecr.us-west-2.amazonaws.com",
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecr:arn": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo"
            }
        }
    },
    "responseElements": {
        "grantId": "3636af9adfee1accb67b83941087dcd45e7fadc4e74ff0103bb338422b5055f3"
    },
    "requestID": "047b7dea-b56b-4013-87e9-a089f0f6602b",
    "eventID": "af4c9573-c56a-4886-baca-a77526544469",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:123456789012:key/4b55e5bf-39c8-41ad-b589-18464af7758a"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### 例: イメージプッシュアクション
<a name="cloudtrail-examples-push-image"></a>

以下の例は、`PutImage` アクションを使用するイメージのプッシュの CloudTrail ログエントリを示しています。

**注記**  
イメージをプッシュすると、`InitiateLayerUpload`、`UploadLayerPart`、および `CompleteLayerUpload` の参照も CloudTrail ログに表示されます。

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "PutImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageTag": "latest",
		"registryId": "123456789012",
		"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}"
	},
	"responseElements": {
		"image": {
			"repositoryName": "testrepo",
			"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}",
			"registryId": "123456789012",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
				"imageTag": "latest"
			}
		}
	},
	"requestID": "cf044b7d-5f9d-11e9-9b2a-95983139cc57",
	"eventID": "2bfd4ee2-2178-4a82-a27d-b12939923f0f",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### 例: イメージプルアクション
<a name="cloudtrail-examples-image-pull"></a>

以下の例は、`BatchGetImage` アクションを使用するイメージのプルの CloudTrail ログエントリを示しています。

**注記**  
イメージをプルすると、すでにイメージがローカルにない場合、`GetDownloadUrlForLayer` の参照もCloudTrail ログに表示されます。

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T17:23:20Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "BatchGetImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "ecr.amazonaws.com",
	"userAgent": "ecr.amazonaws.com",
	"requestParameters": {
		"imageIds": [{
			"imageTag": "latest"
		}],
		"acceptedMediaTypes": [
			"application/json",
			"application/vnd.oci.image.manifest.v1+json",
			"application/vnd.oci.image.index.v1+json",
			"application/vnd.docker.distribution.manifest.v2+json",
			"application/vnd.docker.distribution.manifest.list.v2+json",
			"application/vnd.docker.distribution.manifest.v1+prettyjws"
		],
		"repositoryName": "testrepo",
		"registryId": "123456789012"
	},
	"responseElements": null,
	"requestID": "2a1b97ee-5fa3-11e9-a8cd-cd2391aeda93",
	"eventID": "c84f5880-c2f9-4585-9757-28fa5c1065df",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### 例: イメージライフサイクルポリシーアクション
<a name="cloudtrail-examples-lcp"></a>

次の例は、ライフサイクルポリシールールによってイメージの期限が切れたことを示す CloudTrail ログエントリを示しています。このイベントタイプは、イベント名フィールドの `PolicyExecutionEvent` をフィルタリングすることによって検索できます。

ライフサイクルポリシーのプレビューをテストすると、Amazon ECR は、`PolicyExecutionEvent` とまったく同じ構造で、`DryRunEvent` のイベント名フィールドが CloudTrail ログエントリを生成します。イベント名を `DryRunEvent` に変更することで、代わりにドライランイベントをフィルタリングできます。

**重要**  
個々の CloudTrail イベントのサイズ制限により、10 個以上のイメージが期限切れになるライフサイクルポリシーアクションの場合、Amazon ECR が複数のイベントを CloudTrail に送信します。また、Amazon ECR には、イメージごとに最大 100 個のタグが含まれます。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "PolicyExecutionEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-9aac-4e9d-956d-12561a4923aa",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "lifecycleEventPolicy": {
            "lifecycleEventRules": [
                {
                    "rulePriority": 1,
                    "description": "remove all images > 2",
                    "lifecycleEventSelection": {
                        "tagStatus": "Any",
                        "tagPrefixList": [],
                        "countType": "Image count more than",
                        "countNumber": 2
                    },
                    "action": "expire"
                }
            ],
            "lastEvaluatedAt": 0,
            "policyVersion": 1,
            "policyId": "ceb86829-58e7-9498-920c-aa042e33037b"
        },
        "lifecycleEventImageActions": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "alpine"
                    ],
                    "pushedAt": 1584042813000
                },
                "rulePriority": 1
            },
            {
                "lifecycleEventImage": {
                    "digest": "sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "centos"
                    ],
                    "pushedAt": 1584042842000
                },
                "rulePriority": 1
            }
        ],
        "lifecycleEventFailureDetails": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:9117e1bc28cd20751e584b4ccd19b1178d14cf02d134b04ce6be0cc51bff762a",
                    "tagStatus": "Untagged",
                    "tagList": [],
                    "pushedAt": 1584042844000
                },
                "rulePriority": 1,
                "failureCode": "ImageReferencedByManifestList",
                "failureReason": "Requested image referenced by manifest list: [sha256:4b27c83d44a18c31543039d9e8b2786043ec6c8d00804d5800c5148d6b6f65bc]"
            }
        ]
    }
}
```

#### 例: イメージアーカイブアクション
<a name="cloudtrail-examples-image-archive"></a>

次の例は、 を `targetStorageClass`に設定して `UpdateImageStorageClass`アクションを使用してアーカイブされているイメージを示す CloudTrail ログエントリを示しています`ARCHIVE`。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "ARCHIVE",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ARCHIVED"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

#### 例: イメージ復元アクション
<a name="cloudtrail-examples-image-restore"></a>

次の例は、復元されるイメージを示す CloudTrail ログエントリを示しています。アーカイブされたイメージを復元すると、次の 2 つのイベントが生成されます。

1. 復元が開始されたときの API コールイベント

1. 非同期復元オペレーションが完了したときのサービスイベント

**API コールイベント (復元開始)**

次の例は、 を `targetStorageClass`に設定して `UpdateImageStorageClass`アクションを使用してイメージを復元するための最初の API コールを示しています`STANDARD`。レスポンスには、イメージのステータスが と表示されます`ACTIVATING`。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "STANDARD",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ACTIVATING"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

**サービスイベント (復元の完了)**

次の例は、非同期復元オペレーションの完了時に生成されるサービスイベントを示しています。このイベントタイプは、イベント名フィールドの `ImageActivationEvent` をフィルタリングすることによって検索できます。`serviceEventDetails` セクションには、復元結果と最終的なイメージステータスが含まれます。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ImageActivationEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
        "targetStorageClass": "STANDARD",
        "result": "SUCCESS",
        "imageStatus": "ACTIVE"
    },
    "eventCategory": "Management"
}
```

#### 例: イメージリファラーアクション
<a name="cloudtrail-examples-image-referrers-action"></a>

次の例は、OCI 1.1準拠クライアントが `Referrers` API を使用してイメージのリファラーまたはリファレンスアーティファクトのリストを取得するタイミングを示す AWS CloudTrail ログエントリを示しています。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-10-08T16:38:39Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        },
        "invokedBy": "ecr.amazonaws.com"
    },
    "eventTime": "2024-10-08T17:22:51Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ListImageReferrers",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "ecr.amazonaws.com",
    "userAgent": "ecr.amazonaws.com",
    "requestParameters": {
        "registryId": "123456789012",
        "repositoryName": "testrepo",
        "subjectId": {
            "imageDigest": "sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a"
        },
        "nextToken": "urD72mdD/mC8b5-EXAMPLE"
    },
    "responseElements": null,
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```