回答編集履歴

2

誤字を訂正

2022/10/01 10:13

投稿

jhashimoto
jhashimoto

スコア838

test CHANGED
@@ -1,4 +1,4 @@
1
- フォルダの実はサイズ0のオブジェクトなので `aws_s3_object`でできそうです。(未検証です)
1
+ フォルダの実はサイズ0のオブジェクトなので `aws_s3_object`でできそうです。(未検証です)
2
2
 
3
3
  ```tf
4
4
  resource "aws_s3_object" "object" {

1

検証結果を追加

2022/10/01 09:22

投稿

jhashimoto
jhashimoto

スコア838

test CHANGED
@@ -10,3 +10,58 @@
10
10
  [aws_s3_object | Resources | hashicorp/aws | Terraform Registry](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_object)
11
11
 
12
12
  [Amazon S3における「フォルダ」という幻想をぶち壊し、その実体を明らかにする | DevelopersIO](https://dev.classmethod.jp/articles/amazon-s3-folders/)
13
+
14
+ # 追記
15
+ 確認した結果、想定どおりに動作しました。
16
+
17
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-01/ac47127d-9ed5-4b80-9fd9-28119b64e8ac.png)
18
+
19
+ ## コード
20
+ ```tf
21
+ terraform {
22
+ required_version = ">= 1.3"
23
+ }
24
+
25
+ provider "aws" {
26
+ region = "ap-northeast-1"
27
+ }
28
+
29
+ ##########################################################
30
+ # variable 設定
31
+ ##########################################################
32
+ # 変数
33
+ variable "project" {
34
+ default = "20221001"
35
+ }
36
+ variable "env" {
37
+ default = "test"
38
+ }
39
+
40
+ resource "aws_s3_bucket" "athena_log_s3" {
41
+ bucket = "${var.project}-athena-log-${var.env}"
42
+ acl = "private"
43
+
44
+ # S3バケットのデフォルト暗号化
45
+ server_side_encryption_configuration {
46
+ rule {
47
+ apply_server_side_encryption_by_default {
48
+ #kms_master_key_id = "aws/s3"
49
+ #sse_algorithm = "aws:kms"
50
+ # 検証環境にaws/s3のキーがなかったので改変
51
+ sse_algorithm = "AES256"
52
+ }
53
+ }
54
+ }
55
+ tags = {
56
+ Name = "${var.project}-athena-log-${var.env}"
57
+ }
58
+ }
59
+
60
+ # フォルダ
61
+ resource "aws_s3_object" "object" {
62
+ bucket = aws_s3_bucket.athena_log_s3.bucket
63
+ key = "analytics/"
64
+ }
65
+ ```
66
+
67
+