AmazonEC2RoleforSSM
Summary
This policy will soon be deprecated. Please use AmazonSSMManagedInstanceCore policy to enable AWS Systems Manager service core functionality on EC2 instances. For more information see https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM- Default version
- v8
- Created
- Last edited
- Services
- cloudwatch, ds, ec2, ec2messages, logs, s3, ssm, ssmmessages
Control-plane actions (35)
By access level: 7 List, 11 Read, 17 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Directory Service | 2 of 91 | 1 List, 1 Write; 0 restricted, 0 conditional | ds:CreateComputer, ds:DescribeDirectories |
| EC2 | 1 of 834 | 1 List; 0 restricted, 0 conditional | ec2:DescribeInstanceStatus |
| EC2 Messages | All 6 actions (see the EC2 Messages page) | 2 Read, 4 Write; 0 restricted, 0 conditional | ec2messages:AcknowledgeMessage, ec2messages:DeleteMessage, ec2messages:FailMessage, ec2messages:GetEndpoint, ec2messages:GetMessages, ec2messages:SendReply |
| CloudWatch Logs | 5 of 133 | 2 List, 3 Write; 0 restricted, 0 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:DescribeLogGroups, logs:DescribeLogStreams, logs:PutLogEvents |
| S3 | 3 of 155 | 1 List, 2 Read; 0 restricted, 0 conditional | s3:GetBucketLocation, s3:GetEncryptionConfiguration, s3:ListBucketMultipartUploads |
| Systems Manager | 14 of 164 | 2 List, 7 Read, 5 Write; 0 restricted, 0 conditional | ssm:DescribeAssociation, ssm:DescribeDocument, ssm:GetDeployablePatchSnapshotForInstance, ssm:GetDocument, ssm:GetManifest, ssm:GetParameters, ssm:ListAssociations, ssm:ListInstanceAssociations, ssm:PutComplianceItems, ssm:PutConfigurePackageResult, ssm:PutInventory, ssm:UpdateAssociationStatus and 2 more |
| SSM Messages | All 4 actions (see the SSM Messages page) | 4 Write; 0 restricted, 0 conditional | ssmmessages:CreateControlChannel, ssmmessages:CreateDataChannel, ssmmessages:OpenControlChannel, ssmmessages:OpenDataChannel |
Directory Service: 2 actions
- ds:CreateComputer (Write)
- ds:DescribeDirectories (List)
EC2: 1 actions
- ec2:DescribeInstanceStatus (List)
CloudWatch Logs: 5 actions
- logs:CreateLogGroup (Write)
- logs:CreateLogStream (Write)
- logs:DescribeLogGroups (List)
- logs:DescribeLogStreams (List)
- logs:PutLogEvents (Write)
S3: 3 actions
- s3:GetBucketLocation (Read)
- s3:GetEncryptionConfiguration (Read)
- s3:ListBucketMultipartUploads (List)
Systems Manager: 14 actions
- ssm:DescribeAssociation (Read)
- ssm:DescribeDocument (Read)
- ssm:GetDeployablePatchSnapshotForInstance (Read)
- ssm:GetDocument (Read)
- ssm:GetManifest (Read)
- ssm:GetParameters (Read)
- ssm:ListAssociations (List)
- ssm:ListInstanceAssociations (List)
- ssm:PutComplianceItems (Write)
- ssm:PutConfigurePackageResult (Read)
- ssm:PutInventory (Write)
- ssm:UpdateAssociationStatus (Write)
- ssm:UpdateInstanceAssociationStatus (Write)
- ssm:UpdateInstanceInformation (Write)
Data-plane actions (6)
By access level: 2 List, 1 Read, 3 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudWatch | 1 of 5 | 1 Write; 0 restricted, 0 conditional | cloudwatch:PutMetricData |
| S3 | 5 of 25 | 2 List, 1 Read, 2 Write; 0 restricted, 0 conditional | s3:AbortMultipartUpload, s3:GetObject, s3:ListBucket, s3:ListMultipartUploadParts, s3:PutObject |
CloudWatch: 1 actions
- cloudwatch:PutMetricData (Write)
S3: 5 actions
- s3:AbortMultipartUpload (Write)
- s3:GetObject (Read)
- s3:ListBucket (List)
- s3:ListMultipartUploadParts (List)
- s3:PutObject (Write)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: all-resources.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 20 write, tagging or permissions-management actions, short of full control of any service.
- Grants data-plane write actions on a data store on all resources without conditions.
- Can read secret values or decrypt data. Reads are not a High privilege rule.
Guidance
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AccessAnalyzerServiceRolePolicy
- AdministratorAccess-AWSElasticBeanstalk
- AIOpsOperatorAccess
- AlexaForBusinessGatewayExecution
- AmazonAPIGatewayPushToCloudWatchLogs
- AmazonAppFlowFullAccess
- AmazonAppStreamServiceAccess
- AmazonBedrockStudioPermissionsBoundary
Same domain
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeAssociation",
"ssm:GetDeployablePatchSnapshotForInstance",
"ssm:GetDocument",
"ssm:DescribeDocument",
"ssm:GetManifest",
"ssm:GetParameters",
"ssm:ListAssociations",
"ssm:ListInstanceAssociations",
"ssm:PutInventory",
"ssm:PutComplianceItems",
"ssm:PutConfigurePackageResult",
"ssm:UpdateAssociationStatus",
"ssm:UpdateInstanceAssociationStatus",
"ssm:UpdateInstanceInformation"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2messages:AcknowledgeMessage",
"ec2messages:DeleteMessage",
"ec2messages:FailMessage",
"ec2messages:GetEndpoint",
"ec2messages:GetMessages",
"ec2messages:SendReply"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstanceStatus"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ds:CreateComputer",
"ds:DescribeDirectories"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:PutObject",
"s3:GetObject",
"s3:GetEncryptionConfiguration",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": "*"
}
]
}
Version history
Current version v8, edited by AWS on 2019-01-24. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSMCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSMTerraform
resource "aws_iam_role_policy_attachment" "service_role_amazonec2roleforssm" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AmazonEC2RoleforSSM"),
);Sources
Pending editorial review. No editorial sources are listed yet.