seahaven-org-baseline/lib/hcptf-bootstrap/apply-policy.json.tmpl

167 lines
4.6 KiB
Cheetah
Raw Normal View History

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateTfManagedRoleWithBoundary",
"Effect": "Allow",
"Action": "iam:CreateRole",
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/*",
"Condition": {
"StringLike": {
"iam:PermissionsBoundary": [
"arn:aws:iam::__ACCOUNT_ID__:policy/tf-managed/*",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary*"
]
}
}
},
{
"Sid": "CreateHcptfWorkspaceRoles",
"Effect": "Allow",
"Action": "iam:CreateRole",
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/hcptf-*"
},
{
"Sid": "CreateTfManagedPolicies",
"Effect": "Allow",
"Action": [
"iam:CreatePolicy",
"iam:CreatePolicyVersion",
"iam:DeletePolicy",
"iam:DeletePolicyVersion",
"iam:SetDefaultPolicyVersion",
"iam:TagPolicy",
"iam:UntagPolicy"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:policy/tf-managed/*"
},
{
"Sid": "MutateTfManagedRolesWithBoundary",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:PutRolePolicy",
"iam:PutRolePermissionsBoundary"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/*",
"Condition": {
"StringLike": {
"iam:PermissionsBoundary": [
"arn:aws:iam::__ACCOUNT_ID__:policy/tf-managed/*",
"arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-lambda-execution-boundary*"
]
}
}
},
{
"Sid": "WriteTfManagedRoles",
"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/*"
},
{
"Sid": "WriteHcptfWorkspaceRoles",
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:DetachRolePolicy",
"iam:PutRolePolicy",
"iam:TagRole",
"iam:UntagRole",
"iam:UpdateAssumeRolePolicy",
"iam:UpdateRole",
"iam:UpdateRoleDescription"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/hcptf-*"
},
{
"Sid": "PassTfManagedRolesToCompute",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::__ACCOUNT_ID__:role/tf-managed/*",
"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": "DenyProtectedPrincipals",
"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/githubdeploy-*",
"arn:aws:iam::__ACCOUNT_ID__:role/github-cfn-execution-role",
"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": "DenySeahavenPolicyEdit",
"Effect": "Deny",
"Action": [
"iam:CreatePolicyVersion",
"iam:DeletePolicy",
"iam:DeletePolicyVersion",
"iam:SetDefaultPolicyVersion"
],
"Resource": "arn:aws:iam::__ACCOUNT_ID__:policy/seahaven-*"
}
]
}