はじめに
AWS の学習中に、不要になった Elastic IP (EIP) を整理しようとしたところ、管理者権限があるはずなのに「権限がない」とエラーが出て、解除できない事態に遭遇しました。
結論から言うと、原因は IAM の権限不足ではなく、AWS の「仕様」でした。
備忘録と同じエラーで「なぜ?」となっている方の参考になれば幸いです。
最初の気づき
以前 Web の 3 層構成の構築学習をした後、無駄なリソースがないかを AWS コンソールで確認していました。
その時に作成した覚えのない Elastic IP を発見したことが始まりです。
発生した問題
EC2 コンソールから Elastic IP の関連付けを解除しようとした際、以下のエラーメッセージが表示されました。
Elastic IP アドレスの関連付けを解除できませんでした。
Elastic IP アドレス <IP アドレス> You do not have permission to access the specified resource.
私は、管理者ユーザーとして操作していたため、疑問に思い、調査を行いました。
調査 : AWS CLI で詳細を確認する
AWS のコンソール上では、どのインスタンスが関係しているのかわからなかったため、AWS CLI を利用することにしました。
手順 1. CloudShell を開く
AWS コンソールから CloudShell を起動します。
手順 2. コマンド入力
aws ec2 describe-addresses --public-ips <IP アドレス>
実際に入力した画面です。
実行結果の中にある以下の 1 行で確認することができました。
"ServiceManaged": "alb"
原因 : マネージドサービスによる管理
"ServiceManaged": "alb"という値は、この Elastic IP が ALB (Application Load Balancer) によって管理されていたということです。
AWS では、マネージドサービス (ALB や NAT ゲートウェイなど) が使用しているリソースは、ユーザーが直接変更できない仕様になっています。
これは、そのサービスが正常に動作するための AWS の仕様です。
そのため、Elastic IP の関連付けだけを手動で解除することはできませんでした。
対処法
この Elastic IP を開放する場合は、IP アドレスの操作をするのではなく、関連するマネージドサービス自体を削除する必要があります。
まとめ
今回の経験から、以下のことを学びました。
・「権限エラー」と表示されても IAM の問題とは限らない
・ まずは リソースの関連付けを確認することが重要
・ AWS CLI を使うと リソースの詳細を確認できる
AWS で原因不明のエラーに遭遇した場合は、CLI で確認してみると解決のヒントが見つかるかもしれません。



