2017-08-03 4 views
0

J'essaie d'utiliser SNS AWS avec SSM, mais obtenir une erreur sur les rôles.erreur lors de l'utilisation ECS SNS avec SSM (Systems Manager)

est ici l'erreur:

botocore.errorfactory.InvalidRole: An error occurred (InvalidRole) when calling the SendCommand operation: ServiceRoleArn is not valid: arn:aws:iam::<account #>:role/FullSNS 

Voici le code correspondant:

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' 
    } 
) 

Et voici la politique sur ce rôle:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
{ 
    "Action": [ 
    "sns:*" 
    ], 
    "Effect": "Allow", 
    "Resource": "*" 
} 
] 
} 

Ce qui précède est avec boto3 mais je reçois la même erreur si je l'essaie dans la console.

Répondre

2

Je souhaite la documentation AWS était plus clair sur ce point, mais je devais aussi modifier la relation de confiance sur ce rôle IAM à ressembler à ceci:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": { 
     "Service": "ssm.amazonaws.com" 
     }, 
     "Action": "sts:AssumeRole" 
    } 
    ] 
}