CloudTrail userIdentity エレメント - AWS CloudTrail

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

CloudTrail userIdentity エレメント

AWS Identity and Access Management (IAM) は、さまざまなタイプの ID を提供します。-userIdentityエレメントには、リクエストを行った IAM ID のタイプとどの認証情報が使用されたかに関する詳細が含まれます。一時的認証情報が使用された場合、エレメントは、認証情報がどのように取得されたかを示します。

Examples

userIdentity IAM ユーザーの認証情報を使用して

以下に例を示します。userIdentityという名前の IAM ユーザー認証情報で行われた単純なリクエストのエレメント。Alice

"userIdentity": { "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }

userIdentity 一時的セキュリティ認証情報を使用する

以下に例を示します。userIdentityエレメントは、IAM ロールを引き受けることにより取得した一時的セキュリティ認証情報を使用して行われたリクエストです。エレメントには、認証情報を取得するために引き受けられたロールに関する追加の情報の詳細が含まれています。

"userIdentity": { "type": "AssumedRole", "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName", "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/MySessionName", "accountId": "123456789012", "accessKeyId": "", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "20131102T010628Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIDPPEZS35WEXAMPLE", "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed", "accountId": "123456789012", "userName": "RoleToBeAssumed" } } }

Fields

以下のフィールドは userIdentity エレメントに表示されます。

type

ID のタイプ。以下の値を指定できます。

  • Root— リクエストは、AWS アカウント認証情報で作成されました。userIdentity タイプが Root で、アカウントのエイリアスを設定した場合、userName フィールドには、アカウントエイリアスが含まれます。詳細については、「AWS アカウント ID とその別名」を参照してください。

  • IAMUser— リクエストが IAM ユーザーの認証情報で作成されました。

  • AssumedRole— リクエストは、AWS Security Token Service (AWS STS) への呼び出しを介して取得された一時的認証情報で行われました。AssumeRoleAPI。これには、Amazon EC2 のロールおよびクロスアカウント API アクセス

  • FederatedUser— リクエストは、AWS STS への呼び出しを介して取得した一時的認証情報で行われました。GetFederationTokenAPI。-sessionIssuerエレメントは、API がルートと IAM ユーザー認証情報のどちらを使用して呼び出されたかを示します。

    一時的なセキュリティ認証情報の詳細については、IAM ユーザーガイドの「IAM の一時的なセキュリティ認証情報」を参照してください。

  • Directory— 要求がディレクトリサービスに対して行われ、タイプが不明です。ディレクトリサービスには、次のものがあります。Amazon WorkDocs と Amazon QuickSight。

  • AWSAccount— リクエストが、別の AWS アカウントによって行われました。

  • AWSService— リクエストは、AWS サービスに属している AWS アカウントによって行われました。たとえば、AWS Elastic Beanstalk は、アカウントで IAM ロールを引き受けて、ユーザーに代わって他の AWS サービスを呼び出すようにします。

  • Unknown— リクエストは、CloudTrail が判断できない ID タイプで作成されました。

オプション: False

AWSAccountおよびAWSService以下に表示されます。type所有する IAM ロールを使用するクロスアカウントアクセスがある場合、ログに。

例: 別の AWS アカウントによって開始されたクロスアカウントアクセス

  1. アカウントには、IAM ロールがあります。

  2. 別の AWS アカウントは、アカウントのロールを引き受けるためにそのロールに切り替わります。

  3. IAM ロールを所有しているため、他のアカウントがロールを引き受けたことを示すログを受信します。type は、AWSAccount です。ログエントリの例については、」CloudTrail ログファイル内の AWS STS API イベント

例: AWS サービスによって開始されたクロスアカウントアクセス

  1. アカウントには、IAM ロールがあります。

  2. AWS サービスによって所有された AWS アカウントは、ロールを引き受けます。

  3. IAM ロールを所有しているため、AWS サービスがロールを引き受けたことを示すログを受信します。type は、AWSService です。

userName

呼び出しを行った ID のフレンドリ名。userName に表示される値は、type の値に基づいています。次の表は、typeuserName の関係を示しています。

type userName 説明
Root (エイリアスセットなし) なし AWS アカウントのエイリアスを設定していない場合、userNameフィールドは表示されません。アカウントエイリアスの詳細については、「AWS アカウント ID とそのエイリアス」を参照してください。Root は、ユーザー名ではなく ID の種類であるため、userName フィールドには、Root が含まれないことに注意してください。
Root (エイリアスセット) アカウントエイリアス AWS アカウントエイリアスの詳細については、「」を参照してください。AWS アカウント ID とその別名
IAMUser IAM ユーザーのユーザー名

AssumedRole

