Skip to content

Commit 92c0431

Browse files
authored
Merge pull request #111 from OWASP/fix/s3-user
fix: actually add s3 user
2 parents 321ed85 + cb086a6 commit 92c0431

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

aws/s3-user.tf

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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+
}

0 commit comments

Comments
 (0)