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 Sie die getFederationToken-API verwenden, verwenden Sie die Richtlinienvariable $ {aws:UserId} anstelle der Richtlinienvariablen ${aws:UserName}. Dies liegt daran, dass die Variable ${aws:username} nicht vorhanden ist, wenn der Principal ein Verbundbenutzer ist. Weitere Informationen finden Sie unter Wo Sie Richtlinienvariablen verwenden können.

Die folgende JSON-IAM-Richtlinie bietet ein Beispiel, in dem die Richtlinienvariable $ {aws:UserID} durch die Richtlinienvariable ${aws:UserId} ersetzt wurde:

{
   "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 sollte „ACCOUNTNUMBER:caller-specified-name“ lauten.

Beim Aufrufen der GetFederationToken-API muss der Name-Parameterwert den in GetFederationToken festgelegten 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: In diesem Beispiel wird davon ausgegangen, dass der vom Aufrufer angegebene Name-Teil (Anzeigename) der Variablen aws:userid eindeutig ist. Ein eindeutiger Anzeigename verhindert das Szenario, in dem einem anderen Benutzer mit demselben Anzeigenamen kein Zugriff auf die in der JSON-Richtlinie angegebenen Ressourcen gewährt wird. Weitere Informationen finden Sie unter Eindeutige Identifikatoren.


Ähnliche Informationen

Berechtigungen für getFederationToken

Token-Verkaufsautomat für die Identitätsregistrierung - Beispiel für eine Java-Webanwendung

Elemente der IAM-Richtlinie: Variablen und Tags

IAM-Identifikatoren

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren