AWS

いつからIAMビジュアルエディタが正しいと錯覚していた?

IAMビジュアルエディタの警告に困惑したお話

※投稿主は初投稿なので不手際ございましたら申し訳ございません。

最近IAMポリシーをjsonではなくマネジメントコンソールから簡単かつわかりやすく作成でき、さらにはポリシーの内容を自動レビューしてくれる機能が追加されたのは皆さんもうご存知でしょうか。

最近CLBからALBに切り替えたついでにIAMポリシーも見直していたところビジュアルエディタのポリシーレビュー画面で警告が表示されていくらポリシーの内容を修正しても改善されなく困惑していました。。。

今回はビジュアルエディタのポリシーレビュー機能について投稿してみます。

結論

いきなり結論ですがビジュアルエディタの不具合でした。

ELBには2018/02/28現在では三種類あり、CLBとALB/NLBを操作するAPIが異なります。

[AWSCLIリファレンス]
https://docs.aws.amazon.com/cli/latest/reference/
CLB → ELB
ALB/NLB → ELBv2

このようにAWSでは区別されています。

どうやらレビュー機能では2つのうち個別で使用するアクションを指定すると
ELB(CLB)固有のアクションはELBv2としても認識されて、
ELBv2(ALB/NLB)固有のアクションはELBとしても認識され警告が表示される。
という現象が発生しています。

ちょっと何言ってんだこいつ?と思われそうなので再現してみます。

やってみた

jsonの内容は以下の通りです。
ELBv2固有のアクションのみを記載したIAMポリシーを作成します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:RegisterTargets",
                "elasticloadbalancing:DeregisterTargets"
            ],
            "Resource": "*"
        }
    ]
}

内容は

  • ターゲットグループへターゲット(EC2インスタンス等)を追加する
  • ターゲットグループからターゲットを外す

2つのアクションを許可するです。

ではビジュアルエディタを見てみましょう。

1.JPG

IAM によって 1 つ以上のアクションが認識されません。このアクション名にタイプミスがあるか、プレビューされたサービスまたはカスタムサービスの一部である可能性があります。

いやいやビジュアルエディタの画面からポチポチ作ったのにタイプミスするかいなww。
警告が出ているのはELBv2ではなくELBの箇所で出ているのがわかりますでしょうか。
ただしELBv2の箇所でもきちんとポリシーの概要は表示されています。

今度はELB(CLB)固有のアクションのみ記載したIAMポリシーです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                "elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
            ],
            "Resource": "*"
        }
    ]
}

内容は

  • CLBへEC2インスタンスを登録する
  • CLBからEC2インスタンスを登録解除する

2つのアクションを許可するです。

ではビジュアルエディタを見てみましょう。

2.JPG

今度はELBではなくELBv2で出ていますね!

さらに今度はELBで共通のアクションを織り交ぜてみます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:RegisterTargets",
                "elasticloadbalancing:DeregisterTargets"
            ],
            "Resource": "*"
        }
    ]
}

ELBv2固有のアクションに加えて2つ共通のDescribeLoadBalancersを加えました。
このアクションはELBのリスト・読み取りを許可します。

ではビジュアルエディタへ

3.JPG

ELBでRegisterTargetsとDeregisterTargetsに警告が表示されていますがDescribeLoadBalancersには特に警告は出ていません。

まとめ

  • ELB共通のアクションは問題ない
  • ELBとELBv2固有のアクションは別のタブで警告が表示される

ちなみにAWSサポートにも問い合わせてみて不具合ですとの回答いただきました。
修正はいずれ発生すると思いますが、普段使用していて特に問題ないです。

ただ、警告表示されるとなんか構えてしまいます(笑)

いかがでしたでしょうか。すごいどうでもいい記事ですが上司に
「エラーでてるぞ!!氏ね!!!!!」と言われてもしビジュアルエディタ画面を根拠に出されたらこんな不具合もあるってことを頭の片隅においておけば自分のせいにされずに済むかもしれませんw。

以上です。