なし AssumedRole タイプの場合、sessionIssuer エレメントの一部として、sessionContext 内の userName フィールドを見つけることができます。エントリの例については、「Examples」を参照してください。
FederatedUser なし sessionContext および sessionIssuer セクションには、フェデレーションユーザーのセッションを発行した ID 関する情報が含まれています。
Directory 存在可能 たとえば、の値として、アカウントエイリアスまたは関連するAWS アカウント ID
AWSService なし
AWSAccount なし
Unknown 存在可能 たとえば、の値として、アカウントエイリアスまたは関連するAWS アカウント ID

オプション: True

注記

-userNameフィールドには、文字列HIDDEN_DUE_TO_SECURITY_REASONS記録されたイベントが正しくないユーザー名の入力によって引き起こされたコンソールサインインの失敗である場合。次の例のように、テキストに機密情報が含まれている可能性があるため、CloudTrail は、この場合コンテンツを記録しません。

  • ユーザーが誤ってユーザー名フィールドにパスワードを入力した。

  • ユーザーが AWS アカウントのサインインページのリンクをクリックしたが、別のアカウントのアカウント情報を入力した。

  • ユーザーが、個人の E メールアカウント、銀行のサインイン ID、その他のプライベート ID のアカウント名を誤って入力した。

principalId

呼び出しを行ったエンティティの一意の識別子 一時的セキュリティ認証情報で行われたリクエストの場合、この値には、AssumeRoleAssumeRoleWithWebIdentityGetFederationToken API 呼び出しに渡されるセッション名が含まれます。

オプション: True

arn

呼び出しを行ったプリンシパルの Amazon リソースネーム (ARN)。arn の最後のセクションには、呼び出しを行ったユーザーまたはロールが含まれています。

オプション: True

accountId

リクエストに対するアクセス許可を付与したエンティティを所有するアカウント。リクエストが、一時的セキュリティ認証情報で行われた場合、これは、認証情報を取得するために使用された IAM ユーザーまたはロールを所有するアカウントです。

オプション: True

accessKeyId

リクエストに署名するために使用された アクセスキー ID。リクエストが、一時的セキュリティ認証情報で行われた場合、これは、一時的認証情報のアクセスキー IDです。セキュリティ上の理由から、accessKeyIdが存在しないか、空の文字列として表示される可能性があります。

オプション: True

sessionContext

リクエストが、一時的なセキュリティ認証情報を使用して行われた場合、sessionContextこれらの認証情報のために作成されたセッションに関する情報を提供します。一時的認証情報を返す API が呼び出されると、セッションが作成されます。セッションは、ユーザーがコンソールで作業するときや、ユーザーが多要素認証を含む API を使用してリクエストを行うときにも作成されます。このエレメントの属性は次のとおりです。

  • creationDate– 一時的セキュリティ認証情報が発行された日付と時刻。ISO 8601 の基本表記で表されます。

  • mfaAuthenticated— この値はtrueリクエストに認証情報が使用されたルートユーザーまたは IAM ユーザーが、MFA デバイスで認証された場合、そうでない場合は、です。false

  • sourceIdentity— 参照AWS STS ソースアイデンティティこのトピックの「」を参照してください。-sourceIdentityフィールドは、ユーザーがアクションを実行するために IAM ロールを引き受けるときにイベントで発生します。sourceIdentityは、リクエストを行う元のユーザー ID を識別します。そのユーザーの ID が IAM ユーザー、IAM ロール、SAML ベースのフェデレーションを使用して認証されたユーザー、OpenID Connect (OIDC) 準拠のウェブ ID フェデレーションを使用して認証されたユーザーのいずれであるかを示します。ソース ID 情報を収集するように AWS STS を設定する方法の詳細については、「」を参照してください。引き受けた役割で実行されるアクションの監視と制御()IAM ユーザーガイド

オプション: True

invokedBy

リクエストを行った AWS サービスの名前。たとえば、Amazon EC2 Auto Scaling や AWS Elastic Beanstalk など。

オプション: True

sessionIssuer

