seahaven-org-baseline/lib/hcptf-bootstrap/scoped-apply-iam.json.tmpl
Adam Moussa 7e41625e4b
Some checks are pending
Deploy / deploy-management (push) Waiting to run
Deploy / deploy-external-dev (push) Waiting to run
Deploy / deploy-security (push) Waiting to run
Deploy / deploy-dev (push) Waiting to run
Deploy / deploy-prod (push) Waiting to run
feat(iam): allow PassRole to ECS tasks and EventBridge Scheduler (#151)
A first apply of Fargate and Scheduler targets cannot create those service-linked attachments while PassRole is Lambda-only.
2026-09-21 18:59:08 +00:00

141 lines
4 KiB
Cheetah

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyCreatePolicy",
"Effect": "Deny",
"Action": [
"iam:CreatePolicy",
"iam:CreatePolicyVersion"
],
"Resource": "*"
},
{
"Sid": "CreateExecRoleWithBoundary",
"Effect": "Allow",
"Action": "iam:CreateRole",
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/__STACK_PREFIX__*",
"Condition": {
"StringLike": {
"iam:PermissionsBoundary": [
"arn:aws:iam::__ACCOUNT_ID__:policy/tf-managed/__STACK_PREFIX__*",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary-__STACK_NAME__"
]
}
}
},
{
"Sid": "MutateExecRoleWithBoundary",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:PutRolePermissionsBoundary"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/__STACK_PREFIX__*",
"Condition": {
"StringLike": {
"iam:PermissionsBoundary": [
"arn:aws:iam::__ACCOUNT_ID__:policy/tf-managed/__STACK_PREFIX__*",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary-__STACK_NAME__"
]
}
}
},
{
"Sid": "WriteExecRoles",
"Effect": "Allow",
"Action": [
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DetachRolePolicy",
"iam:TagRole",
"iam:UntagRole",
"iam:UpdateAssumeRolePolicy",
"iam:UpdateRole",
"iam:UpdateRoleDescription"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/__STACK_PREFIX__*"
},
{
"Sid": "PassExecRolesToLambda",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/__STACK_PREFIX__*",
"Condition": {
"StringEquals": {
"iam:PassedToService": [
"lambda.amazonaws.com",
"ecs-tasks.amazonaws.com",
"scheduler.amazonaws.com"
]
}
}
},
{
"Sid": "IamReadOnly",
"Effect": "Allow",
"Action": [
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:ListAttachedRolePolicies",
"iam:ListPolicies",
"iam:ListPolicyVersions",
"iam:ListRolePolicies",
"iam:ListRoles"
],
"Resource": "*"
},
{
"Sid": "DenySelfMutation",
"Effect": "Deny",
"Action": [
"iam:AttachRolePolicy",
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DeleteRolePermissionsBoundary",
"iam:DetachRolePolicy",
"iam:PutRolePolicy",
"iam:PutRolePermissionsBoundary",
"iam:UpdateAssumeRolePolicy",
"iam:UpdateRole",
"iam:UpdateRoleDescription"
],
"Resource": [
"arn:aws:iam::__ACCOUNT_ID__:role/hcptf-*",
"arn:aws:iam::__ACCOUNT_ID__:role/github-cfn-execution-role",
"arn:aws:iam::__ACCOUNT_ID__:role/githubdeploy-*",
"arn:aws:iam::__ACCOUNT_ID__:role/cdk-hnb659fds-*",
"arn:aws:iam::__ACCOUNT_ID__:role/OrganizationAccountAccessRole",
"arn:aws:iam::__ACCOUNT_ID__:role/seahaven-*"
]
},
{
"Sid": "DenyBoundaryTampering",
"Effect": "Deny",
"Action": [
"iam:DeleteRolePermissionsBoundary",
"iam:DeleteUserPermissionsBoundary"
],
"Resource": [
"arn:aws:iam::__ACCOUNT_ID__:role/*",
"arn:aws:iam::__ACCOUNT_ID__:user/*"
]
},
{
"Sid": "DenyBoundaryPolicyEdit",
"Effect": "Deny",
"Action": [
"iam:CreatePolicyVersion",
"iam:DeletePolicy",
"iam:DeletePolicyVersion",
"iam:SetDefaultPolicyVersion"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-*"
}
]
}