module "cross_account_role" {
source = "registry.patterneddesigns.ca/patterneddesigns/iam-role/aws"
version = "2.0.0"
name = "cross-account-readonly"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Principal = { AWS = "arn:aws:iam::987654321098:root" }
Action = "sts:AssumeRole"
Condition = {
StringEquals = {
"sts:ExternalId" = "secure-external-id-12345"
}
Bool = {
"aws:MultiFactorAuthPresent" = "true"
}
}
}]
})
managed_policy_arns = [
"arn:aws:iam::aws:policy/ReadOnlyAccess"
]
max_session_duration = 14400 # 4 hours
}