リクエストが一時的セキュリティ認証情報を使用して行われた場合、認証情報がどのように取得されたかに関する情報を提供するエレメント。たとえば、一時的セキュリティ認証情報が、ロールを引き受けることで取得された場合、このエレメントは、引き受けたロールに関する情報を提供します。認証情報が AWS STS を呼び出すためのルートまたは IAM ユーザー認証情報で取得された場合GetFederationTokenの場合、エレメントは、ルートアカウントまたは IAM ユーザーに関する情報を提供します。このエレメントの属性は次のとおりです。

  • typeRootIAMUserRole などの一時的セキュリティ認証情報のソース。

  • userName– セッションを発行したユーザーまたはロールのフレンドリ名。表示される値は、sessionIssuer ID type によって異なります。次の表は、sessionIssuer typeuserName の関係を示しています。

    sessionIssuer type userName 説明
    Root (エイリアスセットなし) なし アカウントのエイリアスを設定していない場合、userName フィールドは表示されません。AWS アカウントエイリアスの詳細については、「」を参照してください。AWS アカウント ID とその別名Root は、ユーザー名ではなく ID の種類であるため、userName フィールドには、Root が含まれないことに注意してください。
    Root (エイリアスセット) アカウントエイリアス AWS アカウントエイリアスの詳細については、「」を参照してください。AWS アカウント ID とその別名
    IAMUser IAM ユーザーのユーザー名 これは、フェデレーションユーザーが、IAMUser によって発行されたセッションを使用している場合にも適用されます。
    Role ロール名 ロールセッションで IAM ユーザー、AWS サービス、ウェブ ID フェデレーションユーザーによって引き継がれるロール。
  • principalId – 認証情報を取得するために使用されたエンティティの内部 ID。

  • arn— 一時的セキュリティ認証情報を取得するために使用されたソース (アカウント、IAM ユーザー、ロール) の ARN。

  • accountId – 認証情報を取得するために使用されたエンティティを所有するアカウント。

オプション: True

webIdFederationData

リクエストが、ウェブ ID フェデレーションによって取得された一時的セキュリティ認証情報で行われた場合、ID プロバイダーに関する情報をリストするエレメント。このエレメントの属性は次のとおりです。

  • federatedProvider – ID プロバイダーのプリンシパル名 (たとえば、Login with Amazon の場合は、www.amazon.com、Google の場合は、accounts.google.com)。

  • attributes— プロバイダーからレポートされるアプリケーションの ID とユーザー ID (たとえば、www.amazon.com:app_idおよびwww.amazon.com:user_idLogin with Amazon)。詳細については、「」を参照してください。ウェブ ID フェデレーションで利用可能なキー()IAM ユーザーガイド

オプション: True

SAML とウェブ ID フェデレーションを使用する AWS STS API の値

AWS CloudTrail は、Security Assertion Markup Language (SAML) とウェブ ID フェデレーションを使用して実行された AWS Security Token Service (AWS STS) API 呼び出しをログに記録できるようになりました。呼び出しが行われたとき、AssumeRoleWithSAMLおよびAssumeRoleWithWebIdentityAPI を使用する場合、CloudTrail は、コールを記録し、イベントを Amazon S3 バケットに配信します。

これらの API の userIdentity エレメントには、次の値が含まれています。

type

ID のタイプ。

  • SAMLUser – リクエストは、SAML アサーションを使用して行われました。

  • WebIdentityUser – リクエストは、ウェブ ID フェデレーションプロバイダーによって行われました。

principalId

呼び出しを行ったエンティティの一意の識別子

  • SAMLUser の場合、これは、saml:namequalifier キーと saml:sub キーの組み合わせです。

  • WebIdentityUser の場合は、これは、発行者、アプリケーション ID、ユーザー ID の組み合わせです。

userName

呼び出しを行った ID の名前。

identityProvider

外部 ID プロバイダーのプリンシパル名。このフィールドは、SAMLUser または WebIdentityUser タイプに対してのみ表示されます。

  • SAMLUser の場合、これは、SAML アサーションの saml:namequalifier キーです。

  • WebIdentityUser の場合、これは、ウェブ ID フェデレーションプロバイダーの発行者の名前です。これは、次のように設定したプロバイダーになります。

    • cognito-identity.amazon.comAmazon Cognito 向け

    • Login with Amazon の場合 www.amazon.com

    • Google の場合 accounts.google.com

    • Facebook の場合 graph.facebook.com

AssumeRoleWithWebIdentity アクションの userIdentity エレメントの例を次に示します。

"userIdentity": { "type": "WebIdentityUser", "principalId": "accounts.google.com:application-id.apps.googleusercontent.com:user-id", "userName": "user-id", "identityProvider": "accounts.google.com" }

たとえば、userIdentityエレメントは、SAMLUserおよびWebIdentityUserタイプ、詳細については、AWS CloudTrail を使用した IAM イベントのログ記録

AWS STS ソースアイデンティティ

IAM 管理者は、一時的な認証情報を使用してロールを引き受けるときに、ユーザーが自分の ID を指定するように要求するように AWS Security Token Service を設定できます。-sourceIdentityfild は、ユーザーが IAM ロールを引き受けるとき、または引き受けたロールでアクションを実行するときに発生するイベントです。

