0

Nach Vorlage Cloudformation Attach gibt Fehler in Zeile 9:Politik zu einer IAM Rolle

{ 
"AWSTemplateFormatVersion" : "2010-09-09", 
"Description" : "Policy to allow send receive message from SQS Queue", 
"Resources" : { 
"MyPolicy" : { 
    "Type" : "AWS::IAM::Policy", 
    "Properties" : { 
     "PolicyName" : "CFUsers", 
     "Roles": [ { "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" } ], 
     "PolicyDocument" : { 
      "Version" : "2012-10-17", 
      "Statement": [ 
      { 
       "Sid": "Sid1482400105445", 
       "Effect": "Allow", 
       "Principal": { 
        "AWS":   "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" 
       }, 
       "Action": [ 
        "SQS:SendMessage", 
        "SQS:ReceiveMessage", 
        "SQS:DeleteMessage", 
        "SQS:GetQueueUrl" 
       ], 
       "Resource": "arn:aws:sqs:ap-south-1:710161973367:CFI-Trace" 
      } 
      ] 
     } 
    } 
} 
} 

I Rolle Cognito_CFIAuth_Role wollen Nachricht an haben/lesen/löschen previleges auf SQS Warteschlange CFI-Trace. Wie verknüpfe ich SQS-Betriebsberechtigungen mit der IAM-Rolle?

+1

Genau genommen ist '[{" arn: aws: iam :: 710161973367: role/Cognito_CFIAuth_Role "}], tatsächlich falsch, da es sich um ein Array handelt, das ein Objekt mit einem Schlüssel aber keinen Wert enthält. Die '{' und '}' sind falsch. –

Antwort

1

Mit der Ressource "AWS :: IAM :: Policy" erstellen Sie eine Inline-Richtlinie. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html erklärt, dass dies eine Liste von "Die Namen von AWS :: IAM :: Roles" enthält, die ich für den logischen Namen von Rollenressourcen verwende, die im selben Stapel definiert sind.

Wenn Sie die Richtlinie an eine bereits vorhandene Rolle anhängen möchten, sollten Sie stattdessen den ManagedPolicy-Typ verwenden. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-roles übernimmt den Namen der bereits vorhandenen Rolle (n).

+0

Ich habe eine Richtlinie zur verwalteten Richtlinie, aber ich bekomme immer noch denselben Fehler: –

+0

Zusätzlich muss es gültige JSON sein. Siehe @ Michaels Kommentar zu deiner Frage. –

0

Cloudformationstyp IAM :: Richtlinie ist für Benutzer und Gruppen. Rollen und Instanzprofile sind für ec2. Sie haben beide Ideen zusammengeführt. Wenn Sie die Rolle in einer anderen CFN vorgegeben haben, dann verwenden Sie nur eine Instanz Profil für Ihre EC2-Instanz, wenn Sie es nicht schaffen und dann ref es

"RootInstanceProfile": { 
    "Type": "AWS::IAM::InstanceProfile", 
    "Properties": { 
     "Path": "/", 
     "Roles": [ { 
      "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" 
     } ] 
    } 
    } 

oder

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 
    "Resources": { 
    "SQSRole": { 
     "Type": "AWS::IAM::Role", 
     "Properties": { 
     "AssumeRolePolicyDocument": { 
     "Version": "2012-10-17", 
     "Statement": [ 
      { 
      "Effect": "Allow", 
      "Principal": { 
       "Service": [ 
       "ec2.amazonaws.com" 
       ] 
      }, 
      "Action": [ 
       "sts:AssumeRole" 
      ] 
     } 
     ] 
    }, 
    "Path": "/", 
    "Policies": [ 
     { 
     "PolicyName": "root", 
     "PolicyDocument": { 
      "Version": "2012-10-17", 
      "Statement": [ 
      { 
       "Effect": "Allow", 
       "Action": [ 
       "SQS:SendMessage", 
       "SQS:ReceiveMessage", 
       "SQS:DeleteMessage", 
       "SQS:GetQueueUrl" 
       ], 
       "Resource": "arn:aws:sqs:ap-south-1:710161973367:CFI-Trace" 
      } 
      ] 
     } 
     } 
    ] 
    } 
}, 
    "RootInstanceProfile": { 
     "Type": "AWS::IAM::InstanceProfile", 
     "Properties": { 
     "Path": "/", 
     "Roles": [ 
      { 
      "Ref": "SQSRole" 
      } 
     ] 
     } 
    } 
    } 
} 

IAM-Politik

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html

IAM Rolle http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html

Jetzt SQS-Politik auch http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html

1

Zuerst Zeile 9 enthält eine JSON Syntaxfehler ist, sollten die Klammern {} um Ihre Rollen Zeichenfolge entfernt werden:

 "Roles": [ "arn:aws:iam::710161973367:role/Cognito_CFIAuth_Role" ], 

Zweitens AWS::IAM::Policy ‚s Roles Eigenschaft

: akzeptiert „Die Namen von AWS::IAM::Role s an diese Politik zu befestigen“, nicht voll ARN, so dass Ihre Linie sein sollte

Sie benötigen auch eine fehlende schließende Klammer } am Ende Ihres Beispiels.

Verwandte Themen