123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- module "s3_bucket" {
- source = "terraform-aws-modules/s3-bucket/aws"
- version = "~> 3.6"
- bucket_prefix = var.s3_bucket_prefix
- acl = "private"
- control_object_ownership = true
- object_ownership = "ObjectWriter"
- force_destroy = true
- attach_policy = true
- policy = data.aws_iam_policy_document.s3.json
- }
- resource "aws_iam_user" "s3" {
- name = "${var.name_prefix}-s3"
- path = "/dolphinscheduler/"
- }
- resource "aws_iam_access_key" "s3" {
- user = aws_iam_user.s3.name
- }
- data "aws_iam_policy_document" "s3" {
- statement {
- principals {
- type = "AWS"
- identifiers = [aws_iam_user.s3.arn]
- }
- actions = ["s3:*"]
- resources = [
- "${module.s3_bucket.s3_bucket_arn}",
- "${module.s3_bucket.s3_bucket_arn}/*"
- ]
- }
- }
- resource "aws_iam_user_policy" "s3" {
- name = "${var.name_prefix}-s3"
- user = aws_iam_user.s3.name
- policy = jsonencode({
- Version = "2012-10-17"
- Statement = [
- {
- Action = [
- "s3:*",
- ]
- Effect = "Allow"
- Resource = "*"
- },
- ]
- })
- }
|