今回は django-storages の s3boto バックエンド 用にセキュアな IAM ポリシーを用意しました。

みなさん、こんにちは。 開発のサカイです。

Amazon S3 (http://aws.amazon.com/jp/s3/) 利用者の操作用に、セキュアな IAM を作成して渡すという事をよく行っています。

参考: suz-lab - blog『S3操作用IAMアカウントのポリシー(AWS)』

今回は django-storages の s3boto バックエンド (https://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html) 用にセキュアな IAM ポリシーを用意しました。

オブジェクトのアップロードとダウンロードに限定したいのですが、 GetObject/PutObject 等に加えて、 boto がマルチパートアップロードを使うため MultipartUpload 系のアクションも許可する必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3::: examplebucket”
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3::: examplebucket/*"
        }
    ]
}

ぜひご参考ください。

仲間募集中

アイリッジでは、開発作業を効率的に進める方法など、楽しく情報交換しながら働ける仲間を募集しています。詳しくは募集要項へ!

URL: https://iridge.jp/recruit/


本記事はアイリッジブログで公開していたものをエンジニアリングブログとして再構成したものとなります。記事の内容は、記事執筆当時のものと異なる可能性があります。