File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change
1
+ resource "aws_iam_user" "state_user" {
2
+ name = " state-reader"
3
+ }
4
+
5
+ resource "aws_iam_access_key" "state_user_key" {
6
+ user = aws_iam_user. state_user . id
7
+ }
8
+
9
+ resource "aws_iam_user_policy" "state_user_policy" {
10
+ user = aws_iam_user. state_user . id
11
+ policy = data. aws_iam_policy_document . state_user_policy . json
12
+ }
13
+
14
+ # tfsec:ignore:aws-iam-no-policy-wildcards
15
+ data "aws_iam_policy_document" "state_user_policy" {
16
+ statement {
17
+ sid = " AllowS3ListAccess"
18
+ effect = " Allow"
19
+ actions = [
20
+ " s3:ListBucket" ,
21
+ " s3:GetBucketLocation"
22
+ ]
23
+ resources = [
24
+ var . state_bucket_arn
25
+ ]
26
+ }
27
+
28
+ statement {
29
+ sid = " AllowS3GetObject"
30
+ effect = " Allow"
31
+ actions = [
32
+ " s3:GetObject*" ,
33
+ ]
34
+ resources = [
35
+ " ${ var . state_bucket_arn } /*"
36
+ ]
37
+ }
38
+
39
+ statement {
40
+ sid = " AllowAssumeRole"
41
+ effect = " Allow"
42
+ actions = [
43
+ " sts:AssumeRole"
44
+ ]
45
+ resources = [aws_iam_role . user_role . arn ]
46
+ }
47
+ }
48
+
49
+ resource "aws_secretsmanager_secret" "state_user_access_keys" {
50
+ name = " s3-state-user"
51
+ description = " The access keys for S3 access"
52
+ recovery_window_in_days = 7
53
+ }
54
+
55
+ resource "aws_secretsmanager_secret_version" "state_user_access_keys" {
56
+ secret_id = aws_secretsmanager_secret. state_user_access_keys . id
57
+ secret_string = << JSON
58
+ {
59
+ "aws_user_name": "${ aws_iam_user . state_user . name } ",
60
+ "aws_access_key_id": "${ aws_iam_access_key . state_user_key . id } ",
61
+ "aws_secret_access_key": "${ aws_iam_access_key . state_user_key . secret } "
62
+ }
63
+ JSON
64
+ }
You can’t perform that action at this time.
0 commit comments