-sourceIdentityフィールドは、リクエストを行う元のユーザー ID を識別します。そのユーザーの ID が IAM ユーザー、IAM ロール、SAML ベースのフェデレーションを使用して認証されたユーザー、OpenID Connect (OIDC) 準拠のウェブ ID フェデレーションを使用して認証されたユーザーのいずれであるかを示します。IAM 管理者が AWS STS を設定した後、CloudTrail ログsourceIdentity情報をイベントレコード内の次のイベントと場所に保存します。

  • AWS STSAssumeRole,AssumeRoleWithSAML, またはAssumeRoleWithWebIdentityは、ロールを引き受けるときにユーザ ID が行う呼び出しです。sourceIdentityは、requestParametersブロック。

  • AWS STSAssumeRole,AssumeRoleWithSAML, またはAssumeRoleWithWebIdentityは、ロールを使用して別のロールを引き受ける場合に、ユーザー ID が行う呼び出し (ロールの連鎖sourceIdentityは、requestParametersブロック。

  • AWS サービス API は、ロールを引き受け、AWS STS によって割り当てられた一時的な認証情報を使用しながら、ユーザー ID が実行する ID を呼び出します。サービス API イベントでは、sourceIdentityは、sessionContextブロック。たとえば、ユーザー ID によって新しい S3 バケットが作成された場合、sourceIdentityの [] で、sessionContextブロックのCreateBucketevent.

ソース ID 情報を収集するように AWS STS を設定する方法の詳細については、「」を参照してください。引き受けた役割で実行されるアクションの監視と制御()IAM ユーザーガイド。CloudTrail に記録される AWS STS イベントの詳細については、AWS CloudTrail を使用した IAM と AWS STS API コールのログ記録()IAM ユーザーガイド

以下に示すイベントのスニペットの例です。sourceIdentityフィールド。

requestParametersセクションを開いて、

次のイベントスニペットの例では、ユーザーが AWS STSAssumeRoleリクエストを作成し、ソースアイデンティティを設定します。ここでソース ID 値セット。ユーザーは、ロール ARN で表されるロールを引き受けます。arn:aws:iam::123456789012:role/Assumed_Role。-sourceIdentityフィールドがrequestParametersブロック。

"eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "accountId": "123456789012" }, "eventTime": "2020-04-02T18:20:53Z", "eventSource": "sts.amazonaws.com", "eventName": "AssumeRole", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.64", "userAgent": "aws-cli/1.16.96 Python/3.6.0 Windows/10 botocore/1.12.86", "requestParameters": { "roleArn": "arn:aws:iam::123456789012:role/Assumed_Role", "roleSessionName": "Test1", "sourceIdentity": "source-identity-value-set", },

responseElementsセクションを開いて、

次のイベントスニペットの例では、ユーザーが AWS STSAssumeRoleリクエストがロールを引き受けます。Developer_Roleを呼び出し、ソースアイデンティティAdmin。ユーザーは、ロール ARN で表されるロールを引き受けます。arn:aws:iam::111122223333:role/Developer_Role。-sourceIdentityフィールドは、requestParametersおよびresponseElementsイベントのブロック。ロールを引き受けるために使用される一時的な認証情報、セッショントークン文字列、引き受けるロール ID、セッション名、セッション ARN は、responseElementsブロックを、ソース ID とともに取得します。

"requestParameters": { "roleArn": "arn:aws:iam::111122223333:role/Developer_Role", "roleSessionName": "Session_Name", "sourceIdentity": "Admin" }, "responseElements": { "credentials": { "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "expiration": "Jan 22, 2021 12:46:28 AM", "sessionToken": "XXYYaz... EXAMPLE_SESSION_TOKEN XXyYaZAz" }, "assumedRoleUser": { "assumedRoleId": "AROACKCEVSQ6C2EXAMPLE:Session_Name", "arn": "arn:aws:sts::111122223333:assumed-role/Developer_Role/Session_Name" }, "sourceIdentity": "Admin" } ...

sessionContextセクションを開いて、

次のイベントスニペットの例では、ユーザーはDevRoleを使用して AWS サービス API を呼び出します。ユーザーは、ソースIDを設定します。ここでソース ID 値セット。-sourceIdentityフィールドがsessionContextブロック内で、userIdentityブロック。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAJ45Q7YFFAREXAMPLE: Dev1", "arn": "arn: aws: sts: : 123456789012: assumed-role/DevRole/Dev1", "accountId": "123456789012", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAJ45Q7YFFAREXAMPLE", "arn": "arn: aws: iam: : 123456789012: role/DevRole", "accountId": "123456789012", "userName": "DevRole" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-02-21T23: 46: 28Z" }, "sourceIdentity": "source-identity-value-set" } } }