QuickSight の「問題が発生しました 詳細については、以下を参照してください IAM ポリシーの設定」 エラーの解消方法
今回は、QuickSight の検証中に「セキュリティとアクセス許可」の画面にて "管理" を押下した際にエラーとなってハマったので解消方法を残します。
発生したエラー
QuickSight の「セキュリティとアクセス許可」画面にて "管理" を押します。
すると、下記エラーが発生します。
問題が発生しました
詳細については、以下を参照してください IAM ポリシーの設定
英語表示だと以下になります。
Something went wrong
For more information see Set IAM policy
解消方法
本エラーの原因および解消方法については以下の公式ブログにまとめられています。
原因は、QuickSight の権限管理を QuickSight コンソールからではなく、IAM コンソールから行ってしまったこと、
解消方法は、QuickSight のサービスロールとそれに紐づくポリシーの削除/再作成を実施することです。
・「Something went wrong For more information see Set IAM policy」
これらのエラーは、AWS Identity and Access Management (IAM) コンソールから、AWS リソースに対する QuickSight のアクセス許可を編集したときに発生します。
注: ベストプラクティスは、IAM コンソールではなく Amazon QuickSight コンソールを使用して AWS リソースに対する QuickSight のアクセス許可を編集することです。
...
解決策
QuickSight が他の AWS サービスとやり取りするときに引き受ける aws-quicksight-service-role-v0 サービスロールと aws-quicksight-s3-consumers-role-v0 サービスロールを削除します。次に、aws-quicksight-service-role-v0 サービスロールと aws-quicksight-s3-consumers-role-v0 サービスロールに QuickSight がアタッチする管理ポリシーを削除します。最後に、AWS サービスへの QuickSight のアクセスを復元します。重要: ポリシーの削除を開始する前に、必ず IdiAM ポリシーのバックアップがあることを確認してください。バックアップを作成することで、以前にアクセスしていた Amazon Simple Storage Service (Amazon S3) アカウントのリソースを参照しやすくなります。
基本的には上記対応で解消すると思われますが、公式ブログに沿って全てのロールやポリシーを削除することはやや面倒だったため、
今回はどのポリシーが原因なのか把握し、そのポリシーの削除/再作成 のみでエラーが解消されるか試してみました。(そのため、以下手順は参考程度にお読みください。)
エラー解消手順
どこにエラーがあるか確認するためにエラー発生時の HAR ファイルを取得します。
取得方法は下記ブログをご参照ください。
その結果、取得した HAR ファイルに以下のエラーが記録されていることを確認しました。
{\"errorCode\":\"POLICY_VERSION_DELETED\",\"message\":\"Encountered error when parsing policy arn:aws:iam::<AWS アカウント ID>:policy/service-role/AWSQuickSightRedshiftPolicy in service role arn:aws:iam::<AWS アカウント ID>:role/service-role/aws-quicksight-service-role-v0\"}
上記を見ると、エラーの発生原因としては、QuickSight が利用している IAM ポリシー AWSQuickSightRedshiftPolicy に起因している可能性が考えられます。なので、このポリシーを削除して当該エラーが改善されるか確認します。
比較として今現在の IAM ロール aws-quicksight-service-role-v0 の状態を載せます。
現在は AWSQuickSightRedshiftPolicy がアタッチされています。
IAM ロール aws-quicksight-service-role-v0
IAM コンソールから AWSQuickSightRedshiftPolicy を削除します。(前述の公式ブログにある通り、念の為ポリシー内容をコピーなどしてバックアップしておくことを推奨します。)
ポリシー削除後、IAM ロール aws-quicksight-service-role-v0 でもちゃんと無くなっていることを確認。
その後、QuickSight の「セキュリティとアクセス許可」画面にて "管理" を押下すると、当初のエラーは発生せず、以下の権限管理画面を開くことができました。
なお、ここで Redshift にチェックを入れ、”保存” してみます。
その結果、Redshift へのアクセス許可が追加され、
IAM ロールにも AWSQuickSightRedshiftPolicy が復元されていることが確認できました。
終わりに
今回は QuickSight の権限管理画面で発生するエラーの解消をしてみました。
基本的には、本文中に記載した AWS 公式ブログに基づきロールやポリシーの削除、その後、QuickSight コンソールからの復元をいただければ解消されるかと思います。
一方で今回は、どのポリシーがエラーの原因になっているか調べたかったため、HAR ファイルを取得し、そのポリシーのみを削除/復元 することでエラーを解消してみました。
QuickSight 検証の際に、本エラーの解決に少々手間取ったので、備忘録です。
本記事がお役に立てば幸いです。
参考文献