2012年1月25日

Amazon S3でアクセス指定かつ期限付きURLの生成

以前、下記の記事にて、S3でのアクセス制限と時限式のURLを生成する方法を紹介しましたが、
これらを同時に利用することができないか調査してみました。 まずは、バケットポリシーで制限をかけた状態で、Pre-signed URLを利用して
時限式のURLを生成します。
しかし、正しくアクセス制限が効かない状態になってしまいました。
これは、Pre-signed URLを生成した場合には、Pre-signed URLを生成したアカウントのポリシーで、
バケットポリシーを上書きしてしまう為のようです。

その為、Pre-signed URLを使用してアクセス制限を行う場合には、IAMでアカウントを作成して、
そのアカウントのポリシーで、S3へのアクセス制限を行えば良いとのことです。
{
 "Statement": [{
   "Effect": "Allow",
   "Action": [ "s3:GetObject" ],
   "Resource": "arn:aws:s3:::bucketname/*",
   "Condition": {
     "StringEquals": { "aws:SourceIp": "198.51.100.0/24" }}
 }]
}
この場合、対象のバケットの設定はデフォルトのままで良く、
このユーザのアクセスキーIDを使って、Pre-signed URLを生成します。
これにより、特定のIPアドレスからのみアクセス可能かつ、期間限定のURLとなります。

Pre-signed URLには、当該ユーザのアクセスキーIDが含まれるので、そのユーザのポリシーになる
ということのようです。


こちらの記事はなかの人(muramasa64)監修のもと掲載しています。
元記事は、こちら

お問い合わせはこちらから

  • お問い合わせ

0 コメント:

コメントを投稿