CloudFormationを使ってKMS暗号キーを使用したS3を作成する【AWS】

・CloudFormationを使ってKMS暗号化キーを使用したS3を作成したい。
・KMSを使用して暗号化したい。
・CloudShellを使ってS3の暗号化確認を行いたい。
KMSの作成
KMSのダッシュボードに移動し「キーの作成」をクリック

下記画像のように設定を入れててください。詳細オプションはデフォルトのままで大丈夫です。

ラベルを追加でエイリアスを任意で入力してください。タグはなくても大丈夫です。

「キー管理アクセス許可を定義」では「AdministratorAccess」ポリシーをアタッチしたユーザーを指定します。それ以外はデフォルトで大丈夫です。

アクセス許可も同様です。

キーポリシーは下記のように設定し「完了」をクリック。

キーポリシーは以下のように設定されます(自動)。
{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}
今回はこの鍵を使用して、S3を作っていきます。

S3をCloudFormationを使って作成する
下記リンク先資料を参考に作成しました。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html
“KMS-KEY-ARN”にはKMSダッシュボード→カスタマー管理型のキー→キーIDをクリックすればARNが確認できます。
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "S3 bucket with default encryption using SSE-KMS with an S3 Bucket Key",
"Resources": {
"EncryptedS3Bucket": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": {
"Fn::Sub": "encryptedbucket-${AWS::Region}-${AWS::AccountId}"
},
"BucketEncryption": {
"ServerSideEncryptionConfiguration": [
{
"ServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": "KMS-KEY-ARN"
},
"BucketKeyEnabled": true
}
]
}
},
"DeletionPolicy": "Delete"
}
}
}
※KMSのARNは下記画面から確認できます。

CloudFormationの取り込み
次にCloudFormationの取り込みを行なっていきます。
CloudFormationのダッシュボードに移動し「スタックの作成」をクリック

テンプレートの指定より「テンプレートファイルのアップロード」を選択し、先ほど作成したCloudFormationをアップロードし「次へ」をクリックします。

スタック名を任意で入力。パラメータ属性は今回は指定していないのでないです。

タグだけ入力しましたが、必要ない方は空白で問題ないです。

レビューが表示されますが、問題なさそうであれば「送信」をクリックしてください。
スタックが「CREATE_COMLATE」となればOKです。S3を見てみましょう。

S3のバケット一覧を見てみましょう。
先ほど作成した「encryptedbucket-ap-northeast-1-YOUR _ACCOUNT_ID」のバケットができていますね。

確認
確認してみましょう。今回はCloudShellを用いて確認します。
まずは、下記コマンドを実行して、S3のバケット一覧を取得します。
aws s3api list-buckets

バケット名を取得したら、今回作成したバケット名に変えて、下記コマンドを実行
aws s3api get-bucket-encryption --bucket YOUR_CREATE_BUCKET_NAME

SSEAlgorithmの欄でaws:kmsという記載が確認できました。
以上です。誰かの参考になれば幸いです。