Temporäre Sicherheitsanmeldeinformationen anfordern - AWS Identity and Access Management

Temporäre Sicherheitsanmeldeinformationen anfordern

Zum Anfordern temporärer Sicherheitsanmeldeinformationen können Sie die AWS Security Token Service (AWS STS)-Operationen in der AWS-API verwenden. Dazu gehören Operationen zum Erstellen und Bereitstellen von temporären Sicherheitsanmeldeinformationen für vertrauenswürdige Benutzer. Darüber kann der Zugriff auf Ihre AWS-Ressourcen kontrolliert werden. Mehr über AWS STS erfahren Sie unter Temporäre IAM Sicherheitsanmeldeinformationen. Weitere Informationen zu den verschiedenen Methoden, die Sie verwenden können, um temporäre Anmeldeinformationen anzufordern, indem Sie eine Rolle übernehmen, finden Sie unter Methoden, um eine Rolle zu übernehmen.

Zum Aufrufen der API-Operationen können Sie eines der AWS-SDKs verwenden. Die SDKs sind für eine Vielzahl von Programmiersprachen und Umgebungen verfügbar, einschließlich Java, .NET, Python, Ruby, Android und iOS. Mithilfe der SDKs lassen sich Ihre Anforderungen kryptografisch signieren, Anforderungen bei Bedarf wiederholen und Fehlermeldungen verarbeiten. Sie können auch die AWS STS-Abfrage-API verwenden, die in der AWS Security Token ServiceAPI-Referenz beschrieben ist. Nicht zuletzt unterstützen zwei Befehlszeilen-Tools die AWS STS-Befehle: die AWS Command Line Interface und die AWS Tools for Windows PowerShell.

Die AWS STS-API-Operationen erstellen eine neue Sitzung mit temporären Sicherheitsanmeldeinformationen, die aus einem Zugriffsschlüsselpaar und einem Sitzungstoken bestehen. Das Zugriffschlüsselpaar besteht aus einer Zugriffsschlüssel-ID und einem geheimen Schlüssel. Benutzer (oder eine Anwendung, die vom Benutzer ausgeführt wird) können diese Anmeldeinformationen verwenden, um auf Ihre Ressourcen zuzugreifen. Sie können eine Rollensitzung erstellen und Sitzungsrichtlinien und -tags programmgesteuert mithilfe von AWS STS-API-Operationen übergeben. Die resultierenden Sitzungsberechtigungen sind eine Schnittmenge der Identität des Benutzers oder der auf die Rolle basierenden Richtlinien und der Sitzungssrichtlinien. Weitere Informationen zu Sitzungsrichtlinien finden Sie unter Sitzungsrichtlinien. Weitere Hinweise zu Sitzungs-Tags finden Sie unter Übergeben von Sitzungs-Tags in AWS STS.

Anmerkung

Die Größe des Sitzungstokens, das AWS STS-API-Operationen zurückgeben, ist nicht festgelegt. Es wird ausdrücklich empfohlen, dass Sie keine Annahmen über die maximale Größe machen. Die typische Tokengröße ist kleiner als 4096 Bytes, diese kann jedoch variieren.

Verwenden von AWS STS mit AWS-Regionen

Sie können AWS STS-API-Aufrufe entweder an einen globalen Endpunkt oder an einen der regionalen Endpunkte senden. Wenn Sie einen Endpunkt näher bei Ihnen wählen, können Sie die Latenz verringern und verbessern Sie die Leistung Ihrer API-Aufrufe verbessern. Sie können Ihre Aufrufe auch an einen alternativen regionalen Endpunkt richten, wenn Sie nicht mehr mit dem ursprünglichen Endpunkt kommunizieren können. Wenn Sie eines der verschiedenen AWS SDKs verwenden, wählen Sie mithilfe dieser SDK-Methode eine Region aus, bevor Sie den API-Aufruf senden. Wenn Sie HTTP-API-Anforderungen manuell konstruieren, müssen Sie die Anforderung selbst an den korrekten Endpunkt richten. Weitere Informationen finden Sie im AWS STS-Abschnitt von Regionen und Endpunkte und AWS STS in einer AWS-Region verwalten.

Im Folgenden finden Sie API-Operationen, die Sie verwenden können, um temporäre Anmeldeinformationen für den Einsatz in der AWS-Umgebung und den -Anwendungen zu erhalten.

Anfordern von Anmeldeinformationen für die kontounabhängige Delegierung und den Verbund über einen benutzerdefinierten Identity Broker

Der AssumeRole-API-Vorgang ist nützlich, um vorhandenen IAM-Benutzern den Zugriff auf AWS-Ressourcen zu erlauben, zu denen sie noch keinen Zugriff haben. Beispielsweise benötigt der Benutzer möglicherweise Zugriff auf Ressourcen in einem anderen AWS-Konto. Es ist auch nützlich, um vorübergehend privilegierten Zugang zu erhalten – zum Beispiel, um eine Multi-Faktor-Authentifizierung (MFA) zu ermöglichen. Sie müssen diese API mit den vorhandenen Benutzeranmeldeinformationen aufrufen. Um zu erfahren, wer diesen Vorgang aufrufen kann, siehe AWS STS-Anmeldeinformationen vergleichen. Weitere Informationen finden Sie unter Erstellen einer Rolle zum Erteilen von Berechtigungen an einen IAM-Benutzer und Sicherer API-Zugriff mit MFA.

So fordern Sie temporäre Anmeldeinformationen für die kontounabhängige Delegierung und den Verbund über einen benutzerdefinierten Identity Broker an
  1. Authentifizieren Sie sich mit Ihren AWS-Sicherheits-Anmeldeinformationen. Dieser Aufruf muss unter Verwendung von gültigen AWS-Sicherheitsanmeldeinformationen gemacht werden.

  2. Rufen Sie den Vorgang AssumeRole auf.

Im folgenden Beispiel wird eine Beispielanforderung und -antwort mit gezeigt AssumeRole. In dieser Beispielanforderung wird die demo-Rolle für die angegebene Dauer mit der enthaltenen Sitzungsrichtlinie, den Sitzungs-Tags und der externen ID und Quellidentität übernommen. Die resultierende Sitzung wird als bezeichnet John-session.

Beispielanforderung
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=AssumeRole &RoleSessionName=John-session &RoleArn=arn:aws::iam::123456789012:role/demo &Policy=%7B%22Version%22%3A%222012-10-17 %22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &ExternalId=123ABC &SourceIdentity=DevUser123 &AUTHPARAMS

Der im vorherigen Beispiel gezeigte Richtlinienwert ist die URL-codierte Version der folgenden Richtlinie:

JSON
{"Version":"2012-10-17", "Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:*","Resource":"*"}]}

Der AUTHPARAMS-Parameter in diesem Beispiel ist ein Platzhalter für Ihre Signatur. Eine Signatur stellt die Authentifizierungsinformationen dar, die in AWS HTTP-API-Anforderungen enthalten sein müssen. Wir empfehlen die Verwendung der AWS-SDKs zum Erstellen von API-Anforderungen. Ein Vorteil dabei ist, dass die SDKs das Signieren von Anforderungen für Sie übernehmen. Wenn Sie API-Anforderungen manuell erstellen und signieren müssen, finden Sie unter Signing AWS Requests By Using Signature Version 4 im Allgemeine Amazon Web Services-Referenz weitere Informationen zum Signieren einer Anforderung.

Zusätzlich zu den temporären Sicherheitsanmeldeinformationen, enthält die Antwort den Amazon-Ressourcennamen (ARN) für den Verbundbenutzer und die Ablaufzeit der Anmeldeinformationen.

Beispielantwort
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <AssumeRoleResult> <SourceIdentity>DevUser123</SourceIdentity> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-07-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> <AssumedRoleUser> <Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn> <AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId> </AssumedRoleUser> <PackedPolicySize>8</PackedPolicySize> </AssumeRoleResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </AssumeRoleResponse>
Anmerkung

Bei einer AWS-Konvertierung werden die übergebenen Sitzungsrichtlinien und Sitzungs-Tags in ein gepacktes Binärformat komprimiert, das eine separate Begrenzung aufweist. Ihre Anforderung kann für diese Begrenzung fehlschlagen, selbst wenn Ihr Nur-Text-Inhalt die übrigen Anforderungen erfüllt. Das PackedPolicySize-Antwortelement gibt in Prozent an, wie nah die Richtlinien und Tags für Ihre Anforderung an der oberen Größengrenze liegen.

Anmeldeinformationen über einen OIDC-Anbieter anfordern

