メンテナンスで、EC2インスタンスのElastic IP(EIP)を付け替える場合があります。
古いEC2インスタンスからアドレスの関連付け解除後、新しいEC2インスタンスへアドレスの関連付けする際、「アドレスの関連付け」をメニューから選択するのですが、誤って「アドレスの解放」を選択した事がありました。
「アドレスの関連付け」と「アドレスの解放」のメニューが上下隣り合わせにあるので間違えやすい。
一応、確認のダイアログは表示されるけど、うっかり「リリース」の青いボタンを押しそうに・・・。
「リリース」ボタンを押す直前で気付きました。
脳が疲れていていると、注意力が低下してミスを犯しやすくなります。
IAMポリシーを記述する
誤ってEIPを解放すると、対象インスタンスに接続するための設定が随所にある場合、設定変更や関係者への周知が非常に手間です。
そこで、運用が安定したAWSアカウントでは、割り当て済みのEIPを解放する予定が当面無いので、IAMポリシーで解放を許可しないよう設定しました。
同様に、KeyPairやVPCの削除も同様に設定すると良いかもしれません。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "一意の識別子",
"Action": [
"ec2:ReleaseAddress"
],
"Effect": "Deny",
"Resource": "*"
}
]
}
※一意の識別子=ポリシー内で固有のID. Stmt10000000000001など。
検証
ポリシー作成後、ユーザやグループにアタッチして、EIPが解放できない事を検証します。
※検証用に新規に割り当てたEIPを使用する等、実運用で使用していないEIPで検証してください。
正しくポリシーが適用されていれば、アドレスの解放の確認ダイアログで「リリース」ボタンを押した際にエラーになります。