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アドレスのユーザーのみしかアクセスできず、さらにセキュアなデータ管理が可能になります。
サポートして頂くと、こちらからもサポート返しさせて頂きます。