Die AssumeRoleWithWebIdentity-API-Operation gibt einen Satz temporärer AWS-Sicherheits-Anmeldeinformationen im Austausch gegen ein JSON Web Token (JWT) zurück. Hierzu gehören öffentliche Identitätsanbieter wie Login mit Amazon, Facebook und Google sowie Anbieter, die JWTs ausstellen, die mit der OpenID Connect (OIDC)-Erkennung kompatibel sind, wie etwa GitHub-Aktionen oder Azure Devops. Weitere Informationen finden Sie unter OIDC-Verbund.

Anmerkung

AssumeRoleWithWebIdentity-Anfragen sind nicht signiert und erfordern keine AWS-Anmeldeinformationen.

Anmeldeinformationen über einen OIDC-Anbieter anfordern
  1. Rufen Sie den Vorgang AssumeRoleWithWebIdentity auf.

    Wenn Sie AssumeRoleWithWebIdentity aufrufen, validiert AWS das vorgelegte Token, indem es die digitale Signatur mit öffentlichen Schlüsseln überprüft, die über den JSON-Web-Keyset (JWKS) Ihres IdP zur Verfügung gestellt werden. Wenn das Token gültig ist und alle in der Vertrauensrichtlinie für IAM-Rollen festgelegten Bedingungen erfüllt sind, gibt AWS Ihnen die folgenden Informationen zurück:

    • Einen Satz temporärer Sicherheitsanmeldeinformationen. Diese bestehen aus einer Zugriffsschlüssel-ID, einem geheimen Zugriffsschlüssel und einem Sitzungs-Token.

    • Die Rollen-ID und den ARN der übernommenen Rolle.

    • Ein SubjectFromWebIdentityToken-Wert mit der eindeutigen Benutzer-ID.

  2. Ihre Anwendung kann dann die in der Antwort zurückgegebenen temporären Sicherheits-Anmeldeinformationen verwenden, um AWS-API-Aufrufe zu tätigen. Dies ist der gleiche Vorgang wie beim Senden eines AWS-API-Aufrufs mit langfristigen Sicherheitsanmeldeinformationen. Der Unterschied besteht darin, dass Sie das Sitzungstoken einschließen müssen, mit dem AWS überprüfen kann, dass die temporären Sicherheitsanmeldeinformationen gültig sind.

Ihre Anwendung sollte die von AWS STS zurückgegebenen Anmeldeinformationen zwischenspeichern und bei Bedarf aktualisieren. Wenn Ihre Anwendung mit einem AWS-SDK erstellt wird, verfügt das SDK über Anmeldeinformationsanbieter, die den Aufruf von AssumeRoleWithWebIdentity und die Aktualisierung von AWS-Anmeldeinformationen vor ihrem Ablauf verarbeiten können. Weitere Informationen finden Sie unter Standardisierte Anbieter für Anmeldeinformationen für AWS-SDKs und Tools im Referenzhandbuch für AWS-SDKs- und Tools.

Anfordern von Anmeldeinformationen über einen SAML 2.0-Identitätsanbieter

