インフラエンジニアの技術ブログ

日々学んでいることをブログでまとめていきます。

aws_s3_バケットにポリシーを作成して、暗号化したファイル(オブジェクト)のみアップロード

1.s3上で、バケットを作成

2.作成したバケット名をクリック
→[アクセス権限]タブをクリック
→「バケットポリシー」をクリック

3.画面下部「ポリシージェネレーター」をクリック

4.別画面が表示。以下設定する
select Type of Policy  -> S3 Bucket Policy
Effect -> Deny
Princpal -> *
Actions -> PutObject
Amazon Resource Name ->パケットポリシーエディター ARN:から右側の文字列をコピーアンドペースト

Add Conditions
 Condition ->StringNotEquals
 Key -> s3:x-amz-server-side-encryption
 Value -> aws:kms
 
4.[Add Statement]をクリック
->[Generate Policy]をクリック

5.[Policy JSON Document]が表示
表示されるコードをコピー→[Close]をクリック

6.5でコピーしたコードをパケットポリシーエディター ARN:の文字列の下側のコード記載する箇所
(グレーっぽい色)にペースト

7."Resource":の行右端から
/*
を追記->保存
完成したのがこちら
------
{
    "Version": "2012-10-17",
    "Id": "Policyxxxxxxxxxxxxx",
    "Statement": [
        {
            "Sid": "Stmtxxxxxxxxxxxxx",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::encrypted-backet/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        }
    ]
}
------
8.Amazon S3に戻り作成したバケット名をクリック
[概要]タブから[アップロード]をクリック

9.アップロード
①ファイルの選択→任意のファイルを選択し[次へ]をクリック
②アクセス許可を設定する→そのまま[次へ]をクリック
③アクセス許可を設定する→暗号化セクション「AWS KMSマスターキー」を選択し[次へ]をクリック
(他選択ではファイルのアップロード失敗)
④確認→[アップロード]をクリック

ファイルがアップロードされることを確認

 

補足
③アクセス許可を設定する→暗号化セクション

なし
もしくは
Amazon S3マスターキー
を選択した場合はファイルアップロードは失敗する