QuickSight の VPC 接続がなかなか削除されないのは IAM ロールの権限の問題だった
コーヒーが好きな emi です。
QuickSight の VPC 接続(VPC Connection)がなかなか削除されなくて困ったので、調査したことと実施内容を記載します。
VPC 接続が削除できない
不要な VPC 接続(VPC Connection)を削除しようとします。
VPC 接続名のリンクを開くとこのようにステータスが表示されます。
削除を選択すると、
「VPC 接続の削除に成功しました」という表示は出るものの、
ステータスは「AVAILABLE」のままです。
編集
削除したい VPC 接続を編集してみます。
設定を確認すると、実行ロールに QuickSight のサービスロールである「aws-quicksight-service-role-v0」が設定されていました。
原因
QuickSight が自動で作成するサービスロールには以下の二つが存在します。
- aws-quicksight-service-role-v0
- aws-quicksight-secretsmanager-role-v0
これらのサービスロールをユーザーが直接編集すると、QuickSight の管理画面で「QuickSight の AWS のサービスへのアクセス」を編集する際にエラーになってしまうことがあります。
私は最初、VPC 接続を作成する際実行ロールとして「aws-quicksight-service-role-v0」を設定したが、VPC 接続がうまくいかない、という事象にぶつかっており、手で「aws-quicksight-service-role-v0」に VPC の編集権限を付けてしまったという経緯がありました。
この時は VPC 接続は作成できたものの、QuickSight の管理画面で「QuickSight の AWS のサービスへのアクセス」を編集しようとしたところエラーになってしまい、以下 re:Post 記事を参考に、サービスロールと、それに付与されている IAM ポリシーを一旦削除して、再度 QuickSight 側で自動作成されるのを待ちました。
そういう経緯で、VPC への権限がない新しいサービスロール「aws-quicksight-service-role-v0」が設定されていたために VPC 接続が削除できなかったのです。
今回は QuickSight が VPC を操作するために別途「quicksight-vpc-role」を作成し、VPC 接続の実行ロールとして設定しました。
「quicksight-vpc-role」に付与する権限は以下ドキュメントやブログを参照ください。
再度削除
再度削除を試みます。
「UNAVAILABLE」に変わりました!
詳細を開くと「DELETING」となっています。
少し待つと「DELETED」になりました。
QuickSight コンソールでVPCの接続の設定 - Amazon QuickSight からの引用ですが、ステータスの意味は以下のようになっています。
ステータス | 説明 |
---|---|
CREATING | ネットワークインターフェイスの作成が進行中です。 |
AVAILABLE | ネットワークインターフェイスは使用可能です。 |
CREATION_FAILURE | ネットワークインターフェイスを作成できませんでした。 |
UPDATING | ネットワークインターフェイスに関連付けられたセキュリティグループが更新されています。 |
UPDATE_FAILED | ネットワークインターフェイスに関連付けられたセキュリティグループが正常に更新されませんでした。 |
DELETING | ネットワークインターフェイスを削除しています。 |
DELETED | ネットワークインターフェイスは削除され、使用できなくなります。 |
DELETION_FAILED | ネットワークインターフェイスの削除は失敗し、引き続き使用できます。 |
DELETION_SCHEDULED | このネットワークインターフェイスは削除される予定です。 |
ATTACHMENT_FAILED_ROLLBACK_FAILED | Elastic Interface はアタッチに失敗し、アカウント内で作成されたElastic Network Interface を削除 QuickSight できませんでした。 |
EC2 コンソールからの確認
EC2 コンソールでネットワークインターフェースを確認すると、まだ「In-use」となっており、削除できないようでした。
まだ、QuickSight 用のセキュリティグループも削除できない状態です。
VPC リソースの削除
VPC 接続を使っているデータソース、データセット、分析、ダッシュボードを削除し、もう一つの VPC 接続も削除しました。
QuickSight で別リージョンの Redshift のデータを可視化する | DevelopersIO で作成したバージニア北部リージョンと東京リージョン間の VPC ピアリング接続も削除しました。
ここまで削除すると、QuiciSight 用のネットワークインターフェース(ENI)も消えてなくなっていました。
VPC の削除も実行できます。
QuickSight 用に準備した東京リージョンの VPC ごと綺麗に削除できました。
以上です。
参考