

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

# を使用した CodeArtifact API コールのログ記録 AWS CloudTrail
<a name="codeartifact-information-in-cloudtrail"></a>

CodeArtifact は[AWS CloudTrail](https://aws.amazon.com/cloudtrail)、CodeArtifact のユーザー、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています。CloudTrailは、パッケージマネージャークライアントからの呼び出しを含む、CodeArtifact のすべての APIコールをイベントとしてキャプチャします。

追跡を作成する場合は、 CodeArtifactへのイベントを含む、Amazon Simple Storage Service (Amazon S3) バケットへの CloudTrailイベントの継続的な配信を有効にすることができます。追跡を設定しない場合でも、CloudTrailコンソールの [**Event history (イベント履歴)**] でほとんどの最新のイベントを表示できます。CloudTrailで収集された情報を使用して、CodeArtifactに対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

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

## CloudTrailのCodeArtifact情報
<a name="codeartifact-information-in-cloudtrail"></a>

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

CodeArtifact のイベントなど、 AWS アカウントのイベントの継続的な記録については、*証跡*を作成します。追跡により、CloudTrail はログファイルを Simple Storage Service (Amazon S3) バケットに配信できます。デフォルトでは、コンソールで作成した証跡がすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。その他の AWS サービスを設定して、CloudTrailログに収集されたイベントデータをより詳細に分析し、それに基づく対応を行うこともできます。詳細については、以下の各トピックを参照してください。
+  [AWS アカウントに対する追跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) 
+  [CloudTrail がサポートするサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html) 
+  [CloudTrail 用 Amazon SNS 通知の構成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html) 

 AWS アカウントで CloudTrail ログ記録が有効になっている場合、CodeArtifact アクションに対して行われた API コールは CloudTrail ログファイルで追跡され、他の AWS サービスレコードとともに書き込まれます。CloudTrailは、期間とファイルサイズに基づいて、新しいファイルをいつ作成して書き込むかを決定します。

すべてのCodeArtifactのアクションは、CloudTrailによりログに記録されます。たとえば、 `ListRepositories` (、`aws codeartifact list-repositories`) AWS CLI、 `CreateRepository` (`aws codeartifact create-repository`)、 `ListPackages` (`aws codeartifact list-packages`) の各アクションを呼び出すと、パッケージマネージャーのクライアントコマンドに加えて、CloudTrail ログファイルにエントリが生成されます。パッケージマネージャーのクライアントコマンドは、通常、サーバーに対して複数の HTTP リクエストを行います。各リクエストは、別々の CloudTrailログイベントを生成します。

### CloudTrailログのクロスアカウント配信
<a name="codeartifact-cloudtrail-event-delivery"></a>

1 回の API コールに対して、最大3つの個別のアカウントが CloudTrailログを受信します。
+ リクエストを行ったアカウント。例えば、`GetAuthorizationToken`を呼び出したアカウント。
+ リポジトリ管理者アカウント。例えば、`ListPackages`が呼び出されたリポジトリを管理するアカウント。
+ ドメイン所有者のアカウント。例えば、APIが呼び出されたリポジトリがあり、そのリポジトリを含むドメインを所有するアカウント。

`ListRepositoriesInDomain`のように、特定のリポジトリではなくドメインに対するアクションである APIについては、呼び出したアカウントとドメイン所有者のアカウントのみが CloudTrailのログを受け取ります。どのリソースに対しても認証されていない`ListRepositories`のような API の場合、発信者元のアカウントのみが CloudTrailログを受け取ります。

## CodeArtifactログファイルエントリについて
<a name="understanding-codeartifact-log-file-entries"></a>

CloudTrail ログファイルには、1 つ以上のログエントリを含むことができます。各エントリには、複数の JSON 形式のイベントがリストされます。ログイベントは任意のソースからの1つのリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメーターなどに関する情報が含まれます。ログエントリは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

**Topics**
+ [例: GetAuthorizationToken API を呼び出すためのログエントリ](#example-a-log-entry-for-calling-the-getauthorizationtoken-api)
+ [例: npm パッケージバージョンを取得するためのログエントリ](#example-a-log-entry-for-fetching-an-npm-package-version)

### 例: GetAuthorizationToken API を呼び出すためのログエントリ
<a name="example-a-log-entry-for-calling-the-getauthorizationtoken-api"></a>

 `[GetAuthorizationToken](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html)`によって作成されるログエントリには、`requestParameters`フィールドのドメイン名が含まれます。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
      "type": "AssumedRole",
      "principalId": "AIDACKCEVSQ6C2EXAMPLE",
      "arn": "arn:aws:sts::123456789012:assumed-role/Console/example",
      "accountId": "123456789012",
      "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
      "sessionContext": {
          "attributes": {
              "mfaAuthenticated": "false",
              "creationDate": "2018-12-11T13:31:37Z"
          },
          "sessionIssuer": {
              "type": "Role",
              "principalId": "AIDACKCEVSQ6C2EXAMPLE",
              "arn": "arn:aws:iam::123456789012:role/Console",
              "accountId": "123456789012",
              "userName": "Console"
          }
      }
  },
  "eventTime": "2018-12-11T13:31:37Z",
  "eventSource": "codeartifact.amazonaws.com",
  "eventName": "GetAuthorizationToken",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "205.251.233.50",
  "userAgent": "aws-cli/1.16.37 Python/2.7.10 Darwin/16.7.0 botocore/1.12.27",
  "requestParameters": {
      "domainName": "example-domain"
      "domainOwner": "123456789012"
  },
  "responseElements": {
      "sessionToken": "HIDDEN_DUE_TO_SECURITY_REASONS"
  },
  "requestID": "6b342fc0-5bc8-402b-a7f1-ffffffffffff",
  "eventID": "100fde01-32b8-4c2b-8379-ffffffffffff",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "recipientAccountId": "123456789012"
}
```

### 例: npm パッケージバージョンを取得するためのログエントリ
<a name="example-a-log-entry-for-fetching-an-npm-package-version"></a>

** `npm` ** クライアントを含むすべてのパッケージマネージャークライアントからのリクエストには、ドメイン名、リポジトリ名、パッケージ名などの追加データが`requestParameters`フィールドに記録されます。URL パスとHTTPメソッドは、`additionalEventData` フィールドに記録されます。

```
{
   "eventVersion": "1.05",
   "userIdentity": {
       "type": "AssumedRole",
       "principalId": "AIDACKCEVSQ6C2EXAMPLE",
       "arn": "arn:aws:sts::123456789012:assumed-role/Console/example",
       "accountId": "123456789012",
       "accessKeyId": "ASIAIJIOBJIBSREXAMPLE",
       "sessionContext": {
           "attributes": {
               "mfaAuthenticated": "false",
               "creationDate": "2018-12-17T02:05:16Z"
           },
           "sessionIssuer": {
               "type": "Role",
               "principalId": "AIDACKCEVSQ6C2EXAMPLE",
               "arn": "arn:aws:iam::123456789012:role/Console",
               "accountId": "123456789012",
               "userName": "Console"
           }
       }
   },
   "eventTime": "2018-12-17T02:05:46Z",
   "eventSource": "codeartifact.amazonaws.com",
   "eventName": "ReadFromRepository",
   "awsRegion": "us-west-2",
   "sourceIPAddress": "205.251.233.50",
   "userAgent": "npm/6.14.15 node/v12.22.9 linux x64 ci/custom",
   "requestParameters": {
       "domainName": "example-domain",
       "domainOwner": "123456789012",
       "repositoryName": "example-repo",
       "packageName": "lodash",
       "packageFormat": "npm",
       "packageVersion": "4.17.20"
   },
   "responseElements": null,
   "additionalEventData": {
       "httpMethod": "GET",
       "requestUri": "/npm/lodash/-/lodash-4.17.20.tgz"
   },
   "requestID": "9f74b4f5-3607-4bb4-9229-ffffffffffff",
   "eventID": "c74e40dd-8847-4058-a14d-ffffffffffff",
   "readOnly": true,
   "eventType": "AwsApiCall",
   "recipientAccountId": "123456789012"
}
```