S3の制限付きダウンロードURLにIPアドレス制限をかける

AWS S3では、有効期限つきのリンク(SignedURL)を発行できる機能があります。しかし、この機能はリンクを知っている人なら誰でもダウンロードできてしまう問題があります。

そこでもう1段階セキュリティを強化する方法として時間の制限に加えてIPアドレスの制限をかける方法があります。AWSでは、IPアドレスの制限はIAMのポリシーで行うことができ、オブジェクトをダウンロードさせたいIPアドレスを設定したポリシーを作成し、ユーザーにそのポリシーをアタッチします。そして、そのAWSアクセスキーでURLを生成すれば、特定のIPからのみしかアクセスできないようになります。

例えば、IAMに設定するポリシーは以下のようになります。

{
  "Version": "2012-10-17",
   "Statement": [
       {
           "Sid": "S3GetObjectIPAllowOnly",
           "Effect": "Allow",
           "Action": [
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::bucketName/*"
           ],
           "Condition": {
               "IpAddress": {
                   "aws:SourceIp": [
                       "xxx.xxx.xx.xx/xx"  // My IP Address
                   ]
               }
           }
       }
   ]
}

これで有効期限つきのリンクを発行すると、指定されたIPアドレスのユーザーのみしかアクセスできず、さらにセキュアなデータ管理が可能になります。



サポートして頂くと、こちらからもサポート返しさせて頂きます。