Wie verwende ich IAM-Richtlinienvariablen mit Verbundbenutzern?

Lesedauer: 2 Minute
0

Wenn ich die getFederationToken-API verwende, um temporäre Anmeldeinformationen zu generieren, funktioniert die Richtlinienvariable ${aws:username} nicht.

Lösung

Wenn das Prinzipal-Element ein Verbundbenutzer ist, ist die ${aws:UserName} AWS-Richtlinienvariable für Identity and Access Management (IAM) nicht in der Anfrage enthalten. Verwenden Sie stattdessen die ${aws:userId}-Richtlinienvariable mit GetFederationToken-API-Aufrufen. Weitere Informationen finden Sie unter Wo Sie Richtlinienvariablen verwenden können.

Im folgenden JSON-Richtlinienbeispiel wird die Richtlinienvariable ${aws:UserName} durch die Richtlinienvariable ${aws:userID} ersetzt:

{   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"AllowListingOfUserFolder",
         "Action":[
            "s3:ListBucket"
         ],

         "Effect":"Allow",

         "Resource":[
            "arn:aws:s3:::TESTBUCKET"
         ],
         "Condition":{
            "StringLike":{
               "s3:prefix":[
                  "TESTBUCKET/${aws:userid}/*"
               ]
            }
         }
      },
      {
         "Sid":"AllowAllS3ActionsInUserFolder",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:s3:::TESTBUCKET/${aws:userid}/*"
         ]
      }
   ]
}

Der Wert für die Variable aws:userid muss ACCOUNTNUMBER:caller-specified-name lauten.

Der Name-Parameterwert für GetFederationToken-API-Aufrufe muss den GetFederationToken-Richtlinien entsprechen. Wenn Sie beispielsweise den Anzeigenamen Bob angeben, lautet das richtige Format 123456789102:Bob. Dadurch wird Ihre Sitzung benannt und der Zugriff auf den Amazon Simple Storage Service (Amazon S3)-Bucket mit einem passenden Präfix ermöglicht.

**Hinweis:**Im vorherigen Beispiel wird davon ausgegangen, dass der vom Aufrufer angegebene freundliche Name der Variablen aws:userid ein eindeutiger Identifikator ist. Ein eindeutiger Anzeigename ermöglicht einem anderen Benutzer mit demselben Anzeigenamen keinen Zugriff auf Ressourcen, die in der JSON-Richtlinie angegeben sind.

Ähnliche Informationen

Berechtigungen für GetFederationToken

Elemente der IAM-Richtlinie: Variablen und Tags

IAM-Identifikatoren

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr