Updated buckets to generate iam users and separate between lambda and frontend

This commit is contained in:
Khalim Conn-Kowlessar 2023-07-13 19:36:56 +01:00
parent 88eb5ee91f
commit a62c9afa45
2 changed files with 46 additions and 9 deletions

View file

@ -15,8 +15,35 @@ resource "aws_s3_bucket" "bucket" {
} }
} }
resource "aws_iam_role" "role" { resource "aws_iam_user" "presign_frontend_user" {
name = "s3_presign_role" name = "presign_frontend_user-${var.environment}"
path = "/system/"
}
resource "aws_iam_access_key" "presign_frontend_user_access_key" {
user = aws_iam_user.presign_frontend_user.name
}
resource "aws_secretsmanager_secret" "presign_frontend_user_access_key" {
name = "${var.environment}/presign_frontend/access_key"
}
resource "aws_secretsmanager_secret_version" "presign_frontend_user_access_key" {
secret_id = aws_secretsmanager_secret.presign_frontend_user_access_key.id
secret_string = aws_iam_access_key.presign_frontend_user_access_key.id
}
resource "aws_secretsmanager_secret" "presign_frontend_user_secret_key" {
name = "${var.environment}/presign_frontend/secret_key"
}
resource "aws_secretsmanager_secret_version" "presign_frontend_user_secret_key" {
secret_id = aws_secretsmanager_secret.presign_frontend_user_secret_key.id
secret_string = aws_iam_access_key.presign_frontend_user_access_key.secret
}
resource "aws_iam_role" "presign_frontend_role" {
name = "presign_frontend_role-${var.environment}"
assume_role_policy = <<EOF assume_role_policy = <<EOF
{ {
"Version": "2012-10-17", "Version": "2012-10-17",
@ -24,7 +51,7 @@ resource "aws_iam_role" "role" {
{ {
"Action": "sts:AssumeRole", "Action": "sts:AssumeRole",
"Principal": { "Principal": {
"Service": "lambda.amazonaws.com" "Service": "ec2.amazonaws.com"
}, },
"Effect": "Allow", "Effect": "Allow",
"Sid": "" "Sid": ""
@ -34,9 +61,9 @@ resource "aws_iam_role" "role" {
EOF EOF
} }
resource "aws_iam_role_policy" "policy" { resource "aws_iam_role_policy" "presign_frontend_policy" {
name = "s3_presign_policy" name = "presign_frontend_policy-${var.environment}"
role = aws_iam_role.role.id role = aws_iam_role.presign_frontend_role.id
policy = <<EOF policy = <<EOF
{ {

View file

@ -3,7 +3,17 @@ output "bucket_name" {
value = aws_s3_bucket.bucket.bucket value = aws_s3_bucket.bucket.bucket
} }
output "role_arn" { output "presign_frontend_role_arn" {
description = "The ARN of the IAM role" description = "The ARN of the frontend IAM role"
value = aws_iam_role.role.arn value = aws_iam_role.presign_frontend_role.arn
}
output "presign_frontend_access_key_secret_name" {
description = "The name of the access key secret in AWS Secrets Manager for the frontend user"
value = aws_secretsmanager_secret.presign_frontend_user_access_key.name
}
output "presign_frontend_secret_key_secret_name" {
description = "The name of the secret key secret in AWS Secrets Manager for the frontend user"
value = aws_secretsmanager_secret.presign_frontend_user_secret_key.name
} }