Der AssumeRoleWithSAML-API-Vorgang gibt einen Satz an temporären Sicherheitsanmeldeinformationen für SAML-Verbundprinzipale zurück, die über das bestehende Identitätssystem Ihrer Organisation authentifiziert werden. Die Benutzer müssen auch SAML 2.0 (Security Assertion Markup Language) verwenden, um Authentifizierungs- und Autorisierungsinformationen an AWS zu übergeben. Diese API-Operation ist hilfreich für Organisationen, die ihre Identitätssysteme (z. B. Windows Active Directory oder OpenLDAP) in Software integriert haben, die SAML-Assertionen produzieren können. Eine solche Integration bietet Informationen über Benutzeridentität und Berechtigungen (wie Active Directory Federation Services oder Shibboleth). Weitere Informationen finden Sie unter SAML 2.0-Verbund.

  1. Rufen Sie den Vorgang AssumeRoleWithSAML auf.

    Dies ist ein nicht signierter Anruf, d. h. Sie müssen vor der Anforderung keine AWS-Sicherheits-Anmeldeinformationen authentifizieren.

    Anmerkung

    Ein Aufruf an AssumeRoleWithSAML ist nicht signiert (verschlüsselt). Daher sollten Sie diese optionale Sitzungsrichtlinie nur einschließen, wenn die Anforderung über einen vertrauenswürdigen Vermittler übertragen wird. In diesem Fall könnte jemand die Richtlinie ändern, um die Beschränkungen zu entfernen.

  2. Wenn Sie AssumeRoleWithSAML aufrufen, überprüft AWS die Authentizität der SAML-Zusicherung. Unter der Annahme, dass der Identitätsanbieter die Zusicherung validiert, gibt AWS die folgenden Informationen an Sie zurück:

    • Einen Satz temporärer Sicherheitsanmeldeinformationen. Diese bestehen aus einer Zugriffsschlüssel-ID, einem geheimen Zugriffsschlüssel und einem Sitzungs-Token.

    • Die Rollen-ID und den ARN der übernommenen Rolle.

    • Einen Audience-Wert, der den Wert des Recipient-Attributs des SubjectConfirmationData-Elements der SAML-Zusicherung enthält.

    • Einen Issuer-Wert, der den Wert des Issuer-Elements der SAML-Zusicherung enthält.

    • Ein NameQualifier-Element mit einem Hash-Wert, der aus dem Issuer-Wert erstellt wurde, die AWS-Konto-ID und der Anzeigename des SAML-Anbieters. In Kombination mit dem Subject-Element können sie den SAML-Verbundprinzipal eindeutig identifizieren.

    • Ein Subject-Element, das den Wert des NameID-Elements im Subject-Element der SAML-Zusicherung enthält.

    • Ein SubjectType-Element, das das Format des Subject-Elements angibt. Der Wert kann persistent, transientoder die vollständige Format-URI aus den Subject- und NameID-Elementen sein, die in Ihrer SAML-Zusicherung verwendet wurden. Weitere Informationen zum NameID-Attribut des Format-Elements finden Sie unter Konfigurieren von SAML-Assertionen für die Authentifizierungsreaktion.

  3. Verwenden Sie die in der Antwort zurückgegebenen temporären Sicherheits-Anmeldeinformationen, um AWS-API-Aufrufe zu tätigen. Dies ist der gleiche Vorgang wie beim Senden eines AWS-API-Aufrufs mit langfristigen Sicherheitsanmeldeinformationen. Der Unterschied besteht darin, dass Sie das Sitzungstoken einschließen müssen, mit dem AWS überprüfen kann, dass die temporären Sicherheitsanmeldeinformationen gültig sind.

Ihre App sollte die Anmeldeinformationen zwischenspeichern. Standardmäßig laufen die Anmeldeinformationen nach einer Stunde ab. Wenn Sie die AmazonSTSCredentialsProvider-Aktion im AWS-SDK nicht verwenden, bleibt es Ihnen und Ihrer App überlassen, ob Sie AssumeRoleWithSAML erneut aufrufen. Rufen Sie diese Operation auf, um einen neuen Satz an temporären Sicherheitsanmeldeinformationen zu erhalten, bevor die alten ablaufen.

Anfordern von Anmeldeinformationen über einen benutzerdefinierten Identity Broker

Der GetFederationToken-API-Vorgang gibt einen Satz an temporären Sicherheitsanmeldeinformationen für AWS STS-Verbundbenutzerprinzipale zurück. Diese API unterscheidet sich von AssumeRole dahingehend, dass der Standard-Ablaufzeitraum wesentlich länger ist (zwölf Stunden anstelle von einer Stunde). Außerdem können Sie den DurationSeconds- Parameter verwenden, um eine Dauer anzugeben, in der die temporären Sicherheitsanmeldeinformationen gültig bleiben. Die ausgegebenen Anmeldeinformationen sind für die angegebene Dauer zwischen 900 Sekunden (15 Minuten) und 129 600 Sekunden (36 Stunden) gültig. Der längere Ablaufzeitraum kann die Anzahl der Aufrufe an AWS reduzieren, da Sie nicht so häufig neue Anmeldeinformationen benötigen.

  1. Authentifizieren Sie sich mit den AWS-Sicherheits-Anmeldeinformationen Ihres spezifischen IAM-Benutzers. Dieser Aufruf muss unter Verwendung von gültigen AWS-Sicherheitsanmeldeinformationen gemacht werden.

  2. Rufen Sie den Vorgang GetFederationToken auf.

Der GetFederationToken-Aufruf gibt temporäre Sicherheitsanmeldeinformationen zurück, die aus dem Sitzungstoken, dem Zugriffsschlüssel, dem geheimen Schlüssel und dem Ablaufdatum bestehen. Sie können GetFederationToken verwenden, wenn Sie Berechtigungen in Ihrer Organisation verwalten möchten (z. B. mithilfe der Proxy-Anwendung für die Zuweisung von Berechtigungen).

