2017-06-24 1 views
4

ich einen Fehler in meiner Lambda-Funktion bekommen, die SSM ruft:Mutmaßliche Rolle in AWS Lambda, den Zugriff auf SSM Anruf verweigert

AccessDeniedException: Benutzer: arn: aws: M. :: redigiert: assumed- Rolle/LambdaBackend_master_lambda/SpikeLambda nicht ausführen dürfen: ssm: GetParameter auf Ressource: arn: aws: ssm: eu-west-1: redigiert: Parameter/default/key/api

aber ich bin ziemlich Sicher habe ich das richtig konfiguriert:

Rolle, mit AssumeRole für Lambda (altho gh wir wissen das funktioniert von der Fehlermeldung).

λ aws iam get-role --role-name LambdaBackend_master_lambda 
{ 
    "Role": { 
     "AssumeRolePolicyDocument": { 
      "Version": "2012-10-17", 
      "Statement": [ 
       { 
        "Action": "sts:AssumeRole", 
        "Effect": "Allow", 
        "Principal": { 
         "Service": "lambda.amazonaws.com" 
        } 
       } 
      ] 
     }, 
     "RoleId": "redacted", 
     "CreateDate": "2017-06-23T20:49:37Z", 
     "RoleName": "LambdaBackend_master_lambda", 
     "Path": "/", 
     "Arn": "arn:aws:iam::redacted:role/LambdaBackend_master_lambda" 
    } 
} 

Und meine Politik:

λ aws iam list-role-policies --role-name LambdaBackend_master_lambda 
{ 
    "PolicyNames": [ 
     "ssm_read" 
    ] 
} 
λ aws iam get-role-policy --role-name LambdaBackend_master_lambda --policy-name ssm_read 
{ 
    "RoleName": "LambdaBackend_master_lambda", 
    "PolicyDocument": { 
     "Version": "2012-10-17", 
     "Statement": [ 
      { 
       "Action": [ 
        "ssm:DescribeParameters" 
       ], 
       "Resource": "*", 
       "Effect": "Allow" 
      }, 
      { 
       "Action": [ 
        "ssm:GetParameters" 
       ], 
       "Resource": "arn:aws:ssm:eu-west-1:redacted:parameter/*", 
       "Effect": "Allow" 
      } 
     ] 
    }, 
    "PolicyName": "ssm_read" 
} 

Ich habe es durch die Politik Simulator laufen und es scheint gut zu sein!

AWS IAM policy sim

+0

Scheint wie ein Fehler in wie ssm: GetParameters validiert ist. Wenn ich 'boto3.client ('ssm'). Get_parameter()' verwende, funktionieren die Lambda-Berechtigungen wie erwartet, aber ich erhalte den Berechtigungsfehler, den du erwähnt hast, wenn du 'boto3.client (' ssm '). Get_parameters() 'benutzt. – skeller88

Antwort

5

mit diesem heute rumgespielt und bekam die folgende, die s von ssm:GetParameters fallen und mit ssm:GetParameter scheint zu funktionieren, wenn die GetParameter Aktion verwenden. dh AWS_PROFILE=pstore aws ssm get-parameter --name param_name Das hat mich ein bisschen verrückt gemacht, weil ich das überhaupt nicht in der iam action docs here finden kann. Es scheint jedoch zu funktionieren, und ssm ist noch ein wenig unter dokumentiert.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "ssm:DescribeParameters" 
      ], 
      "Resource": "*", 
      "Effect": "Allow" 
     }, 
     { 
      "Action": [ 
       "ssm:GetParameter" 
      ], 
      "Resource": "arn:aws:ssm:eu-west-1:redacted:parameter/*", 
      "Effect": "Allow" 
     } 
    ] 
} 
+1

Unter dokumentiert, aber immer noch besser dokumentiert als einige der Software, die ich benutze! Vielen Dank! – Oli

Verwandte Themen