# TODO: Consider scoping down IAM roles depending on your needs locals { prefix = var.prefix sm_execution_role_name = "${local.prefix}-sagemaker-execution-role" kms_key_arn = var.kms_key_arn } data "aws_caller_identity" "current" {} data "aws_region" "current" {} ################################################################################################## # Roles & Policies ################################################################################################## resource "aws_iam_role" "sagemaker_execution_role" { name = local.sm_execution_role_name assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Sid = "AllowRoleAssume" Principal = { Service = "sagemaker.amazonaws.com" } }, ] }) } resource "aws_iam_role_policy_attachment" "aws_sagemaker_full_access" { role = aws_iam_role.sagemaker_execution_role.name policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess" } resource "aws_iam_role_policy_attachment" "aws_sagemaker_cloudformation_poweruser" { role = aws_iam_role.sagemaker_execution_role.name policy_arn = "arn:aws:iam::aws:policy/AWSCloudFormationFullAccess" } resource "aws_iam_policy" "codecommit_policy" { name = "${local.prefix}-codecommit-policy" description = "${local.prefix} policy for SM Studio codecommit access" policy = <