hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

[aws]s3バケットにIP制限をかける

公開日時

s3にはbasic認証を設定することはできないのですが、IP制限なら設定することができます。

そのやり方を調べてみました。

バケット作成後、「Properties」=>「Permissions」=>「Edit bucket policy」を選択 以下のようなバケットポリシーを設定します。

Resourceにバケット名を入力し、IpAddressに許可したいIPを入力すればIP制限をかけることができます。

ただし、個別にpublic設定にしたファイルにはバケットポリシーが適用されないので注意が必要です。

2015/3/6追記:「"Effect": "Allow"」でアクセス許可設定をするとうまく設定が適用できなかったので「"Effect": "Deny"」を用いるパターンに修正しました

{
    "Version": "2012-10-17",
    "Id": "S3Policy#{unique_id}",
    "Statement": [
        {
            "Sid": "Stmt#{unique_id}",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::バケット名/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIP": [
                        "xxx.xxx.xxx.xxx/xx",
                        "xxx.xxx.xxx.xxx"
                    ]
                }
            }
        }
    ]
}

参考


Related #aws

[ELB]SSL証明書設定の権限を持つIAMユーザPolicy

もともとはAWSの明細情報閲覧と、IAM管理を無効にしたユーザとして、以下のようなPolicy設定を行っていました。

[aws][mysql5.6]microインスタンス使用時にメモリ不足になったのでmysqlの設定を調整

AWSでt2.microインスタンスを使用して色々動かしていたら、あるスクリプトの実行時に

[rails]cap deploy時に複数のAuto Scalingグループにもデプロイしたい

先日、AWSのAuto Scallingを使った際に、cap deploy時にAuto Scaleインスタンスにも自動でデプロイできるようにする必要があったので調べたところ、

s3cmdの設定をプロジェクト毎に管理する

以前、 s3cmdをmacで使う方法 を書きましたが、 プロジェクトごとに異なるバケットを使用している場合は設定ファイルもプロジェクト毎に管理したいです。