sessanの日記

主に開発技術関連でお勉強したことをまとめていくサイトです。

S3のサーバサイド暗号化を設定する

S3のバケットにサーバサイド暗号化の設定を強制して、暗号化のオプションを指定せずにファイルをアップロードするとエラーにしたい場合は、以下の様なバケットポリシーをバケットに設定すればよい。YourBucketの部分は設定したいバケット名に変更する。

{
   "Version":"2012-10-17",
   "Id":"PutObjPolicy",
   "Statement":[{
         "Sid":"DenyUnEncryptedObjectUploads",
         "Effect":"Deny",
         "Principal":{
            "AWS":"*"
         },
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::YourBucket/*",
         "Condition":{
            "StringNotEquals":{
               "s3:x-amz-server-side-encryption":"AES256"
            }
         }
      }
   ]
}

参考


サーバサイド暗号化についてはUsing Server-Side Encryption - Amazon Simple Storage Service

バケットポリシーの各要素については、IAM Policy Elements Reference - AWS Identity and Access Management

バケットポリシーのconditionに指定可能なキーの一覧は、Using IAM Policies - Amazon Simple Storage Service。ここに、暗号化のためのキーも記載されている。