Help us understand the problem. What is going on with this article?

AWS S3 デフォルト暗号化をやってみた

デフォルト暗号化を有効に設定すると、暗号化オプションなしでアップロードしても、ちゃんと暗号化されて保存されます。
ただし、バケットポリシーに暗号化なしのPUTリクエストを拒否するバケットポリシーがある場合、それは拒否されます。
というのも、以前はデフォルト暗号化がなかった時は、バケットポリシーで暗号化されていないオブジェクトを拒否するようにする必要がありました。
Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護
そのため、バケットポリシーを確認するようにしましょう。

SSE-S3とSSE-KMSのデフォルト暗号化の動作を中心に操作していきます。
↓のページ参考になります。
SSE-S3とSSE-KMSの違いを知る

1.SSE-S3

AES-256でとりあえず設定してみる。
image.png

とりあえず適当なファイルをアップロード。

"ServerSideEncryption": "AES256" 暗号化されていることが確認できた。

[root@ip-172-31-43-135 ~]# aws s3api head-object --bucket naata-encryption --key test.txt
{
    "AcceptRanges": "bytes",
    "ContentType": "text/plain",
    "LastModified": "Thu, 09 May 2019 01:05:46 GMT",
    "ContentLength": 5,
    "ETag": "\"d8e8fca2dc0f896fd7cb4cb0031ba249\"",
    "ServerSideEncryption": "AES256",
    "Metadata": {}
}

2.SSE-KMS

ステップ 1 エイリアスと説明の追加
キーのエイリアスと説明を入力します。
image.png

ステップ 2 タグの追加
タグを追加できます。
image.png

ステップ 3 キーの管理アクセス許可を定義
【鍵の管理者】のユーザーあるいはRoleを指定します。
ここでは、EC2(Amazon Linux2)からIMAロールでS3を使って操作しているため、そのIMAロールを指定しました。
image.png

ステップ 4 キーの使用アクセス許可を定義
【鍵の利用者】のユーザーあるいはRoleを指定します
他のAWSアカウントも指定できるみたいですが、今回は管理者と利用者を同一にしています。
image.png

ステップ 5 キーポリシーの確認と編集
image.png

{
    "Id": "key-consolepolicy-3",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::************:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::************:role/naata-s3-access"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::************:role/naata-s3-access"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::************:role/naata-s3-access"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}

適当なファイルをアップロードし、暗号化されているか確認する。

[root@ip-172-31-43-135 ~]# aws s3api head-object --bucket naata-encryption --key
 test2.txt
{
    "AcceptRanges": "bytes",
    "ContentType": "text/plain",
    "LastModified": "Thu, 09 May 2019 02:23:32 GMT",
    "ContentLength": 12,
    "ETag": "\"932897aa0794109c3a8da9ea61d9a264\"",
    "ServerSideEncryption": "aws:kms",
    "SSEKMSKeyId": "arn:aws:kms:ap-northeast-1:**********:key/515339c7-8419-4377-aaba-12ece413c076",
    "Metadata": {}
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした