将 EC2 SNS 与 SSM (Systems Manager) 结合使用时出错
error when using EC2 SNS with SSM (Systems Manager)
我正在尝试将 AWS 的 SNS 与 SSM 结合使用,但遇到有关角色的错误。
这是错误:
botocore.errorfactory.InvalidRole: An error occurred (InvalidRole) when calling the SendCommand operation: ServiceRoleArn is not valid: arn:aws:iam::<account #>:role/FullSNS
相关代码如下:
response = client.send_command(
InstanceIds=[
'<instance id>',
],
DocumentName='AWS-RunShellScript',
Parameters={
'commands': [
'<command>',
],
'workingDirectory': [
'<directory>'
]
},
OutputS3BucketName='<s3 bucket>',
ServiceRoleArn='arn:aws:iam::<account #>:role/FullSNS',
NotificationConfig={
'NotificationArn': 'arn:aws:sns:us-east-1:<account #>:MyTestTopic',
'NotificationEvents': [
'All',
],
'NotificationType': 'Command'
}
)
这是关于该角色的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
以上是针对 boto3 的,但如果我在控制台中尝试,我会得到同样的错误。
我希望 AWS 文档在这一点上更加清楚,但我还必须编辑该 IAM 角色的信任关系,使其看起来像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
我正在尝试将 AWS 的 SNS 与 SSM 结合使用,但遇到有关角色的错误。
这是错误:
botocore.errorfactory.InvalidRole: An error occurred (InvalidRole) when calling the SendCommand operation: ServiceRoleArn is not valid: arn:aws:iam::<account #>:role/FullSNS
相关代码如下:
response = client.send_command(
InstanceIds=[
'<instance id>',
],
DocumentName='AWS-RunShellScript',
Parameters={
'commands': [
'<command>',
],
'workingDirectory': [
'<directory>'
]
},
OutputS3BucketName='<s3 bucket>',
ServiceRoleArn='arn:aws:iam::<account #>:role/FullSNS',
NotificationConfig={
'NotificationArn': 'arn:aws:sns:us-east-1:<account #>:MyTestTopic',
'NotificationEvents': [
'All',
],
'NotificationType': 'Command'
}
)
这是关于该角色的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
以上是针对 boto3 的,但如果我在控制台中尝试,我会得到同样的错误。
我希望 AWS 文档在这一点上更加清楚,但我还必须编辑该 IAM 角色的信任关系,使其看起来像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}