

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对 AWS CloudTrail 身份和访问进行故障排除
<a name="security_iam_troubleshoot"></a>

使用以下信息来帮助您诊断和修复在使用 CloudTrail 和 IAM 时可能遇到的常见问题。

**Topics**
+ [我无权在以下位置执行操作 CloudTrail](#security_iam_troubleshoot-no-permissions)
+ [我无权执行 `iam:PassRole`](#security_iam_troubleshoot-passrole)
+ [我想允许我以外的人 AWS 账户 访问我的 CloudTrail 资源](#security_iam_troubleshoot-cross-account-access)
+ [我无权执行 `iam:PassRole`](#security_iam_troubleshoot-passrole)
+ [在尝试创建组织跟踪或事件数据存储时，我遇到了 `NoManagementAccountSLRExistsException` 异常](#security_iam_troubleshoot-no-slr)

## 我无权在以下位置执行操作 CloudTrail
<a name="security_iam_troubleshoot-no-permissions"></a>

如果您收到错误提示，指明您无权执行某个操作，则必须更新策略以允许执行该操作。

当 `mateojackson` IAM 用户尝试使用控制台查看有关虚构 `my-example-widget` 资源的详细信息，但不拥有虚构 `cloudtrail:GetWidget` 权限时，会发生以下示例错误。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: cloudtrail:GetWidget on resource: my-example-widget
```

在此情况下，必须更新 `mateojackson` 用户的策略，以允许使用 `cloudtrail:GetWidget` 操作访问 `my-example-widget` 资源。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

如果 AWS 管理控制台 告诉您您无权执行某项操作，则必须联系管理员寻求帮助。管理员是向您提供登录凭证的人。

当 `mateojackson` IAM 用户尝试使用控制台查看有关跟踪的详细信息，但其账户没有相应的 CloudTrail 托管策略（**AWSCloudTrail\$1FullAccess**或 **AWSCloudTrail\$1ReadOnlyAccess**）或等效权限时，就会出现以下示例错误。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: cloudtrail:GetTrailStatus on resource: My-Trail
```

在这种情况下，Mateo 请求他的管理员更新其策略，以允许他在控制台中访问跟踪信息和状态。

如果您使用具有**AWSCloudTrail\$1FullAccess**托管策略或其等效权限的 IAM 用户或角色登录，并且无法配置跟踪 AWS Config 或 Amazon CloudWatch Logs 集成，则可能缺少与这些服务集成所需的权限。有关更多信息，请参阅[授予在 CloudTrail 控制台上查看 AWS Config 信息的权限](security_iam_id-based-policy-examples.md#grant-aws-config-permissions-for-cloudtrail-users)和[授予在 CloudTrail 控制台上查看和配置 Amazon CloudWatch 日志信息的权限](security_iam_id-based-policy-examples.md#grant-cloudwatch-permissions-for-cloudtrail-users)。

## 我无权执行 `iam:PassRole`
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到一个错误，表明您无权执行 `iam:PassRole` 操作，则必须更新策略以允许您将角色传递给。 CloudTrail

有些 AWS 服务 允许您将现有角色传递给该服务，而不是创建新的服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为 `marymajor` 的 IAM 用户尝试使用控制台在 CloudTrail 中执行操作时，会发生以下示例错误。但是，服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，必须更新 Mary 的策略以允许她执行 `iam:PassRole` 操作。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 我想允许我以外的人 AWS 账户 访问我的 CloudTrail 资源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以创建一个角色并在多个角色之间共享 CloudTrail 信息 AWS 账户。有关更多信息，请参阅 [在 AWS 账户之间共享 CloudTrail 日志文件](cloudtrail-sharing-logs.md)。

您可以创建一个角色，以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖，可以代入角色。对于支持基于资源的策略或访问控制列表 (ACLs) 的服务，您可以使用这些策略向人们授予访问您的资源的权限。

要了解更多信息，请参阅以下内容：
+ 要了解是否 CloudTrail 支持这些功能，请参阅[如何 AWS CloudTrail 与 IAM 配合使用](security_iam_service-with-iam.md)。
+ 要了解如何提供对您拥有的资源的访问权限 AWS 账户 ，请参阅 [IAM 用户*指南中的向您拥有 AWS 账户 的另一个 IAM 用户*提供访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)权限。
+ 要了解如何向第三方提供对您的资源的访问[权限 AWS 账户，请参阅 *IAM 用户指南*中的向第三方提供](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)访问权限。 AWS 账户 
+ 要了解如何通过身份联合验证提供访问权限，请参阅《IAM 用户指南》**中的[为经过外部身份验证的用户（身份联合验证）提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 要了解使用角色和基于资源的策略进行跨账户访问之间的差别，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 我无权执行 `iam:PassRole`
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到一个错误，表明您无权执行 `iam:PassRole` 操作，则必须更新策略以允许您将角色传递给。 CloudTrail

有些 AWS 服务 允许您将现有角色传递给该服务，而不是创建新的服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为 `marymajor` 的 IAM 用户尝试使用控制台在 CloudTrail 中执行操作时，会发生以下示例错误。但是，服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，必须更新 Mary 的策略以允许她执行 `iam:PassRole` 操作。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 在尝试创建组织跟踪或事件数据存储时，我遇到了 `NoManagementAccountSLRExistsException` 异常
<a name="security_iam_troubleshoot-no-slr"></a>

如果管理账户没有服务相关角色，就会引发 `NoManagementAccountSLRExistsException` 异常。

使用 AWS Organizations CLI 或 API 操作添加委托管理员时，如果 CloudTrail 服务相关角色不存在，则不会自动创建这些角色。只有当你从管理账户直接向服务拨打电话时，才会创建与 CloudTrail 服务相关的角色。例如，当您使用 CloudTrail 控制台或 CloudTrail API 添加委派管理员或创建组织跟踪 AWS CLI 或事件数据存储时，将创建AWSServiceRoleForCloudTrail服务相关角色。

当您使用 AWS CloudTrail; CLI 或 API 操作添加委托管理员时， CloudTrail 将同时创建AWSServiceRoleForCloudTrail和AWSServiceRoleForCloudTrailEventContext服务相关角色。

当您使用组织的管理账户添加委派管理员或在 CloudTrail 控制台中创建组织跟踪或事件数据存储时，或者使用 AWS CLI 或 CloudTrail API， CloudTrail 会自动为您的管理账户创建AWSServiceRoleForCloudTrail服务相关角色（如果尚不存在）。有关更多信息，请参阅 [将服务相关角色用于 CloudTrail](using-service-linked-roles.md)。

如果您尚未添加委托管理员，请使用 CloudTrail 控制台 AWS CLI 或 CloudTrail API 添加委派管理员。有关添加委派管理员的更多信息，请参阅[添加 CloudTrail 委派管理员](cloudtrail-add-delegated-administrator.md)和 [RegisterOrganizationDelegatedAdmin](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_RegisterOrganizationDelegatedAdmin.html)(API)。

如果您已经添加了委托管理员，请使用管理账户在 CloudTrail 控制台中创建组织跟踪或事件数据存储，或者使用 AWS CLI 或 CloudTrail API。有关创建组织跟踪的更多信息，请参阅[在控制台中为您的组织创建跟踪](creating-an-organizational-trail-in-the-console.md)[使用以下方法为组织创建跟踪 AWS CLI](cloudtrail-create-and-update-an-organizational-trail-by-using-the-aws-cli.md)、和 [CreateTrail](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html)(API)。