terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
  }
}

module "cross_account_assume_role_policy" {
  source         = "./iam_policy_documents"
  require_mfa    = var.require_mfa
  principal_list = var.principal_list
}

resource "aws_iam_role" "cross_account_role" {
  name                  = var.name
  assume_role_policy    = module.cross_account_assume_role_policy.policy_json
  force_detach_policies = true
  tags                  = var.common_tags
  max_session_duration  = var.max_session_duration
}

resource "aws_iam_role_policy_attachment" "cross_account_assume_role" {
  count      = length(var.policies_list)
  role       = aws_iam_role.cross_account_role.name
  policy_arn = var.policies_list[count.index]
}

