AmazonEKSLocalOutpostServiceRolePolicy
Last Modified
Mar 12, 2026
March 12, 2026 at 09:27 PM UTC
Version
v3
Total Versions
3
Created
Jun 26, 2025
Actions
39
Risk
MediumThe same capabilities in a scoped form, resource policy writes, reads across all data, or full access to a whole service. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed
- Medium
Can launch resources that run as a more privileged role
Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.
- iam:PassRole: condition iam:PassedToService
Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.
- Medium
Can take over existing resources that run as another role
Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.
- ssm:StartSession: condition ssm:resourceTag/eks-local:controlplane-name, on arn:aws:ec2:*:*:instance/*
Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.
IAM Access Analyzer (8)
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:RequestTag/eks-local:controlplane-name in the condition block of StringLike with {aws:RequestTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:ResourceTag/eks-local:controlplane-name in the condition block of StringLike with {aws:ResourceTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:RequestTag/eks-local:controlplane-name in the condition block of StringLike with {aws:RequestTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:RequestTag/eks-local:controlplane-name in the condition block of StringLike with {aws:RequestTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:ResourceTag/eks-local:controlplane-name in the condition block of StringLike with {aws:ResourceTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:RequestTag/eks-local:controlplane-name in the condition block of StringLike with {aws:RequestTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key aws:ResourceTag/eks-local:controlplane-name in the condition block of StringLike with {aws:ResourceTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
- Suggestion / EQUIVALENT_TO_NULL_FALSE
We recommend replacing the key ssm:resourceTag/eks-local:controlplane-name in the condition block of StringLike with {ssm:resourceTag/eks-local:controlplane-name: false} to ensure better enforcement of the condition. AWS docs
Policy Document
View on GitHub{
"PolicyVersion": {
"Document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeRouteTables",
"ec2:DescribeAddresses",
"ec2:DescribeImages",
"ec2:DescribeInstances",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeNetworkInterfaceAttribute",
"ec2:DescribeSecurityGroups",
"ec2:DescribeVpcAttribute",
"ec2:DescribePlacementGroups"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": "arn:aws:ec2:*:*:network-interface/*",
"Condition": {
"StringLike": {
"aws:RequestTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:subnet/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifyNetworkInterfaceAttribute"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:network-interface/*"
],
"Condition": {
"StringLike": {
"aws:ResourceTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"StringLike": {
"aws:RequestTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": "arn:aws:ec2:*:*:vpc/*"
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringLike": {
"aws:RequestTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:*:*:volume/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:launch-template/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:placement-group/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupIngress",
"ec2:DeleteNetworkInterface",
"ec2:DeleteSecurityGroup",
"ec2:TerminateInstances",
"ec2:GetConsoleOutput"
],
"Resource": "*",
"Condition": {
"StringLike": {
"aws:ResourceTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": [
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:instance/*"
],
"Condition": {
"ForAnyValue:StringLike": {
"aws:TagKeys": [
"kubernetes.io/cluster/*",
"eks*"
]
},
"StringEquals": {
"ec2:CreateAction": [
"CreateNetworkInterface",
"CreateSecurityGroup",
"RunInstances"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"secretsmanager:TagResource"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:eks-local.cluster.x-k8s.io/*",
"Condition": {
"ForAnyValue:StringLike": {
"aws:TagKeys": [
"kubernetes.io/cluster/*",
"eks*"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"secretsmanager:CreateSecret"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:eks-local.cluster.x-k8s.io/*",
"Condition": {
"StringLike": {
"aws:RequestTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": "secretsmanager:DeleteSecret",
"Resource": "arn:aws:secretsmanager:*:*:secret:eks-local.cluster.x-k8s.io/*",
"Condition": {
"StringLike": {
"aws:ResourceTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": "secretsmanager:DescribeSecret",
"Resource": "arn:aws:secretsmanager:*:*:secret:eks-local.cluster.x-k8s.io/*"
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"iam:GetInstanceProfile",
"iam:DeleteInstanceProfile",
"iam:RemoveRoleFromInstanceProfile"
],
"Resource": "arn:aws:iam::*:instance-profile/eks-local-*"
},
{
"Effect": "Allow",
"Action": [
"ssm:StartSession"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringLike": {
"ssm:resourceTag/eks-local:controlplane-name": "*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ssm:StartSession"
],
"Resource": "arn:aws:ssm:*::document/AmazonEKS-ControlPlaneInstanceProxy"
},
{
"Effect": "Allow",
"Action": [
"ssmmessages:OpenDataChannel"
],
"Resource": "arn:aws:ssm:*:*:session/*"
},
{
"Effect": "Allow",
"Action": [
"ssm:ResumeSession",
"ssm:TerminateSession"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"outposts:GetOutpost"
],
"Resource": "*"
}
]
},
"VersionId": "v3",
"IsDefaultVersion": true,
"CreateDate": "2025-06-26T18:22:07+00:00"
}
}Version History (6 recorded)
Raw historyAmazonEKSLocalOutpostServiceRolePolicy - Policy Version v3
No recorded action delta - this version predates the change index. View the raw diff.
Mar 12, 2026
845fa53Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Jun 26, 2025
e0a5ddfUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Sep 18, 2024
aafbae9Update detected
No recorded action delta - this version predates the change index. View the raw diff.
May 13, 2024
1b36617Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Oct 24, 2022
83d8e9dUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Aug 23, 2022
94491d4