AWS CloudTrail を使用した Amazon SageMaker AI API コールのログ記録 - Amazon SageMaker AI

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

AWS CloudTrail を使用した Amazon SageMaker AI API コールのログ記録

Amazon SageMaker AI は、ユーザー、ロール、または AWS のサービス が実行したアクションの記録を提供するサービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon SageMaker AI へのすべての API コールをイベントとしてキャプチャします。キャプチャされるコールには、Amazon SageMaker AI コンソールからのコールと、Amazon SageMaker AI API オペレーションへのコードコールが含まれます。CloudTrail で収集された情報を使用して、Amazon SageMaker AI に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。

  • ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか。

  • リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

  • リクエストが、別の AWS のサービス によって送信されたかどうか。

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

AWS アカウント過去 90 日間のイベントの継続的な記録については、証跡または CloudTrail Lake イベントデータストアを作成します。

CloudTrail 証跡

証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。を使用して作成されたすべての証跡AWS マネジメントコンソールはマルチリージョンです。AWS CLI を使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウントAWS リージョン内のすべての でアクティビティをキャプチャするため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョン に記録されたイベントのみを表示できます。証跡の詳細については、「AWS CloudTrail ユーザーガイド」の「AWS アカウントの証跡の作成」および「組織の証跡の作成」を参照してください。

証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。Amazon S3 の料金に関する詳細については、「Amazon S3 の料金」を参照してください。

CloudTrail Lake イベントデータストア

[CloudTrail Lake] を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを Apache ORC 形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントは、イベントデータストアに集約されます。イベントデータストアは、高度なイベントセレクタを適用することによって選択する条件に基づいた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、 AWS CloudTrailユーザーガイドAWS CloudTrail「Lake の使用」を参照してください。

CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する料金オプションを選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。

セキュリティ目的で、CloudTrail ログをモニタリングして異常なユーザーアクティビティを特定できます。ログのモニタリングの詳細については、「ログ記録とモニタリング」を参照してください。

CloudTrail の Amazon SageMaker AI データイベント

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

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。

CloudTrail コンソール、AWS CLI、または CloudTrail API オペレーションを使用して、さまざまな Amazon SageMaker AI リソースタイプのデータイベントをログ記録できます。データイベントをログに記録する方法の詳細については、「AWS CloudTrail ユーザーガイド」の「AWS マネジメントコンソール を使用したデータイベントのログ記録」および「AWS Command Line Interface を使用したデータイベントのログ記録」を参照してください。

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

リソースタイプ (コンソール) resources.type 値 CloudTrail にログ記録されたデータ API
SageMaker エンドポイント AWS::SageMaker::Endpoint
注記

InvokeEndpoint および InvokeEndpointAsync API コールではリクエストパラメータがログに記録されません。

eventNamereadOnly、および resources.ARN フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。オブジェクトの詳細については、「AWS CloudTrail API リファレンス」の「AdvancedFieldSelector」を参照してください。

次の例は、Amazon SageMaker エンドポイントのデータイベントをログに記録する方法を示しています。この例では、put-event-selectors AWS CLI コマンドを使用して、エンドポイントからデータイベントをキャプチャする高度なイベントセレクタを追加しています。既存の CloudTrail 証跡が必要です。コマンドを実行する前に、次のようなファイルに高度なイベントセレクタ JSON オブジェクトを保存することもできます。