Im folgenden Beispiel wird eine Beispielanforderung und -antwort mit gezeigt GetFederationToken. In dieser Beispielanforderung wird der aufrufende Benutzer für die angegebene Dauer mit dem ARN der Sitzungsrichtlinie und den Sitzungs-Tagsverbunden. Die resultierende Sitzung wird als bezeichnet Jane-session.

Beispielanforderung
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetFederationToken &Name=Jane-session &PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy &DurationSeconds=1800 &Tags.member.1.Key=Project &Tags.member.1.Value=Pegasus &Tags.member.2.Key=Cost-Center &Tags.member.2.Value=12345 &AUTHPARAMS

Der Richtlinien-ARN im vorherigen Beispiel enthält den folgenden URL-kodierten ARN:

arn:aws:iam::123456789012:policy/Role1policy

Beachten Sie außerdem, dass der &AUTHPARAMS-Parameter im Beispiel als Platzhalter für die Authentifizierungsinformationen gedacht ist. Dies ist die Signatur, die Sie in AWS-HTTP-API-Anforderungen einschließen müssen. Wir empfehlen die Verwendung der AWS-SDKs zum Erstellen von API-Anforderungen. Ein Vorteil dabei ist, dass die SDKs das Signieren von Anforderungen für Sie übernehmen. Wenn Sie API-Anforderungen manuell erstellen und signieren müssen, finden Sie unter Signing AWS Requests By Using Signature Version 4 im Allgemeine Amazon Web Services-Referenz weitere Informationen zum Signieren einer Anforderung.

Zusätzlich zu den temporären Sicherheitsanmeldeinformationen, enthält die Antwort den Amazon-Ressourcennamen (ARN) für den Verbundbenutzer und die Ablaufzeit der Anmeldeinformationen.

Beispielantwort
<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetFederationTokenResult> <Credentials> <SessionToken> AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE== </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2019-04-15T23:28:33.359Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId> </Credentials> <FederatedUser> <Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn> <FederatedUserId>123456789012:Jean</FederatedUserId> </FederatedUser> <PackedPolicySize>4</PackedPolicySize> </GetFederationTokenResult> <ResponseMetadata> <RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId> </ResponseMetadata> </GetFederationTokenResponse>
Anmerkung

Bei einer AWS-Konvertierung werden die übergebenen Sitzungsrichtlinien und Sitzungs-Tags in ein gepacktes Binärformat komprimiert, das eine separate Begrenzung aufweist. Ihre Anforderung kann für diese Begrenzung fehlschlagen, selbst wenn Ihr Nur-Text-Inhalt die übrigen Anforderungen erfüllt. Das PackedPolicySize-Antwortelement gibt in Prozent an, wie nah die Richtlinien und Tags für Ihre Anforderung an der oberen Größengrenze liegen.

AWS empfiehlt, Berechtigungen auf Ressourcenebene zu erteilen (indem Sie etwa eine ressourcenbasierte Richtlinie an einen Amazon S3-Bucket anfügen); Sie können dann den Policy-Parameter auslassen. Wenn Sie jedoch keine Richtlinie für den AWS STS-Verbundbenutzerprinzipal einschließen, werden über die temporären Sicherheitsanmeldeinformationen keine Berechtigungen erteilt. In diesem Fall müssen Sie Ressourcenrichtlinien verwenden, um dem Verbundbenutzer Zugriff auf Ihre AWS-Ressourcen zu gewähren.

Beispiel: Angenommen, Ihre AWS-Konto-Nummer lautet 111122223333 und Sie haben einen Amazon-S3-Bucket, für den Susan eine Zugriffsberechtigung erhalten soll. Susans temporäre Sicherheitsanmeldeinformationen enthalten keine Richtlinie für den Bucket. In diesem Fall müssen Sie sicherstellen, dass der Bucket eine Richtlinie mit einem ARN hat, der mit Susans ARN übereinstimmt, z. B. arn:aws:sts::111122223333:federated-user/Susan.

Anfordern von Anmeldeinformationen für Benutzer in nicht vertrauenswürdigen Umgebungen

