{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloud9:ValidateEnvironmentName",
"cloud9:GetUserPublicKey",
"iam:GetUser",
"iam:ListUsers",
"ec2:DescribeIamInstanceProfileAssociations",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:DescribeSubnets",
"ec2:DescribeVolumes",
"ec2:DescribeVpcs"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloud9:CreateEnvironmentEC2",
"cloud9:DeleteEnvironment"
],
"Resource": "*",
"Condition": {
"StringLike": {
"cloud9:EnvironmentName": "handson-*",
"cloud9:InstanceType": [
"t2.*",
"t3.*",
"t3a.*"
]
}
}
},
{
"Effect": "Allow",
"Action": "cloud9:DescribeEnvironmentMemberships",
"Resource": "*",
"Condition": {
"Null": {
"cloud9:UserArn": "true",
"cloud9:EnvironmentId": "true"
}
}
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "cloud9.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:DisassociateIamInstanceProfile",
"ec2:AssociateIamInstanceProfile"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringLike": {
"ec2:ResourceTag/Name": "aws-cloud9-handson-*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:StartInstances",
"ec2:TerminateInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringLike": {
"ec2:ResourceTag/Name": "aws-cloud9-handson-*"
}
}
},
{
"Action": "iam:ListInstanceProfiles",
"Effect": "Allow",
"Resource": [
"arn:aws:iam::*:instance-profile/*"
]
},
{
"Action": "iam:PassRole",
"Effect": "Allow",
"Resource": [
"arn:aws:iam::*:role/handson-*"
],
"Condition": {
"StringLike": {
"iam:PassedToService": [
"ec2.amazonaws.com"
]
}
}
}
]
}