AWS S3でIP制限をかける

はじめに

あるあるネタ過ぎてブログに書くのも躊躇しましたが、自分用メモとして。

開発用のAWSのbucketは基本的に要認証にしています、一部のリソースのみ特定のIPからのアクセスは認証無しでもアクセスできるようにしたかった。

ポリシーの生成

AWSにはポリシーと言われる特定のサービスに対して特定の権限を付与するJSON形式で記述できるものがある

詳しくはこちら

で今回もそれを使って特定のIPのみアクセスできるようにする。

手で書ける人はいいが、普段からポリシーを書いてるわけではないので

AWS Policy Generator

で作成したものに許可するIPアドレスを追加することにした。

img

上記を設定してAdd Policyを選択すると

img

こんな感じに。

Generate Policyをすると

{
  "Id": "Policy123456789",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt123456789",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::some.hoge.bucket",
      "Principal": "*"
    }
  ]
}

ここに以下のように許可するIPを追加する

"Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "123.45.678.90",
                        "231.45.678.90"
                    ]
                }
            }

ポリシーを設定する

ポリシーが生成できたら

S3の設定からポリシーを設定する

img

参考URL


Amazon Web Services実践入門 (WEB+DB PRESS plus)
舘岡 守 今井 智明 永淵 恭子 間瀬 哲也 三浦 悟 柳瀬 任章
技術評論社
売り上げランキング: 7,735