跳至内容

如何对 Quick Sight 中的 AWS 资源权限错误进行故障排除?

2 分钟阅读
0

我想对在尝试编辑 Amazon Quick Sight 对 AWS 资源的权限时收到的错误进行故障排除。

简短描述

如果您在 AWS Identity and Access Management (IAM) 控制台中编辑 Quick Sight 对 AWS 资源的权限,则可能会收到以下错误:

  • “The role used by Quick Sight for AWS resource access was modified to an un-recoverable state outside of Quick Sight, so you can no longer edit AWS resource permissions in Quick Sight.”
  • “We were unable to update Quick Sight permissions for AWS resources.Either you are not authorized to edit Quick Sight permissions on AWS resources, or the Quick Sight permissions were changed using the IAM console and are therefore no longer updateable through Quick Sight.”
  • “We cannot update the IAM Role”
  • “Quick Sight has detected unknown policies attached to following roles please detach them and retry”
  • “Something went wrong For more information see Set IAM policy”

最佳做法是在 Quick Sight 控制台中编辑 Quick Sight 对 AWS 资源的权限。

解决方法

当 Quick Sight 与其他 AWS 服务交互时,Quick Sight 会代入 aws-quicksight-service-role-v0aws-quicksight-s3-consumers-role-v0 服务角色,然后将托管式策略附加到这些角色。删除这些服务角色,然后删除附加的托管式策略。最后,恢复 Quick Sight 对您的 AWS 服务的访问权限。

**重要事项:**在删除 IAM 策略之前,请务必对其进行备份。您可以通过备份查看之前拥有访问权限的 Amazon Simple Storage Service (Amazon S3) 账户资源。

验证 Quick Sight 和 IAM 权限,然后删除服务角色和策略

完成以下步骤:

  1. 查看您的 Quick Sight 用户账户,并确认您的用户具有管理员角色。

  2. 打开 IAM 控制台

  3. (可选)如果您尚未创建管理员,请创建 IAM 用户管理员

  4. 确保您的 IAM 策略允许您创建和删除 Quick Sight 服务和角色。
    IAM 策略示例:

    {  
      "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"
             "arn:aws:iam::Account-id:role/service-role/aws-quicksight-s3-consumers-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"
            "arn:aws:iam::Account-id:policy/service-role/AWSQuickSightS3ConsumersPolicy"
          ]
        }
      ]
    }
  5. 在导航窗格中,选择 Roles(角色)。

  6. 在角色搜索窗格中,查找并删除 aws-quicksight-service-role-v0aws-quicksight-s3-consumers-role-v0 IAM 角色。
    **注意:**当您在 Quick Sight 中设置权限时,Quick Sight 会自动创建这些服务角色。如果 Quick Sight 未创建 aws-quicksight-s3-consumers-role-v0 角色,请删除 aws-quicksight-service-role-v0 角色并继续操作。

  7. 在导航窗格中,选择 Policies(策略)。

  8. 在策略搜索窗格中,查找并删除客户管理型 IAM 策略。例如,在步骤 4 的示例 IAM 策略中删除以下客户管理型策略:
    AWSQuickSightRedshiftPolicy
    AWSQuickSightRDSPolicy
    AWSQuickSightIAMPolicy
    AWSQuickSightS3Policy
    AWSQuickSightS3ConsumersPolicy
    **注意:**当您允许 Quick Sight 访问 AWS 资源时,Quick Sight 会使用 AWS 托管式策略。例如,Quick Sight 会使用 AWSQuicksightAthenaAccess 策略来控制对特定 AWS 资源的访问。您无法删除 AWS 托管式策略。

恢复 Quick Sight 对 AWS 服务的访问权限

完成以下步骤:

  1. 打开 Quick Sight 控制台
  2. 在导航栏中,选择用户名下拉列表,然后选择 Manage Quick Sight(管理 Quick Sight)。
  3. 在导航窗格中,选择 Security & Permissions(安全性和权限)。
  4. Quick Sight access to AWS services(Quick Sight 访问 AWS 服务的权限)下,选择 Manage(管理)。
  5. Allow access and autodiscovery for these resources(允许访问和自动发现这些资源)中,选择要恢复的 AWS 服务。
  6. 选择 Save(保存)。

有关如何为 Quick Sight 配置对其他 AWS 服务中资源的访问权限的详细信息,请参阅访问数据来源