Monthly Archives: February 2020

AWS勉強メモ

0x00 背景

0x01 サービス毎のメモ

  1. STS
    https://aws.amazon.com/premiumsupport/knowledge-center/iam-restrict-calls-ip-addresses/
    APIコールをIPで制限したい場合、公式にはこのようなやり方が推奨されている。自分は疑問に思うのは、ここの Sample IAM User Policy の所に aws:SourceIp の制限をつけるのと Sample IAM Role Trust Policy に aws:SourceIp の制限をつけるのは違うのか?

    実際に試してみよう。
    例えば test-user-nevermoe という user にこのようなポリシーをアタッチする:

        {
            "Version": "2012-10-17",
            "Statement": {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::123456789012:role/test-role-nevermoe",
                "Condition": {
                    "IpAddress": {
                        "aws:SourceIp": "1.2.3.4/32"
                    }
                }
            }
        }

    この場合は test-user-nevermoe という user は 1.2.3.4 からログインする時に限って、test-role-nevermoe に aAssumeRole できることが確認した。

    次に、このような Trust Policy を test-role-nevermoe にアタッチしてみよう:

        {
            "Version": "2012-10-17",
            "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::0123456789012:user/test-user-wan"
                },
                "Action": "sts:AssumeRole",
                "Condition": {
                    "IpAddress": {
                    "aws:SourceIp": "1.2.3.4/32"
                    }
                }
            }]
        }

    この場合も同じく、test-user-wan のログイン IP が 1.2.3.4 の時にのみ、test-role-nevermoe に AssumeRole できる。

    この二つのやり方は違いがないが、role のほうに Policy で制限した方が管理しやすいかもしれない。ただし、個人的には、user を棚卸しするときの利便性を考えると、やはり user 側で IP 制限を書いた方が楽では?

Continue reading