Skip to content

Instantly share code, notes, and snippets.

provider "aws" {
region = "eu-west-2"
}
resource "aws_s3_bucket" "test_client_bucket" {
bucket = "test-client-bucket-x130099"
region = "eu-west-2"
acl = "private"
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
resource "aws_iam_user" "test_client" {
name = "alice"
}
resource "aws_iam_access_key" "test_client" {
user = aws_iam_user.test_client.name
}
resource "aws_iam_access_key" "test_client" {
user = aws_iam_user.test_client.name
}
data "aws_iam_policy_document" "test_client" {
statement {
actions = [
"s3:ListBucket",
"s3:GetBucketLocation"
]
resources = [aws_s3_bucket.test_client_bucket.arn]
}
statement {
actions = [
resource "aws_iam_user_policy" "test_client" {
name = "test_policy"
user = aws_iam_user.test_client.name
policy = data.aws_iam_policy_document.test_client.json
}
resource "aws_iam_group" "client" {
name = var.client.name
}
resource "aws_iam_group_policy" "client_bucket" {
name = "${aws_iam_group.client.name}-bucket=policy"
group = aws_iam_group.client.name
policy = data.aws_iam_policy_document.client_bucket.json
}
variable "client" {
type = map
}
variable "users" {
type = list(string)
}