Ich möchte temporäre Anmeldedaten für vorhandene Benutzer ausgeben, um ihnen Zugriff auf die AWS Management Console zu gewähren, indem Sie ihnen eine mit diesen temporären URLs bereitstellen Referenzen.Temporäre Anmeldedaten für die Anmeldung in der AWS Management Console mithilfe von AssumeRole, vorhandenen Richtlinien und eindeutiger URL
verfolge ich mit einem schriftlichen Beispiel gegeben durch AWS Dokumentation zusammen: Example Code Using IAM Query APIs
ich den folgenden Code geschrieben haben, die keine Fehler geben, wenn die Ausführung, und scheint eine Session-Token zurück, die es ermöglichen soll mich dann richtig eine URL bilden sich anmelden
Hier ist der Code Session-Token und anschließend URL zurückzukehren.
$accessKeyId = 'accesskeyId'
$secretAccessKey = 'secretaccessKey'
$region = 'us-east-1'
Set-AWSCredentials -AccessKey $accessKeyId -SecretKey $secretAccessKey
$role = Use-STSRole -RoleSessionName "testSTS" -RoleArn "arn:aws:iam::1234567890:role/adminAccess" -DurationInSeconds 900
$jsonSession = @"
{
"sessionId": $([string]::Format("{0}", $role.Credentials.AccessKeyId)),
"sessionKey": $([string]::Format("{0}", $role.Credentials.SecretAccessKey)),
"sessionToken": $([string]::Format("{0}", $role.Credentials.SessionToken))
}
"@
Add-Type -AssemblyName System.Web
$Encode = [System.Web.HttpUtility]::UrlEncode($jsonSession)
$url = $([string]::Format("https://signin.aws.amazon.com/federation?Action=getSigninToken&Session={0}", $Encode))
$payload = Invoke-WebRequest -Uri $url | ConvertFrom-Json
$issuer = [System.Web.HttpUtility]::UrlEncode("https://1234567890.signin.aws.amazon.com")
$destination = [System.Web.HttpUtility]::UrlEncode("https://console.aws.amazon.com")
$signintoken = [System.Web.HttpUtility]::UrlEncode($payload.SigninToken)
$signInUrl = $([string]::Format("https://signin.aws.amazon.com/federation?Action=login&Issuer={0}&Destination={1}&SigninToken={2}", $issuer, $destination, $signintoken))
write-host $signInUrl
Leider, wenn ich die URL in Web-Browser besuchen erhalte ich die followi ng Fehler "Amazon Web Services Anmelden: Die Anmeldedaten in Ihrem Login-Link waren ungültig. Bitte kontaktieren Sie Ihren Administrator „
Dies ist, was die URL zu mir zurück aussieht, offensichtlich habe ich die accountid und echte Session-Token aus Sicherheitsgründen geändert:.
zusätzlich die Anmeldeinformationen und sittytoken, die mir übergeben wurden, scheinen zu funktionieren, wenn sie verwendet werden, um einen API-Befehl auszugeben, wie in dem folgenden Code gezeigt:
Aktualisiert: Ich habe versucht, den "Issuer" -Parameter zu entfernen, da der Artikel unten als optional aufgeführt ist. Ich habe auch versucht, "SessionType" zur ursprünglichen URL hinzuzufügen, um sessiontoken anzufordern, und die signin-URL schlägt immer noch mit demselben Fehler fehl.
Sie können einen Blick auf diese AWS Forum Post nehmen wollen: https://forums.aws.amazon.com/thread.jspa?messageID=475106 –
Dank für die Antwort .. Dieser Artikel ist für föderierte Token und ich suche nach AssumeRole. Es wurde jedoch erwähnt, dass der Parameter "issuer" optional ist und außerdem einen Parameter "SessionType" für die Anforderung der ursprünglichen Sitzungstoken enthielt. Ich habe beides versucht und es ist immer noch mit demselben Fehler gescheitert. = / –