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