Der GetSessionToken-API-Vorgang gibt einen Satz an temporären Sicherheitsanmeldeinformationen an einen vorhandenen IAM-Benutzer zurück. Dies ist hilfreich zur Steigerung der Sicherheit – wie zum Beispiel nur AWS-Anforderungen zu erlauben, wenn MFA für den IAM-Benutzer aktiviert ist. Da die Anmeldedaten temporär sind, bieten sie erweiterte Sicherheit, wenn ein IAM-Benutzer über eine weniger sichere Umgebung auf Ihre Ressourcen zugreift. Beispiele für weniger sicheren Umgebungen sind ein mobiles Gerät oder ein Webbrowser.

  1. Authentifizieren Sie sich mit den AWS-Sicherheits-Anmeldeinformationen Ihres spezifischen IAM-Benutzers. Dieser Aufruf muss unter Verwendung von gültigen AWS-Sicherheitsanmeldeinformationen gemacht werden.

  2. Rufen Sie den Vorgang GetSessionToken auf.

  3. GetSessionToken gibt temporäre Sicherheitsanmeldeinformationen bestehend aus einem Sitzungstoken, einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel zurück.

Standardmäßig sind temporäre Sicherheitsanmeldeinformationen für einen IAM-Benutzer für maximal zwölf Stunden gültig. Sie können jedoch mit dem DurationSeconds-Parameter die Dauer beliebig zwischen 15 Minuten und 36 Stunden festlegen. Aus Sicherheitsgründen ist ein Token für einen Root-Benutzer des AWS-Kontos auf eine Dauer von einer Stunde beschränkt.

Im folgenden Beispiel wird eine Beispielanforderung und -antwort mit gezeigt GetSessionToken. Die Antwort umfasst auch die Ablaufzeit der temporären Sicherheitsanmeldeinformationen.

Beispielanforderung
https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=1800 &AUTHPARAMS

Der AUTHPARAMS-Parameter in diesem Beispiel ist ein Platzhalter für Ihre Signatur. Eine Signatur stellt die Authentifizierungsinformationen dar, die in AWS HTTP-API-Anforderungen enthalten sein müssen. Wir empfehlen die Verwendung der AWS-SDKs zum Erstellen von API-Anforderungen. Ein Vorteil dabei ist, dass die SDKs das Signieren von Anforderungen für Sie übernehmen. Wenn Sie API-Anforderungen manuell erstellen und signieren müssen, finden Sie unter Signing AWS Requests By Using Signature Version 4 im Allgemeine Amazon Web Services-Referenz weitere Informationen zum Signieren einer Anforderung.

Beispielantwort
<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/"> <GetSessionTokenResult> <Credentials> <SessionToken> AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE </SessionToken> <SecretAccessKey> wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY </SecretAccessKey> <Expiration>2011-07-11T19:55:29.611Z</Expiration> <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId> </Credentials> </GetSessionTokenResult> <ResponseMetadata> <RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId> </ResponseMetadata> </GetSessionTokenResponse>

Optional kann die GetSessionToken-Anforderung SerialNumber- und TokenCode-Werte für die Verifizierung über AWS Multi-Factor Authentication (MFA) enthalten. Wenn die bereitgestellten Werte gültig sind, stellt AWS STS temporäre Sicherheitsanmeldeinformationen bereit, die den Status der MFA-Authentifizierung enthalten. Die temporären Sicherheitsanmeldeinformationen können für den Zugriff auf die MFA-geschützten API-Aktionen oder auf AWS-Websites verwendet werden, solange die MFA-Authentifizierung gültig ist.

Das folgende Beispiel zeigt eine GetSessionToken-Anforderung, die einen MFA-Verifizierungscode und die Seriennummer des Geräts enthält.

https://sts.amazonaws.com/ ?Version=2011-06-15 &Action=GetSessionToken &DurationSeconds=7200 &SerialNumber=YourMFADeviceSerialNumber &TokenCode=123456 &AUTHPARAMS
Anmerkung

Der Aufruf an AWS STS kann an den globalen Endpunkt oder einen der regionalen Endpunkte erfolgen, für den Sie Ihr AWS-Konto aktivieren. Weitere Informationen finden Sie im AWS STS-Abschnitt von Regionen und Endpunkte.

Der AUTHPARAMS-Parameter in diesem Beispiel ist ein Platzhalter für Ihre Signatur. Eine Signatur stellt die Authentifizierungsinformationen dar, die in AWS HTTP-API-Anforderungen enthalten sein müssen. Wir empfehlen die Verwendung der AWS-SDKs zum Erstellen von API-Anforderungen. Ein Vorteil dabei ist, dass die SDKs das Signieren von Anforderungen für Sie übernehmen. Wenn Sie API-Anforderungen manuell erstellen und signieren müssen, finden Sie unter Signing AWS Requests By Using Signature Version 4 im Allgemeine Amazon Web Services-Referenz weitere Informationen zum Signieren einer Anforderung.