hello-world
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

[aws]s3 lsで取得したファイルを更新日時順でソートする

s3 lsコマンドを利用するとバケットに保存されているファイル情報を取得できます。

AWS SAMを使って署名付きURL発行APIを作る

S3の署名付きURL発行機能の検証を兼ねて、S3のキーをパラメータとして受け取り、署名付きURLを発行するAPIを作ってみました。

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

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

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

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