QuickSight が自動作成するカスタマー管理ポリシーは、サービスロール以外にアタッチするとサービスロール側でエラーになる

QuickSight が自動作成するカスタマー管理ポリシーは、サービスロール以外にアタッチするとサービスロール側でエラーになる

「以下のポリシーは QuickSight ロールにアタッチされていないか、現在にアタッチされています」 というメッセージが表示された際の対処法
Clock Icon2025.06.10

コーヒーが好きな emi です。

タイトルが答えなのですが、QuickSight の AWS サービスへのアクセス設定で 「以下のポリシーは QuickSight ロールにアタッチされていないか、現在にアタッチされています」 というメッセージが表示された際の対処法を記載します。

事象

Athena 経由で S3 バケットのデータを可視化するため、以下のように QuickSight の管理画面から [セキュリティとアクセス許可] - [QuickSight の AWS サービスへのアクセス] - [管理] で、S3 バケットへのアクセスを許可しようとしました。

ちなみに IAM ロールは 「QuickSight で管理されるロール (デフォルト)」 を使用しています。

quicksight-service-role-error-custom-managed-policy-attachment_1

すると、以下のようなエラーが発生しました。

IAM ロールを更新できません。次の 1 つ以上の理由によるものである可能性があります:

• ロールは QuickSight サービスプリンシパルを明示的に信頼しません。

• 以下のポリシーは QuickSight ロールにアタッチされていないか、現在にアタッチされています:
  ○ arn:aws:iam::123456789012:policy/service-role/AWSQuickSightS3Policy
  ○ arn:aws:iam::123456789012:policy/service-role/AWSQuickSightRedshiftPolicy
  ○ arn:aws:iam::123456789012:policy/service-role/AWSQuickSightIAMPolicy

• 使用している認証情報に次のアクセス許可があることを確認します:
  ○ iam:CreateRole, iam:CreatePolicy, iam:CreateRolePolicy, iam:CreatePolicyVersion, iam:DeletePolicyVersion, iam:ListAttachedRolePolicies, iam:GetRole, iam:GetPolicy, iam:DetachRolePolicy, iam:GetPolicyVersion and iam:ListPolicyVersions

quicksight-service-role-error-custom-managed-policy-attachment_2

原因

さて、心当たりがあったのは 以下のポリシーは QuickSight ロールにアタッチされていないか、複数にアタッチされています: の部分です。

  • AWSQuickSightS3Policy
  • AWSQuickSightRedshiftPolicy
  • AWSQuickSightIAMPolicy

これら 3 つの IAM ポリシー(カスタマー管理ポリシー)は、QuickSight がデフォルトで利用するサービスロール 「aws-quicksight-service-role-v0」 にアタッチされているもので、AWS 側で自動作成されるものです。

私は、以下ブログの QuickSight に Athena フェデレーテッドクエリ用 Lambda へのアクセス権限を付与する で、これら 3 つの QuickSight が自動作成するカスタマー管理ポリシーを、自分が作成した IAM ロール 「quicksight-admin-role」 に付与していました。

https://dev.classmethod.jp/articles/connecting-from-athena-to-dynamodb-quicksight/#quicksight-%25E3%2581%25AB-athena-%25E3%2583%2595%25E3%2582%25A7%25E3%2583%2587%25E3%2583%25AC%25E3%2583%25BC%25E3%2583%2586%25E3%2583%2583%25E3%2583%2589%25E3%2582%25AF%25E3%2582%25A8%25E3%2583%25AA%25E7%2594%25A8-lambda-%25E3%2581%25B8%25E3%2581%25AE%25E3%2582%25A2%25E3%2582%25AF%25E3%2582%25BB%25E3%2582%25B9%25E6%25A8%25A9%25E9%2599%2590%25E3%2582%2592%25E4%25BB%2598%25E4%25B8%258E%25E3%2581%2599%25E3%2582%258B

これら 3 つの IAM ポリシーは AWS 側で自動作成されるとはいえ、カスタマー管理ポリシーなので、他の IAM ロールに付与しても大丈夫だろうと思ったのですが、どうやらダメみたいです。

quicksight-service-role-error-custom-managed-policy-attachment_6

対処

自分が作成した IAM ロール 「quicksight-admin-role」 から、3 つの IAM ポリシーを外します。

  • AWSQuickSightS3Policy
  • AWSQuickSightRedshiftPolicy
  • AWSQuickSightIAMPolicy

quicksight-service-role-error-custom-managed-policy-attachment_3

quicksight-service-role-error-custom-managed-policy-attachment_4

その後、再度 S3 バケットへの許可を設定すると、問題なく設定できました。
quicksight-service-role-error-custom-managed-policy-attachment_5

おわりに

QuickSight 側で自動作成されるデフォルトのサービスロール 「aws-quicksight-service-role-v0」 をユーザーが手動で触ってはいけないのは認識していましたが、この IAM ロールに付与されているカスタマー管理ポリシーも使いまわさない方が良いものだったのですね。勉強になりました。

本記事への質問やご要望については画面下部のお問い合わせ「DevelopersIO について」からご連絡ください。記事に関してお問い合わせいただけます。

参考

https://dev.classmethod.jp/articles/vpc-connections-in-quicksight-are-not-being-removed-easily/

https://repost.aws/ja/knowledge-center/quicksight-permission-errors

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.