

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 中記錄和監控 AWS Identity and Access Management
<a name="security-logging-and-monitoring"></a>

監控是維護 AWS Identity and Access Management (IAM)、 AWS Security Token Service (AWS STS) 和其他 AWS 解決方案的可靠性、可用性和效能的重要部分。 AWS 提供數種工具來監控您的 AWS 資源並回應潛在事件：
+ *AWS CloudTrail* 會將 IAM 和 的所有 API 呼叫擷取 AWS STS 為事件，包括來自主控台的呼叫和 API 呼叫。若要進一步了解如何搭配 IAM 和 使用 CloudTrail AWS STS，請參閱 [使用 記錄 IAM 和 AWS STS API 呼叫 AWS CloudTrail](cloudtrail-integration.md)。如需有關 CloudTrail 的相關資訊，請參閱 [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。
+ *AWS Identity and Access Management 和 Access Analyzer* 可協助您識別組織和帳戶中與外部實體共用的資源，例如 Amazon S3 儲存貯體或 IAM 角色。這有助於您發現非預期存取資源和資料的情況，避免產生安全性風險。若要進一步了解，請參閱 [什麼是 IAM Access Analyzer？](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。
+ *Amazon CloudWatch* AWS 會即時監控您的 AWS 資源和您在 上執行的應用程式。您可以收集和追蹤指標、建立自訂儀板表，以及設定警示，在特定指標達到您指定的閾值時通知您或採取動作。例如，您可以讓 CloudWatch 追蹤 CPU 使用量或其他 Amazon EC2 執行個體指標，並在需要時自動啟動新的執行個體。如需詳細資訊，請參閱 [Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。
+ *Amazon CloudWatch Logs* 可讓您監控、存放和存取來自 Amazon EC2 執行個體、CloudTrail 及其他來源的日誌檔案。CloudWatch Logs 可監控日誌檔案中的資訊，並在達到特定閾值時通知您。您也可以將日誌資料存檔在高耐用性的儲存空間。如需詳細資訊，請參閱 [Amazon CloudWatch Logs 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)。

如需適用於 IAM 的其他資源和安全最佳實務，請參閱 [中的安全最佳實務和使用案例 AWS Identity and Access Management](best-practices-use-cases.md)。

**Topics**
+ [使用 記錄 IAM 和 AWS STS API 呼叫 AWS CloudTrail](cloudtrail-integration.md)
+ [在 中追蹤特殊權限任務 AWS CloudTrail](cloudtrail-track-privileged-tasks.md)

# 使用 記錄 IAM 和 AWS STS API 呼叫 AWS CloudTrail
<a name="cloudtrail-integration"></a>

IAM 和 AWS STS 與 整合 AWS CloudTrail，此服務提供 IAM 使用者或角色所採取動作的記錄。CloudTrail 會將 IAM 和 的所有 API 呼叫擷取 AWS STS 為事件，包括來自主控台和 API 呼叫的呼叫。若您建立追蹤，便可將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體，包括 的事件。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的 **Event history (事件歷史記錄)** 檢視最新事件。您可以使用 CloudTrail 來取得對 IAM 或 提出之請求的相關資訊 AWS STS。例如，您可以檢視發出請求的 IP 地址、發出請求的人員及時間，以及其他詳細資訊。

若要進一步了解 CloudTrail，請參閱《[AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)》。

**Topics**
+ [CloudTrail 中的 IAM 和 AWS STS 資訊](#iam-info-in-cloudtrail)
+ [記錄 IAM 和 AWS STS API 請求](#cloudtrail-integration_apis)
+ [記錄對 AWS 其他服務的 API 請求](#cloudtrail-integration_api-other-services)
+ [記錄使用者登入事件](#cloudtrail-integration_signin-users)
+ [記錄暫時憑證的登入事件](#cloudtrail-integration_signin-tempcreds)
+ [CloudTrail 日誌中的 IAM API 事件範例](#cloudtrail-integration_examples-iam-api)
+ [CloudTrail 日誌中的範例 AWS STS API 事件](#cloudtrail-integration_examples-sts-api)
+ [CloudTrail 日誌中的範例登入事件](#cloudtrail-integration_examples-signin)
+ [IAM 角色信任政策行為](#cloudtrail-integration_role-trust-behavior)

## CloudTrail 中的 IAM 和 AWS STS 資訊
<a name="iam-info-in-cloudtrail"></a>

當您建立帳戶 AWS 帳戶 時，您的 上會啟用 CloudTrail。當 IAM 或 中發生活動時 AWS STS，該活動會記錄在 CloudTrail 事件中，以及**事件歷史記錄**中的其他服務 AWS 事件。您可以在 中檢視、搜尋和下載最近的事件 AWS 帳戶。如需詳細資訊，請參閱《使用 CloudTrail 事件歷史記錄檢視事件》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

若要持續記錄 中的事件 AWS 帳戶，包括 IAM 和 的事件 AWS STS，請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設，當您在主控台建立線索時，線索會套用到所有 區域。線索會記錄 AWS 分割區中所有區域的事件，並將日誌檔案傳送到您指定的 Amazon S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析和處理 CloudTrail 日誌中收集的事件資料。如需詳細資訊，請參閱：
+ [建立追蹤的概觀](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-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)

CloudTrail 會記錄所有 IAM 和 AWS STS 動作，並記錄在 [IAM API 參考](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html)和 [AWS Security Token Service API 參考](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html)中。

## 記錄 IAM 和 AWS STS API 請求
<a name="cloudtrail-integration_apis"></a>

CloudTrail 會將所有已驗證的 API 請求記錄到 IAM 和 AWS STS API 操作。CloudTrail 也會將未驗證的請求記錄到 AWS STS 動作 `AssumeRoleWithSAML`和 `AssumeRoleWithWebIdentity`，並記錄身分提供者提供的資訊。不過，某些未驗證的 AWS STS 請求可能無法記錄，因為它們不符合充分有效以信任為合法請求的最低期望。對於跨帳戶角色假設請求，CloudTrail 不會在目標帳戶的 CloudTrail 中記錄拒絕的 AWS STS 請求。

您可以使用記錄的資訊，將具有所擔任角色的 OIDC 或 SAML 聯合身分主體發出的呼叫映射回最初的外部聯合身分呼叫者。如果是 `AssumeRole`，您可以將呼叫對應回原始 AWS 服務或原始使用者的帳戶。CloudTrail 日誌項目中 JSON 資料的 `userIdentity` 部分包含將 AssumeRole\$1 請求映射至特定工作階段主體所需的資訊。如需詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

AWS CloudTrail 當 IAM 使用者使用 MFA 登入時， 日誌將包含 MFA 資訊。如果 IAM 使用者擔任 IAM 角色，CloudTrail 也會將 `mfaAuthenticated: true` 記錄在使用該擔任角色執行的動作的 `sessionContext` 屬性中。不過，CloudTrail 記錄與使用擔任角色的憑證進行 API 呼叫時 IAM 所需的記錄是分開的。如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

例如，對 IAM `CreateUser`、`DeleteRole`、`ListGroups` 和其他 API 操作的呼叫都是由 CloudTrail 記錄。

本主題稍後會提供此類日誌項目的範例。

## 記錄對 AWS 其他服務的 API 請求
<a name="cloudtrail-integration_api-other-services"></a>

CloudTrail 會記錄對其他服務 AWS API 操作的已驗證請求，而且這些日誌項目包含產生請求者的相關資訊。

例如：假設您發出請求，要求列出 Amazon EC2 執行個體或建立 AWS CodeDeploy 部署群組。發出請求的人員或服務相關詳細資訊都會包含在該請求的日誌項目中。此資訊可協助您判斷請求是由 AWS 帳戶根使用者、IAM 使用者、角色或其他 AWS 服務提出。

有關 CloudTrail 日誌項目中使用者身分資訊的更多詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的 [userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/event_reference_user_identity.html)。

## 記錄使用者登入事件
<a name="cloudtrail-integration_signin-users"></a>

CloudTrail 會將登入事件記錄到 AWS 管理主控台、本機開發工具，例如 AWS CLI 和 SDK、 AWS 討論論壇，以及 AWS Marketplace。 SDKs CloudTrail 會記錄 IAM 使用者、SAML 和 OIDC 聯合身分主體，以及 AWS STS 聯合身分使用者主體的成功和失敗登入嘗試。

 若要檢視成功和失敗根使用者登入的 CloudTrail 事件範例，請參閱《AWS CloudTrail 使用者指南》**中的[根使用者的範例事件記錄](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html#cloudtrail-event-reference-aws-console-sign-in-events-root)。

作為安全最佳實務，當登入失敗是由不正確的使用者名稱造成時， AWS 不會記錄輸入的 IAM *使用者名稱*文字。使用者名稱文字是由值 `HIDDEN_DUE_TO_SECURITY_REASONS` 遮蓋的。如需此範例，請參閱本主題後述的[因使用者名稱不正確以致登入失敗的事件範例](#hiddensecurity)。因為這類失敗可能是使用者錯誤所造成，所以會隱蔽使用者名稱文字。記錄這些錯誤可能會公開潛在的敏感資訊。例如：
+ 您不小心在使用者名稱方塊中輸入密碼。
+ 您可以選擇其中一個登入頁面的連結 AWS 帳戶，然後輸入另一個登入頁面的帳號 AWS 帳戶。
+ 您忘記了正在登入的帳戶，並且無意中輸入了您的個人電子郵件帳戶的帳戶名稱，銀行登入識別碼或其他私有 ID。

## 記錄暫時憑證的登入事件
<a name="cloudtrail-integration_signin-tempcreds"></a>

當主體請求暫時憑證時，主體類型會決定 CloudTrail 記錄事件的方式。當主體擔任另一個帳戶中的角色時，情況會很複雜。有多個 API 呼叫會執行與角色跨帳戶操作相關的操作。首先，委託人呼叫 AWS STS API 來擷取暫時登入資料。該操作會記錄在呼叫帳戶和執行 AWS STS 操作的帳戶中。然後，主體會使用該角色，在擔任角色的帳戶中執行其他 API 呼叫。

您可以使用角色信任政策中的 `sts:SourceIdentity` 條件金鑰，請求使用者在擔任角色時指定身分。例如，您可以請求 IAM 使用者將自己的使用者名稱指定為其來源身分。這可以協助您判斷哪位使用者在 AWS中執行了特定動作。如需詳細資訊，請參閱[`sts:SourceIdentity`](reference_policies_iam-condition-keys.md#ck_sourceidentity)。您亦可以使用 [`sts:RoleSessionName`](reference_policies_iam-condition-keys.md#ck_rolesessionname)，請求使用者在擔任角色時指定工作階段名稱。這可協助您在檢閱 AWS CloudTrail 日誌時區分不同委託人使用之角色的角色工作階段。

下表顯示 CloudTrail 如何為產生臨時憑證的每個 AWS STS APIs 記錄不同的使用者身分資訊。


****  

| 主體類型 | STS API | 呼叫者帳戶 CloudTrail 日誌中的使用者身分 | 所擔任角色帳戶 CloudTrail 日誌中的使用者身分 | 角色後續 API 呼叫之 CloudTrail 日誌中的使用者身分 | 
| --- | --- | --- | --- | --- | 
| AWS 帳戶根使用者 登入資料 | GetSessionToken | 根使用者身分 | 角色擁有者帳戶與呼叫帳戶相同 | 根使用者身分 | 
| AWS 帳戶根使用者 登入資料 | AssumeRoot | 根使用者工作階段 | 帳號和主體 ID (若為使用者) | 根使用者工作階段 | 
| IAM 使用者 | GetSessionToken | IAM 使用者身分 | 角色擁有者帳戶與呼叫帳戶相同 | IAM 使用者身分 | 
| IAM 使用者 | GetFederationToken | IAM 使用者身分 | 角色擁有者帳戶與呼叫帳戶相同 | IAM 使用者身分 | 
| IAM 使用者 | AssumeRole | IAM 使用者身分 | 帳號和委託人 ID （如果是使用者） 或服務 AWS 委託人 | 僅限角色身分 (非使用者) | 
| 外部驗證的使用者 | AssumeRoleWithSAML | N/A | SAML 使用者身分 | 僅限角色身分 (非使用者) | 
| 外部驗證的使用者 | AssumeRoleWithWebIdentity | N/A | OIDC/Web 使用者身分 | 僅限角色身分 (非使用者) | 

如果動作對資源沒有任何變異效果，CloudTrail 會將其視為唯讀動作。記錄唯讀事件時，CloudTrail 會修訂日誌中的 `responseElements` 資訊。當 CloudTrail 記錄非唯讀的事件時，日誌項目中會顯示完整的 `responseElements`。對於 AWS STS APIs `AssumeRole`、 `AssumeRoleWithSAML`和 `AssumeRoleWithWebIdentity`，即使它們記錄為唯讀，CloudTrail 仍會包含完整，`responseElements`但這些 APIs的日誌`secretAccessKey`中除外。

下表顯示 CloudTrail 如何記錄`responseElements`和產生臨時憑證之每個 AWS STS APIs`readOnly`的資訊。


****  

| STS API | 回應元素資訊 | 唯讀 | 
| --- | --- | --- | 
| AssumeRole | 包含 | true | 
| AssumeRoleWithSAML | 包含 | true | 
| AssumeRoleWithWebIdentity | 包含 | true | 
| AssumeRoot | 包含 | false | 
| GetFederationToken | 包含 | false | 
| GetSessionToken | 包含 | false | 

## CloudTrail 日誌中的 IAM API 事件範例
<a name="cloudtrail-integration_examples-iam-api"></a>

CloudTrail 日誌檔案包含使用 JSON 格式化的事件。一個 API 事件代表單一 API 請求，並包含主體、請求動作、任何參數以及動作的日期和時間等資訊。

### CloudTrail 日誌檔案中的 IAM API 事件範例
<a name="cloudtrail-integration-iam-api-events"></a>

以下範例顯示針對 IAM `GetUserPolicy` 動作發出請求的 CloudTrail 日誌項目。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:Role-Session-Name",
        "arn": "arn:aws:sts::111122223333:assumed-role/Role-Name/Role-Session-Name",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2024-09-09T17:50:16Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2024-09-09T17:51:44Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "GetUserPolicy",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.101",
    "userAgent": "aws-cli/1.16.96 Python/2.7.8 Linux/10 botocore/1.12.86",
    "requestParameters": {
        "userName": "ExampleIAMUserName",
        "policyName": "ExamplePoliccyName"
    },
    "responseElements": null,
    "requestID": "9EXAMPLE-0c68-11e4-a24e-d5e16EXAMPLE",
    "eventID": "cEXAMPLE-127e-4632-980d-505a4EXAMPLE",
    "readOnly": true,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "iam.amazonaws.com"
    }
}
```

從這個事件資訊，您可以判斷提出請求是為了取得使用者 `ReadOnlyAccess-JaneDoe-201407151307` 的一個名為 `JaneDoe` 的使用者政策，如 `requestParameters` 元素中所指定。您也可以看到該請求由名為 `JaneDoe` 的 IAM 使用者於 2014 年 7 月 15 日下午 9:40 (UTC) 提出。在這種情況下，請求源自 AWS 管理主控台，如您從 `userAgent`元素所說。

## CloudTrail 日誌中的範例 AWS STS API 事件
<a name="cloudtrail-integration_examples-sts-api"></a>

CloudTrail 日誌檔案包含使用 JSON 格式化的事件。一個 API 事件代表單一 API 請求，並包含主體、請求動作、任何參數以及動作的日期和時間等資訊。

### CloudTrail 日誌檔案中的跨帳戶 AWS STS API 事件範例
<a name="stscloudtrailexample"></a>

帳戶 777788889999 `John`中名為 的 IAM 使用者呼叫 AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 動作，以擔任帳戶 111122223333 `EC2-dev`中的角色。帳戶管理員會要求使用者在擔任角色時，將來源身分設定為等於其使用者名稱。使用者傳入 `John` 的來源身分值。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAQRSTUVWXYZEXAMPLE",
    "arn": "arn:aws:iam::777788889999:user/John",
    "accountId": "777788889999",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "userName": "John"
  },
  "eventTime": "2014-07-18T15:07:39Z",
  "eventSource": "sts.amazonaws.com",
  "eventName": "AssumeRole",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.101",
  "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67",
  "requestParameters": {
    "roleArn": "arn:aws:iam::111122223333:role/EC2-dev",
    "roleSessionName": "John-EC2-dev",
    "sourceIdentity": "John",
    "serialNumber": "arn:aws:iam::777788889999:mfa"
  },
  "responseElements": {
    "credentials": {
      "sessionToken": "<encoded session token blob>",
      "accessKeyId": "ASIAI44QH8DHBEXAMPLE",
      "expiration": "Jul 18, 2023, 4:07:39 PM"
      },
    "assumedRoleUser": {
      "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:John-EC2-dev",
      "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/John-EC2-dev"
    },
  "sourceIdentity": "John"
  },
  "resources": [
    {
      "ARN": "arn:aws:iam::111122223333:role/EC2-dev",
      "accountId": "111122223333",
      "type": "AWS::IAM::Role"
    }
  ],
  "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE",
  "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE",
  "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE",
  "eventType": "AwsApiCall",   
  "recipientAccountId": "111122223333"
}
```

第二個範例顯示所擔任角色帳戶 (111122223333) 相同請求的 CloudTrail 日誌項目。

```
{ 
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "AWSAccount",
    "principalId": "AIDAQRSTUVWXYZEXAMPLE",
    "accountId": "777788889999"
  },
  "eventTime": "2014-07-18T15:07:39Z",
  "eventSource": "sts.amazonaws.com",
  "eventName": "AssumeRole",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.101",
  "userAgent": "aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67",
  "requestParameters": {   
    "roleArn": "arn:aws:iam::111122223333:role/EC2-dev",
    "roleSessionName": "John-EC2-dev",
    "sourceIdentity": "John",  
    "serialNumber": "arn:aws:iam::777788889999:mfa"
  }, 
  "responseElements": {
    "credentials": {
      "sessionToken": "<encoded session token blob>",     
      "accessKeyId": "ASIAI44QH8DHBEXAMPLE",     
      "expiration": "Jul 18, 2014, 4:07:39 PM"     
    },   
    "assumedRoleUser": {     
      "assumedRoleId": "AIDAQRSTUVWXYZEXAMPLE:John-EC2-dev",     
      "arn": "arn:aws:sts::111122223333:assumed-role/EC2-dev/John-EC2-dev"   
      },
  "sourceIdentity": "John"
  },
  "requestID": "4EXAMPLE-0e8d-11e4-96e4-e55c0EXAMPLE",
  "sharedEventID": "bEXAMPLE-efea-4a70-b951-19a88EXAMPLE",
  "eventID": "dEXAMPLE-ac7f-466c-a608-4ac8dEXAMPLE"
}
```

### CloudTrail 日誌檔案中 AWS STS 的角色鏈結 API 事件範例
<a name="stscloudtrailexample-assumerole"></a>

以下範例顯示 John Doe 在帳戶 111111111111 中請求的 CloudTrail 日誌項目。John 以前用過他的 `John` 使用者擔任 `JohnRole1` 角色。對此請求而言，他使用該角色的憑證擔任 `JohnRole2` 角色。這就是所謂的[角色鏈接](id_roles.md#iam-term-role-chaining)。他在擔任 `John1` 角色時所設定的來源身分將保留在請求中以擔任 `JohnRole2`。如果 John 嘗試在擔任角色時設定不同的來源身分，則請求將會遭到拒絕。John 將兩個[工作階段標籤](id_session-tags.md)傳遞給請求。並將這兩個標籤設為轉移。因為 John 在擔任 `Department` 時將其設為轉移，所以此請求繼承 `JohnRole1` 標籤也為轉移。如需有關來源身分的詳細資訊，請參閱 [監控並控制使用擔任角色所採取的動作](id_credentials_temp_control-access_monitor.md)。如需有關角色鏈結中轉移索引鍵的詳細資訊，請參閱 [使用工作階段標籤鏈結角色](id_session-tags.md#id_session-tags_role-chaining)。

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIN5ATK5U7KEXAMPLE:JohnRole1",
        "arn": "arn:aws:sts::111111111111:assumed-role/John/JohnRole1",
        "accountId": "111111111111",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2019-10-02T21:50:54Z"
            },
                "sessionIssuer": {
                "type": "Role",
               "principalId": "AROAIN5ATK5U7KEXAMPLE",
                "arn": "arn:aws:iam::111111111111:role/JohnRole1",
                "accountId": "111111111111",
                "userName": "John"
            },
            "sourceIdentity": "John"
        }
    },
    "eventTime": "2019-10-02T22:12:29Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRole",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "123.145.67.89",
    "userAgent": "aws-cli/1.16.248 Python/3.4.7 Linux/4.9.184-0.1.ac.235.83.329.metal1.x86_64 botocore/1.12.239",
    "requestParameters": {
        "incomingTransitiveTags": {
            "Department": "Engineering"
        },
        "tags": [
            {
                "value": "johndoe@example.com",
                "key": "Email"
            },
            {
                "value": "12345",
                "key": "CostCenter"
            }
        ],
        "roleArn": "arn:aws:iam::111111111111:role/JohnRole2",
        "roleSessionName": "Role2WithTags",
        "sourceIdentity": "John",
        "transitiveTagKeys": [
            "Email",
            "CostCenter"
        ],
        "durationSeconds": 3600
    },
    "responseElements": {
        "credentials": {
            "accessKeyId": "ASIAI44QH8DHBEXAMPLE",
            "expiration": "Oct 2, 2019, 11:12:29 PM",
            "sessionToken": "AgoJb3JpZ2luX2VjEB4aCXVzLXdlc3QtMSJHMEXAMPLETOKEN+//rJb8Lo30mFc5MlhFCEbubZvEj0wHB/mDMwIgSEe9gk/Zjr09tZV7F1HDTMhmEXAMPLETOKEN/iEJ/rkqngII9///////////ARABGgw0MjgzMDc4NjM5NjYiDLZjZFKwP4qxQG5sFCryASO4UPz5qE97wPPH1eLMvs7CgSDBSWfonmRTCfokm2FN1+hWUdQQH6adjbbrVLFL8c3jSsBhQ383AvxpwK5YRuDE1AI/+C+WKFZb701eiv9J5La2EXAMPLETOKEN/c7S5Iro1WUJ0q3Cxuo/8HUoSxVhQHM7zF7mWWLhXLEQ52ivL+F6q5dpXu4aTFedpMfnJa8JtkWwG9x1Axj0Ypy2ok8v5unpQGWych1vwdvj6ez1Dm8Xg1+qIzXILiEXAMPLETOKEN/vQGqu8H+nxp3kabcrtOvTFTvxX6vsc8OGwUfHhzAfYGEXAMPLETOKEN/L6v1yMM3B1OwFOrQBno1HEjf1oNI8RnQiMNFdUOtwYj7HUZIOCZmjfN8PPHq77N7GJl9lzvIZKQA0Owcjg+mc78zHCj8y0siY8C96paEXAMPLETOKEN/E3cpksxWdgs91HRzJWScjN2+r2LTGjYhyPqcmFzzo2mCE7mBNEXAMPLETOKEN/oJy+2o83YNW5tOiDmczgDzJZ4UKR84yGYOMfSnF4XcEJrDgAJ3OJFwmTcTQICAlSwLEXAMPLETOKEN"
        },
        "assumedRoleUser": {
            "assumedRoleId": "AROAIFR7WHDTSOYQYHFUE:Role2WithTags",
            "arn": "arn:aws:sts::111111111111:assumed-role/test-role/Role2WithTags"
        },
    "sourceIdentity": "John"
    },
    "requestID": "b96b0e4e-e561-11e9-8b3f-7b396EXAMPLE",
    "eventID": "1917948f-3042-46ec-98e2-62865EXAMPLE",
    "resources": [
        {
            "ARN": "arn:aws:iam::111111111111:role/JohnRole2",
            "accountId": "111111111111",
            "type": "AWS::IAM::Role"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111111111111"
}
```

### CloudTrail 日誌檔案中的範例 AWS 服務 AWS STS API 事件
<a name="stscloudtrailexample_service"></a>

下列範例顯示服務使用 AWS 來自服務角色的許可呼叫另一個服務 API 所提出請求的 CloudTrail 日誌項目。它會顯示帳戶 777788889999 所提出請求的 CloudTrail 日誌項目。

```
{
  "eventVersion": "1.04",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAQRSTUVWXYZEXAMPLE:devdsk",
    "arn": "arn:aws:sts::777788889999:assumed-role/AssumeNothing/devdsk",
    "accountId": "777788889999",
    "accessKeyId": "ASIAI44QH8DHBEXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2016-11-14T17:25:26Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAQRSTUVWXYZEXAMPLE",
        "arn": "arn:aws:iam::777788889999:role/AssumeNothing",
        "accountId": "777788889999",
        "userName": "AssumeNothing"
      }
    }
  },
  "eventTime": "2016-11-14T17:25:45Z",
  "eventSource": "s3.amazonaws.com",
  "eventName": "DeleteBucket",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.1",
  "userAgent": "[aws-cli/1.11.10 Python/2.7.8 Linux/3.2.45-0.6.wd.865.49.315.metal1.x86_64 botocore/1.4.67]",
  "requestParameters": {
    "bucketName": "amzn-s3-demo-bucket"
  },
  "responseElements": null,
  "requestID": "EXAMPLE463D56D4C",
  "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE",
  "eventType": "AwsApiCall",
  "recipientAccountId": "777788889999"
}
```

### CloudTrail 日誌檔案中的範例 SAML AWS STS API 事件
<a name="stscloudtrailexample_saml"></a>

下列範例顯示針對 AWS STS [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) 動作提出之請求的 CloudTrail 日誌項目。此請求包含 SAML 屬性 `CostCenter` 和 `Project`，這些屬性透過 SAML 聲明以[工作階段標籤](id_session-tags.md)的形式傳遞。這些標籤設為轉移，以便[能在角色鏈接藍本中繼續](id_session-tags.md#id_session-tags_role-chaining)。該請求包含選用的 API 參數 `DurationSeconds`，在 CloudTrail 日誌中表示為 `durationSeconds`，且設定為 `1800` 秒。此請求亦包含 SAML 屬性 `sourceIdentity`，會在 SAML 聲明中傳遞。如果有人使用產生的角色工作階段憑證來擔任另一個角色，則此來源身分會持續存在。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "SAMLUser",
        "principalId": "SampleUkh1i4+ExamplexL/jEvs=:SamlExample",
        "userName": "SamlExample",
        "identityProvider": "bdGOnTesti4+ExamplexL/jEvs="
    },
    "eventTime": "2023-08-28T18:30:58Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRoleWithSAML",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "aws-internal/3 aws-sdk-java/1.12.479 Linux/5.10.186-157.751.amzn2int.x86_64 OpenJDK_64-Bit_Server_VM/17.0.7+11 java/17.0.7 kotlin/1.3.72 vendor/Amazon.com_Inc. cfg/retry-mode/standard",
    "requestParameters": {
        "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE",
        "roleSessionName": "MyAssignedRoleSessionName",
        "sourceIdentity": "MySAMLUser",
        "principalTags": {
            "CostCenter": "987654",
            "Project": "Unicorn",
            "Department": "Engineering"
        },
        "transitiveTagKeys": [
            "CostCenter",
            "Project"
        ],
        "roleArn": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth",
        "principalArn": "arn:aws:iam::444455556666:saml-provider/Shibboleth",
        "durationSeconds": 1800
    },
    "responseElements": {
        "credentials": {
            "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
            "sessionToken": "<encoded session token blob>",
            "expiration": "Aug 28, 2023, 7:00:58 PM"
        },
        "assumedRoleUser": {
            "assumedRoleId": "AROAD35QRSTUVWEXAMPLE:MyAssignedRoleSessionName",
            "arn": "arn:aws:sts::444455556666:assumed-role/SAMLTestRoleShibboleth/MyAssignedRoleSessionName"
        },
        "packedPolicySize": 1,
        "subject": "SamlExample",
        "subjectType": "transient",
        "issuer": "https://server.example.com/idp/shibboleth",
        "audience": "https://signin.aws.amazon.com/saml",
        "nameQualifier": "bdGOnTesti4+ExamplexL/jEvs=",
        "sourceIdentity": "MySAMLUser"
    },
    "requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE",
    "eventID": "dEXAMPLE-265a-41e0-9352-4401bEXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "444455556666",
            "type": "AWS::IAM::Role",
            "ARN": "arn:aws:iam::444455556666:role/SAMLTestRoleShibboleth"
        },
        {
            "accountId": "444455556666",
            "type": "AWS::IAM::SAMLProvider",
            "ARN": "arn:aws:iam::444455556666:saml-provider/test-saml-provider"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "444455556666",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.2",
        "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
        "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com"
    }
}
```

### CloudTrail 日誌檔案中的範例 OIDC AWS STS API 事件
<a name="stscloudtrailexample_web-identity"></a>

下列範例顯示針對 AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) 動作提出之請求的 CloudTrail 日誌項目。此請求包含屬性 `CostCenter` 和 `Project`，這些屬性透過 OpenID Connect (OIDC) 身分提供者 (IdP) 權杖以[工作階段標籤](id_session-tags.md)的形式傳遞。這些標籤設為轉移，以便[能在角色鏈接中繼續](id_session-tags.md#id_session-tags_role-chaining)。請求包含從身分提供者權杖的 `sourceIdentity` 屬性。如果有人使用產生的角色工作階段憑證來擔任另一個角色，則此來源身分會持續存在。

CloudTrail 日誌項目也包含具有 `identityProviderConnectionVerificationMethod` 屬性的 `additionalEventData` 欄位。此屬性表示 AWS 用來驗證與 OIDC 供應商連線的方法。該屬性值將為 `IAMTrustStore` 或 `Thumbprint`。`IAMTrustStore` 值表示 使用我們的信任根憑證授權單位 (CA) 程式庫 AWS 成功驗證與 OIDC IdP 的連線。 CAs `Thumbprint` 值表示 AWS 使用 IdP 組態中的憑證指紋集來驗證 OIDC IdP 伺服器憑證。

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "WebIdentityUser",
    "principalId": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>:<id of application>:<id of user>",
    "userName": "<id of user>",
    "identityProvider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>"
  },
  "eventTime": "2024-07-09T15:41:37Z",
  "eventSource": "sts.amazonaws.com",
  "eventName": "AssumeRoleWithWebIdentity",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.101",
  "userAgent": "aws-cli/2.13.29 Python/3.11.6 Windows/10 exe/AMD64 prompt/off command/sts.assume-role-with-web-identity",
  "requestParameters": {
    "roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole",
    "roleSessionName": "<assigned role session name>",
    "sourceIdentity": "MyWebIdentityUser",
    "durationSeconds": 3600,
    "principalTags": {
      "CostCenter": "24680",
      "Project": "Pegasus"
    },
    "transitiveTagKeys": [
      "CostCenter",
      "Project"
    ]
  },
  "responseElements": {
    "credentials": {
      "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
      "sessionToken": "<encoded session token blob>",
      "expiration": "Jul 9, 2024, 4:41:37 PM"
    },
    "subjectFromWebIdentityToken": "<id of user>",
    "sourceIdentity": "MyWebIdentityUser",
    "assumedRoleUser": {
      "assumedRoleId": "AROA123456789EXAMPLE:<assigned role session name>",
      "arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/<assigned role session name>"
    },
    "provider": "arn:aws:iam::444455556666:oidc-provider/<issuer url of OIDC provider>",
    "audience": "<id of application>"
  },
  "additionalEventData": {
    "identityProviderConnectionVerificationMethod": "IAMTrustStore"
  },
  "requestID": "aEXAMPLE-0b26-40df-8973-c7012EXAMPLE",
  "eventID": "aEXAMPLE-ee29-4ac0-a0ed-3f5c5EXAMPLE",
  "readOnly": true,
  "resources": [
    {
      "accountId": "444455556666",
      "type": "AWS::IAM::Role",
      "ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "444455556666",
  "eventCategory": "Management",
  "tlsDetails": {
    "tlsVersion": "TLSv1.3",
    "cipherSuite": "TLS_AES_128_GCM_SHA256",
    "clientProvidedHostHeader": "sts.us-east-2.amazonaws.com"
  }
}
```

### CloudTrail 日誌檔案中使用全域端點的範例 AWS STS API 事件
<a name="stscloudtrailexample-assumerole-sts-global-endpoint"></a>

對於對 AWS Security Token Service (AWS STS) 全域端點 (`https://sts.amazonaws.com`) 的請求， AWS STS 包含其他 AWS CloudTrail 日誌欄位： `endpointType`和 `awsServingRegion`。這些欄位會出現在 `addtionalEventData``RequestDetails`元素下方，以記錄正在呼叫的服務 AWS 區域 和端點類型。`endpointType` 欄位的值可以是 `global` 或 `regional`，指示處理請求的全域端點的類型。如需 AWS STS 全域端點變更的詳細資訊，請參閱 [AWS STS 區域和端點](id_credentials_temp_region-endpoints.md)。

**注意**  
AWS CloudTrail 向 AWS STS 全域端點提出請求的 日誌將傳送至美國東部 （維吉尼亞北部） 區域。 AWS STS 區域端點所提供請求的 CloudTrail 日誌將繼續記錄在 CloudTrail 中的其各自區域。

下列範例顯示對源自歐洲 （斯德哥爾摩`https://sts.amazonaws.com`) 區域 - eu-north-1 的全域端點 () 提出 AWS STS 請求的 CloudTrail 日誌項目。欄位`endpointType`值 `global`表示 AWS STS 請求是由歐洲 （斯德哥爾摩） 區域中的全域端點提供服務。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROA123456789EXAMPLE:developer",
        "arn": "arn:aws:sts::777788889999:assumed-role/Admin/developer",
        "accountId": "777788889999",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROA123456789EXAMPLE",
                "arn": "arn:aws:iam::777788889999:role/Admin",
                "accountId": "777788889999",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2025-02-12T21:44:28Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2025-02-12T22:16:48Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.15.33 Python/3.11.8 Linux/5.10.233-204.894.amzn2int.x86_64 exe/x86_64.amzn.2 prompt/off command/sts.assume-role",
    "requestParameters": {
        "roleArn": "arn:aws:iam::777788889999:role/test-role",
        "roleSessionName": "test-global-assume-role"
    },
    "responseElements": {
        "credentials": {
            "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
            "sessionToken": "<encoded session token blob>",
            "expiration": "Feb 12, 2025, 11:16:48 PM"
        },
        "assumedRoleUser": {
            "assumedRoleId": "AROA987654321EXAMPLE:test-global-assume-role",
            "arn": "arn:aws:sts::777788889999:assumed-role/test-role/test-global-assume-role"
        }
    },
    "additionalEventData": {
        "RequestDetails": {
            "awsServingRegion": "eu-north-1",
            "endpointType": "global"
        }
    },
    "requestID": "EXAMPLE7-2497-457a-9586-f21feEXAMPLE",
    "eventID": "EXAMPLEc-3d26-4c3a-9c94-722a9EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "777788889999",
            "type": "AWS::IAM::Role",
            "ARN": "arn:aws:iam::777788889999:role/test-role"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "777788889999",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "sts-global.eu-north-1.amazonaws.com"
    }
}
```

為了進行比較，以下範例顯示對歐洲 （斯德哥爾摩`https://sts.us-west-2.amazonaws.com`) 區域端點 - eu-north-1 提供的區域端點 () AWS STS 提出請求的 CloudTrail 日誌項目。欄位`endpointType`值 `regional`表示 AWS STS 請求是由歐洲 （斯德哥爾摩） 區域中的全域端點提供服務。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROA123456789EXAMPLE:developer",
        "arn": "arn:aws:sts::777788889999:assumed-role/Admin/developer",
        "accountId": "777788889999",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROA123456789EXAMPLE",
                "arn": "arn:aws:iam::777788889999:role/Admin",
                "accountId": "777788889999",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2025-02-12T21:44:28Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2025-02-12T22:16:30Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRole",
    "awsRegion": "eu-north-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/2.15.33 Python/3.11.8 Linux/5.10.233-204.894.amzn2int.x86_64 exe/x86_64.amzn.2 prompt/off command/sts.assume-role",
    "requestParameters": {
        "roleArn": "arn:aws:iam::777788889999:role/test-role",
        "roleSessionName": "test-global-assume-role"
    },
    "responseElements": {
        "credentials": {
            "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
            "sessionToken": "<encoded session token blob>",
            "expiration": "Feb 12, 2025, 11:16:30 PM"
        },
        "assumedRoleUser": {
            "assumedRoleId": "AROA987654321EXAMPLE:test-global-assume-role",
            "arn": "arn:aws:sts::777788889999:assumed-role/test-role/test-global-assume-role"
        }
    },
    "additionalEventData": {
        "RequestDetails": {
            "endpointType": "regional",
            "awsServingRegion": "eu-north-1"
        }
    },
    "requestID": "EXAMPLEd-2116-4cd7-bd72-9f72fEXAMPLE",
    "eventID": "EXAMPLEd-219a-48ed-bc54-00e3cEXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "777788889999",
            "type": "AWS::IAM::Role",
            "ARN": "arn:aws:iam::777788889999:role/test-role"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "777788889999",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "sts.eu-north-1.amazonaws.com"
    }
}
```

## CloudTrail 日誌中的範例登入事件
<a name="cloudtrail-integration_examples-signin"></a>

CloudTrail 日誌檔案包含使用 JSON 格式化的事件。登入事件代表單一登入請求，並包含登入主體、區域以及動作的日期和時間等資訊。

### CloudTrail 日誌檔案中的範例登入成功事件
<a name="cloudtrail-integration-signin-success"></a>

以下範例顯示成功登入事件的 CloudTrail 日誌項目。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE",
    "arn":"arn:aws:iam::111122223333:user/John",
    "accountId": "111122223333",
    "userName": "John"
  },
  "eventTime": "2014-07-16T15:49:27Z",
  "eventSource": "signin.amazonaws.com",
  "eventName": "ConsoleLogin",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.110",
  "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0",
  "requestParameters": null,
  "responseElements": {
    "ConsoleLogin": "Success"
  },
  "additionalEventData": {
    "MobileVersion": "No",
    "LoginTo": "[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)",
    "MFAUsed": "No"
  },
  "eventID": "3fcfb182-98f8-4744-bd45-10a395ab61cb"
}
```

下列範例顯示成功授權碼請求的 CloudTrail 日誌項目。

```
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROATJHQDX737YZP72NTF:thesjain-Isengard",
"arn": "arn:aws:sts::225989345271:assumed-role/Admin/thesjain-Isengard",
"accountId": "225989345271",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROATJHQDX737YZP72NTF",
"arn": "arn:aws:iam::225989345271:role/Admin",
"accountId": "225989345271",
"userName": "Admin"
},
"attributes": {
"creationDate": "2025-11-17T22:50:14Z",
"mfaAuthenticated": "false"
}
}
},
"eventTime": "2025-11-17T22:51:32Z",
"eventSource": "signin.amazonaws.com",
"eventName": "AuthorizeOAuth2Access",
"awsRegion": "us-east-1",
"sourceIPAddress": "52.94.133.136",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"requestParameters": {
"scope": "openid",
"redirect_uri": "http://127.0.0.1:53037/oauth/callback",
"code_challenge_method": "SHA-256",
"client_id": "arn:aws:signin:::devtools/same-device"
},
"responseElements": null,
"additionalEventData": {
"success": "true",
"x-amzn-vpce-id": ""
},
"requestID": "e2854c76-1cba-4360-9fd1-5037b591466b",
"eventID": "59e1720d-3deb-44ff-933d-6828be2a860a",
"readOnly": true,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "225989345271",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.3",
"cipherSuite": "TLS_AES_128_GCM_SHA256",
"clientProvidedHostHeader": "us-east-1.signin.aws.amazon.com"
}
}
```

下列範例顯示成功建立 OAuth2 權杖請求的 CloudTrail 日誌項目。

```
{
"eventVersion": "1.11",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROATJHQDX737YZP72NTF:jacobjoj-Isengard",
"arn": "arn:aws:sts::225989345271:assumed-role/Admin/jacobjoj-Isengard",
"accountId": "225989345271",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROATJHQDX737YZP72NTF",
"arn": "arn:aws:iam::225989345271:role/Admin",
"accountId": "225989345271",
"userName": "Admin"
},
"attributes": {
"creationDate": "2025-11-18T20:38:10Z",
"mfaAuthenticated": "false"
}
}
},
"eventTime": "2025-11-18T20:38:44Z",
"eventSource": "signin.amazonaws.com",
"eventName": "CreateOAuth2Token",
"awsRegion": "us-east-1",
"sourceIPAddress": "15.248.6.6",
"userAgent": "aws-cli/2.32.0 md/awscrt#0.28.4 ua/2.1 os/macos#24.6.0 md/arch#arm64 lang/python#3.13.9 md/pyimpl#CPython m/b,AA,Z,E cfg/retry-mode#standard md/installer#exe sid/35033f4ca1bd md/prompt#off md/command#login",
"requestParameters": {
"client_id": "arn:aws:signin:::devtools/same-device"
},
"responseElements": null,
"additionalEventData": {
"success": "true",
"x-amzn-vpce-id": ""
},
"requestID": "94562943-c85b-4dc1-bf72-43b0fd42d6de",
"eventID": "0b338fac-6a10-4740-b34d-1bb6923e799e",
"readOnly": true,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "225989345271",
"eventCategory": "Management",
"tlsDetails": {
"tlsVersion": "TLSv1.3",
"cipherSuite": "TLS_AES_128_GCM_SHA256",
"clientProvidedHostHeader": "us-east-1.signin.aws.amazon.com"
}
}
```

如需有關 CloudTrail 日誌檔案中包含資訊的詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的 [CloudTrail 事件參考](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/eventreference.html)。

### CloudTrail 日誌檔案中的登入失敗事件範例
<a name="cloudtrail-integration-signin-failure"></a>

以下範例顯示失敗登入事件的 CloudTrail 日誌項目。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE",
    "arn":"arn:aws:iam::111122223333:user/JaneDoe",
    "accountId": "111122223333",
    "userName": "JaneDoe"
  },
  "eventTime": "2014-07-08T17:35:27Z",
  "eventSource": "signin.amazonaws.com",
  "eventName": "ConsoleLogin",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.100",
  "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0",
  "errorMessage": "Failed authentication",
  "requestParameters": null,
  "responseElements": {
    "ConsoleLogin": "Failure"
  },
  "additionalEventData": {
    "MobileVersion": "No",
    "LoginTo": "https://console.aws.amazon.com/sns",
    "MFAUsed": "No"
  },
  "eventID": "11ea990b-4678-4bcd-8fbe-62509088b7cf"
}
```

根據此資訊，您可以判斷嘗試登入的人是名為 `JaneDoe` 的 IAM 使用者 ，如 `userIdentity` 元素所示。您還可以看到登入嘗試失敗，如 `responseElements` 元素所示。您可以看到 `JaneDoe` 於 UTC 時間 2014 年 7 月 8 日下午 5:35 嘗試登入 Amazon SNS 主控台。

### 因使用者名稱不正確以致登入失敗的事件範例
<a name="hiddensecurity"></a>

下列範例顯示因使用者輸入不正確的使用者名稱而導致登入事件失敗的 CloudTrail 日誌項目。 會使用 AWS 遮罩`userName`文字`HIDDEN_DUE_TO_SECURITY_REASONS`，以協助防止暴露潛在的敏感資訊。

```
{
  "eventVersion": "1.05",
  "userIdentity": {
    "type": "IAMUser",
    "accountId": "123456789012",
    "accessKeyId": "",
    "userName": "HIDDEN_DUE_TO_SECURITY_REASONS"
  },
  "eventTime": "2015-03-31T22:20:42Z",
  "eventSource": "signin.amazonaws.com",
  "eventName": "ConsoleLogin",
  "awsRegion": "us-east-2",
  "sourceIPAddress": "192.0.2.101",
  "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0",
  "errorMessage": "No username found in supplied account",
  "requestParameters": null,
  "responseElements": {
    "ConsoleLogin": "Failure"
  },
  "additionalEventData": {
    "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true",
    "MobileVersion": "No",
    "MFAUsed": "No"
  },
  "eventID": "a7654656-0417-45c6-9386-ea8231385051",
  "eventType": "AwsConsoleSignin",
  "recipientAccountId": "123456789012"
}
```

## IAM 角色信任政策行為
<a name="cloudtrail-integration_role-trust-behavior"></a>

在 2022 年 9 月 21 日， 對 IAM 角色信任政策行為 AWS 進行了變更，以在角色擔任自己的角色信任政策中要求明確允許 。舊版行為允許清單中的 IAM 角色針對 `AssumeRole` 事件的 explicitTrustGrant 提供了 additionalEventData 欄位。當舊版允許清單上的角色使用舊版行為擔任自己時，`explicitTrustGrant` 的值為 false。當舊版允許清單上的角色擔任自己，但角色信任政策行為已更新為明確允許角色擔任自己時，`explicitTrustGrant` 的值為 true。

只有極少數的 IAM 角色位於舊版行為的允許清單上，並且此欄位只有當角色擔任自己時，才會出現在相應的 CloudTrail 日誌中。在大多數情況下，IAM 角色不需要擔任本身。 AWS 建議更新您的程序、程式碼或組態，以移除此行為或更新您的角色信任政策，以明確允許此行為。如需詳細資訊，請參閱 [Announcing an update to IAM role trust policy behavior](https://aws.amazon.com/blogs//security/announcing-an-update-to-iam-role-trust-policy-behavior/)。

# 在 中追蹤特殊權限任務 AWS CloudTrail
<a name="cloudtrail-track-privileged-tasks"></a>

IAM 的 AWS Organizations 管理帳戶或委派管理員帳戶可以使用短期根存取權在成員帳戶上執行一些根使用者任務。短期特權工作階段會為您提供臨時憑證，以便您可以確定相關範圍，[對組織中的成員帳戶採取特權動作](id_root-user-privileged-task.md)。您可以使用下列步驟來識別管理帳戶或委派管理員在 [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html) 工作階段期間所採取的動作。

**注意**  
`sts:AssumeRoot` 不支援全域端點。CloudTrail 會記錄為端點指定的區域中的 `ConsoleLogin` 事件。

**若要在 CloudTrail 日誌中追蹤特權工作階段所執行的動作**

1. 在 CloudTrail 日誌中尋找 `AssumeRoot` 事件。當您的管理帳戶或委派的 IAM 管理員從 `sts:AssumeRoot` 取得一組短期憑證時，就會產生此事件。

   在以下範例中，AssumeRoot 的 CloudTrail 事件會記錄在 `eventName` 欄位中。

   ```
   {
       "eventVersion": "1.08",
       "userIdentity": {
           "type": "AssumedRole",
           "principalId": "AIDACKCEVSQ6C2EXAMPLE:JohnRole1",
           "arn": "arn:aws:sts::111111111111:assumed-role/John/JohnRole1",
           "accountId": "111111111111",
           "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
           "sessionContext": {
               "sessionIssuer": {
                   "type": "Role",
                   "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                   "arn": "arn:aws:iam::111111111111:role/John",
                   "accountId": "111111111111",
                   "userName": "Admin2"
               },
               "webIdFederationData": {},
               "attributes": {
                   "creationDate": "2024-10-25T20:45:28Z",
                   "mfaAuthenticated": "false"
               },
               "assumedRoot": "true"
           }
       },
       "eventTime": "2024-10-25T20:52:11Z",
       "eventSource": "sts.amazonaws.com",
       "eventName": "AssumeRoot",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "192.0.2.1",    
       "requestParameters": {
           "targetPrincipal": "222222222222",
           "taskPolicyArn": {
               "arn": "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy"
           }
       },
       "responseElements": {
           "credentials": {
               "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
               "sessionToken": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
               "expiration": "Oct 25, 2024, 9:07:11 PM"
           }
       }
   }
   ```

   如需存取 CloudTrail 日誌的步驟，請參閱 *AWS CloudTrail User Guide* 中的 [Getting and viewing your CloudTrail log files](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

1. 在 CloudTrail 事件日誌中，找到指定所執行動作的目標成員帳戶的 `targetPrincipal`，以及 `AssumeRoot` 工作階段獨有的 `accessKeyId`。

   在以下範例中，`targetPrincipal` 為 222222222222，`accessKeyId` 為 ASIAIOSFODNN7EXAMPLE。

   ```
   "eventTime": "2024-10-25T20:52:11Z",
       "eventSource": "sts.amazonaws.com",
       "eventName": "AssumeRoot",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "192.0.2.1",    
       "requestParameters": {
           "targetPrincipal": "222222222222",
           "taskPolicyArn": {
               "arn": "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy"
           }
       },
       "responseElements": {
           "credentials": {
               "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
               "sessionToken": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
               "expiration": "Oct 25, 2024, 9:07:11 PM"
       }
   }
   ```

1. 在目標主體的 CloudTrail 日誌中，搜尋對應至 `AssumeRoot` 事件的 `accessKeyId` 值的存取金鑰 ID。使用 `eventName` 欄位值來判斷在 `AssumeRoot` 工作階段期間執行的特權任務。在單一工作階段中可能會執行多個特權任務。`AssumeRoot` 的工作階段持續時間上限為 900 秒 (15 分鐘）。

   在以下範例中，管理帳戶或委派管理員刪除了一個 Amazon S3 儲存貯體的資源型政策。

   ```
   {
       "eventVersion": "1.10",
       "userIdentity": {
           "type": "Root",
           "principalId": "222222222222",
           "arn": "arn:aws:iam::222222222222:root",
           "accountId": "222222222222",
           "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
           "sessionContext": {
               "attributes": {
                   "creationDate": "2024-10-25T20:52:11Z",
                   "mfaAuthenticated": "false"
               }
           }
       },
       "eventTime": "2024-10-25T20:53:47Z",
       "eventSource": "s3.amazonaws.com",
       "eventName": "DeleteBucketPolicy",
       "awsRegion": "us-west-2",
       "sourceIPAddress": "192.0.2.1",
       "requestParameters": {
           "bucketName": "resource-policy-John",
           "Host": "resource-policy-John.s3.amazonaws.com",
           "policy": ""
       },
       "responseElements": null,
       "requestID": "1234567890abcdef0",
       "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
       "readOnly": false,
       "resources": [
           {
               "accountId": "222222222222",
               "type": "AWS::S3::Bucket",
               "ARN": "arn:aws:s3:::resource-policy-John"
           }
       ],
       "eventType": "AwsApiCall",
       "managementEvent": true,
       "recipientAccountId": "222222222222",
       "eventCategory": "Management",
       "tlsDetails": {
           "tlsVersion": "TLSv1.3",
           "cipherSuite": "TLS_AES_128_GCM_SHA256",
           "clientProvidedHostHeader": "resource-policy-John.s3.amazonaws.com"
       }
   }
   ```