如何排查 Amazon QuickSight 中的 AWS 资源权限错误?

上次更新时间:2020 年 3 月 2 日

我尝试编辑 Amazon QuickSight 对 AWS 资源的权限时,收到以下错误之一。如何解决此问题?

  • “QuickSight 用于访问 AWS 资源的角色已在 QuickSight 之外修改为无法恢复的状态,因此,您无法再在 QuickSight 中编辑 AWS 资源权限。”
  • “我们无法更新 QuickSight 对 AWS 资源的权限。您无权编辑 QuickSight 对 AWS 资源的权限,或使用 IAM 控制台更改 QuickSight 权限,因此,不再可以通过 QuickSight 进行更新。”

简短描述

Amazon QuickSight 承担服务角色 (aws-quicksight-service-role-v0) 来与其他 AWS 服务交互。当您开始使用 QuickSight 时,会自动创建服务角色。允许 QuickSight 访问 AWS 资源时,它将托管策略附加到服务角色中。

当您从 AWS Identity and Access Management (IAM) 控制台编辑 QuickSight 对您的 AWS 资源的权限时,通常会发生这些错误。为避免发生这些错误,仅从 Amazon QuickSight 控制台内编辑 QuickSight 对 AWS 资源的权限。

解决方法

1.    确认您的 IAM 用户是管理员,或者在 QuickSight 中具有管理员访问权。有关更多信息,请参阅在 Amazon QuickSight 内管理用户访问权

2.    确认您的 IAM 策略可使您删除然后重新创建 QuickSight 服务角色和相应的客户托管策略(AWSQuickSightIAMPolicyAWSQuickSightS3PolicyAWSQuickSightRDSPolicyAWSQuickSightRedshiftPolicy):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:DetachRolePolicy",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:CreateRole"
            ],
            "Resource": "arn:aws:iam::<Account-id>:role/service-role/aws-quicksight-service-role-v0"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:ListPolicies",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetPolicy",
                "iam:ListPolicyVersions",
                "iam:ListAttachedRolePolicies",
                "iam:GenerateServiceLastAccessedDetails",
                "iam:ListEntitiesForPolicy",
                "iam:ListPoliciesGrantingServiceAccess",
                "iam:ListRoles",
                "iam:GetServiceLastAccessedDetails",
                "iam:ListAccountAliases",
                "iam:ListRolePolicies",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "iam:DeletePolicy",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:DeletePolicyVersion"
            ],
            "Resource": [
                "arn:aws:iam::<Account-id>:policy/service-role/AWSQuickSightIAMPolicy",
                "arn:aws:iam::<Account-id>:policy/service-role/AWSQuickSightRDSPolicy",
                "arn:aws:iam::<Account-id>:policy/service-role/AWSQuickSightS3Policy",
                "arn:aws:iam::<Account-id>:policy/service-role/AWSQuickSightRedshiftPolicy"
            ]
        }
    ]
}

3.    在 IAM 控制台的左侧导航窗格中,选择角色

4.    搜索 aws-quicksight-service-role-v0,然后选中角色名称旁的复选框。

5.    选择删除角色

6.    在左侧导航窗格中选择策略

7.    搜索然后删除下面的客户托管策略
AWSQuickSightIAMPolicy
AWSQuickSightRedshiftPolicy
AWSQuickSightS3Policy
AWSQuickSightRDSPolicy
注意:
QuickSight 使用 AWSQuicksightAthenaAccess 等 AWS 托管策略来控制对特定 AWS 资源的访问权。您无法删除 AWS 托管策略。

8.    打开 Amazon QuickSight 控制台

9.    要恢复 QuickSight 对 AWS 服务的访问权限,请参阅如何启用或禁用 Amazon QuickSight 可以访问的 AWS 服务。当您完成这些步骤时,QuickSight 会自动重新创建服务角色。然后,这些措施将解决权限错误。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?