2&>1

AWSとかGCPとかGolangとかとか

EC2へのElasticIPの取り扱いを制限

どういうこと

EC2に対してElasticIPをつけて運用しますよね。

踏み台とかメールサーバ立てるとそうなるじゃないです。

その場合怖いのって割り当てようと思ってたEIPを別の運用中サーバに割り当てたりですね、もっと怖いのがEIPついてるやつに上書きしちゃうとかとか。。。

これ実際うっかりやっちゃって冷や汗かきました。もちろん光速でつけ直しましたけど。

なんとか制限できないかーと思ったんですけどElasticIPの取り外しをできなくしたりとか保護したりってできないみたいです。

(できたら教えて。少なくともGUI上からは。)

できること

じゃなにができそうかというと。

ポリシーで制限

ポリシー作成

以下でポリシー作成する

・ReleaseAddress : ElasticIPの削除

・DisassociateAddress : ElasticIPの取り外し

Deny

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "ec2:ReleaseAddress",
                "ec2:DisassociateAddress"
            ],
            "Resource": "*"
        }
    ]
}

このポリシーを運用ユーザーに割り当てる

結果

こういう関連付けされてないEIPと関連付けられてるEIPをがある

f:id:piyojir0:20190402174639j:plain

空いてるEIPを消そうとする

f:id:piyojir0:20190402174748j:plain
delate error

EIPの関連付けの解除をする

f:id:piyojir0:20190402175119j:plain

すでに関連付けられてるインスタンスへ別のEIPを上書き関連付けする

f:id:piyojir0:20190402175426j:plain

できるんかい!!!

これは関連付け制限のポリシーで制限できないんですね。。

関連付け解除+割当かと思ったら割当ポリシーだけなのか。

間違い上書きをしないためには関連付け制限が必要だけどそうすると運用的にどうなのって。

頑張って気をつけるしか今んとこないです。はい