[ { "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:sagemaker:us-east-1:111122223333:endpoint/your-inference-endpoint-arn"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::Endpoint"] } ] } ]

次に、以下のコマンドを実行して、エンドポイントからデータイベントのログ記録を開始できます。

aws cloudtrail put-event-selectors --trail-name your-trail-name --advanced-event-selectors=file://advanced-event-selectors.json # specify your previously created JSON file

CloudTrail の Amazon SageMaker AI 管理イベント

管理イベントは、 のリソースで実行される管理オペレーションに関する情報を提供しますAWS アカウント。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。

Amazon SageMaker AI は、すべての Amazon SageMaker AI コントロールプレーンオペレーションを管理イベントとして記録します。Amazon SageMaker AI が CloudTrail にログ記録する Amazon SageMaker AI コントロールプレーンオペレーションのリストについては、Amazon SageMaker AI API リファレンスを参照してください。

自動モデル調整によって実行されるオペレーション

SageMaker AI は、自動モデル調整ジョブのために、CloudTrail ログファイルへの非 API サービスイベントのログ記録をサポートします。これらのイベントは調整ジョブに関連していますが、パブリック AWSAPI への顧客リクエストの直接的な結果ではありません。例えば、CreateHyperParameterTuningJob を呼び出してハイパーパラメータ調整ジョブを作成すると、SageMaker AI は、さまざまなハイパーパラメータの組み合わせを評価して最善の結果を見つけるトレーニングジョブを作成します。同様に、StopHyperParameterTuningJob を呼び出してハイパーパラメータ調整ジョブを停止すると、SageMaker AI は関連する実行中のトレーニングジョブをすべて停止することがあります。調整ジョブの非 API イベントは CloudTrail に記録され、AWSアカウントのガバナンス、コンプライアンス、運用およびリスク監査の改善に役立ちます。

非 API サービスイベントから発生するログエントリの eventType は、AwsApiCall ではなく AwsServiceEvent です。

Amazon SageMaker AI イベントの例

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

次の例は、CreateEndpoint オペレーションを示す CloudTrail イベントを示しています。

{ "eventVersion":"1.05", "userIdentity": { "type":"IAMUser", "principalId":"AIXDAYQEXAMPLEUMLYNGL", "arn":"arn:aws:iam::123456789012:user/intern", "accountId":"123456789012", "accessKeyId":"ASXIAGXEXAMPLEQULKNXV", "userName":"intern" }, "eventTime":"2018-01-02T13:39:06Z", "eventSource":"sagemaker.amazonaws.com", "eventName":"CreateEndpoint", "awsRegion":"us-west-2", "sourceIPAddress":"127.0.0.1", "userAgent":"USER_AGENT", "requestParameters": { "endpointName":"ExampleEndpoint", "endpointConfigName":"ExampleEndpointConfig" }, "responseElements": { "endpointArn":"arn:aws:sagemaker:us-west-2:123456789012:endpoint/exampleendpoint" }, "requestID":"6b1b42b9-EXAMPLE", "eventID":"a6f85b21-EXAMPLE", "eventType":"AwsApiCall", "recipientAccountId":"444455556666" }

次の例は、CreateModel オペレーションを示す CloudTrail イベントを示しています。

{ "eventVersion":"1.05", "userIdentity": { "type":"IAMUser", "principalId":"AIXDAYQEXAMPLEUMLYNGL", "arn":"arn:aws:iam::123456789012:user/intern", "accountId":"123456789012", "accessKeyId":"ASXIAGXEXAMPLEQULKNXV", "userName":"intern" }, "eventTime":"2018-01-02T15:23:46Z", "eventSource":"sagemaker.amazonaws.com", "eventName":"CreateModel", "awsRegion":"us-west-2", "sourceIPAddress":"127.0.0.1", "userAgent":"USER_AGENT", "requestParameters": { "modelName":"ExampleModel", "primaryContainer": { "image":"174872318107.dkr.ecr.us-west-2.amazonaws.com/kmeans:latest" }, "executionRoleArn":"arn:aws:iam::123456789012:role/EXAMPLEARN" }, "responseElements": { "modelArn":"arn:aws:sagemaker:us-west-2:123456789012:model/barkinghappy2018-01-02t15-23-32-275z-ivrdog" }, "requestID":"417b8dab-EXAMPLE", "eventID":"0f2b3e81-EXAMPLE", "eventType":"AwsApiCall", "recipientAccountId":"444455556666" }

CloudTrail レコードの内容については、「AWS CloudTrail ユーザーガイド」の「CloudTrail record contents」を参照してください。