

Version 5 (V5) von AWS -Tools für PowerShell wurde veröffentlicht\$1

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im [Migrationsthema](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html).

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie die föderierte Identität mit dem AWS -Tools für PowerShell
<a name="saml-pst"></a>

Damit Benutzer in Ihrer Organisation auf AWS Ressourcen zugreifen können, müssen Sie eine standardmäßige und wiederholbare Authentifizierungsmethode konfigurieren, um die Sicherheit, Überprüfbarkeit und Einhaltung von Vorschriften zu gewährleisten und die Rollen- und Kontotrennung zu unterstützen. Es ist zwar üblich, Benutzern Zugriff zu gewähren AWS APIs, aber ohne föderierten API-Zugriff müssten Sie auch AWS Identity and Access Management (IAM-) Benutzer erstellen, was den Zweck der Verbundnutzung zunichte macht. In diesem Thema wird die SAML-Unterstützung (Security Assertion Markup Language) in der Lösung, die AWS -Tools für PowerShell Ihren Verbundzugriff erleichtert, beschrieben.

Mit der SAML-Unterstützung AWS -Tools für PowerShell können Sie Ihren Benutzern Verbundzugriff auf Dienste gewähren. AWS SAML ist ein XML-basiertes, offenes Standardformat für die Übertragung von Benutzerauthentifizierungs- und Autorisierungsdaten zwischen Diensten, insbesondere zwischen einem Identitätsanbieter (wie [Active Directory Federation Services](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/ad-fs-overview)) und einem Dienstanbieter (z. B.). AWS Weitere Informationen zu SAML und ihrer Funktionsweise finden Sie unter [SAML](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) auf Wikipedia und unter [SAML Technical Specifications](https://www.oasis-open.org/standard/saml/) auf der Website der Organization for the Advancement of Structured Information Standards (OASIS). Die SAML-Unterstützung in AWS -Tools für PowerShell ist mit SAML 2.0 kompatibel.

## Voraussetzungen
<a name="saml-pst-prerequisites"></a>

Folgendes ist erforderlich, bevor Sie die SAML-Unterstützung erstmals nutzen können.
+ Eine Verbundidentitätslösung, die richtig in das AWS -Konto integriert ist und den Konsolenzugriff nur mit den Anmeldeinformationen der Organisation ermöglicht. Weitere Informationen dazu, wie Sie dies speziell für Active Directory Federation Services tun können, finden Sie unter [About SAML 2.0 Federation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) im *IAM-Benutzerhandbuch* und im Blogbeitrag [Enabling Federation to AWS Using Windows Active Directory, AD FS,](https://aws.amazon.com/blogs/security/enabling-federation-to-aws-using-windows-active-directory-adfs-and-saml-2-0/) and SAML 2.0. Der Blogbeitrag befasst sich zwar mit AD FS 2.0, die Schritte für AD FS 3.0 sind aber identisch.
+ Version 3.1.31.0 oder neuer der auf Ihrer lokalen Workstation installierten Version. AWS -Tools für PowerShell 

## So erhält ein Identity-Federated-Benutzer Verbundzugriff auf den Dienst AWS APIs
<a name="saml-pst-federated-process"></a>

Im folgenden Prozess wird allgemein beschrieben, wie ein Active Directory-Benutzer (AD) über AD FS zusammengeführt wird, um Zugriff auf Ressourcen zu erhalten. AWS 

![\[Diagram showing federated user access flow to AWS resources via AD FS and Security Token Service.\]](http://docs.aws.amazon.com/de_de/powershell/v5/userguide/images/powershell_ADFSauth_using_vsd.png)


1. Der Client auf dem Computer des verbundenen Benutzers authentifiziert sich gegen AD FS.

1. Wenn die Authentifizierung erfolgreich ist, sendet AD FS eine SAML-Assertion an den Benutzer.

1. Der Client des Benutzers sendet die SAML-Assertion als Teil einer SAML-Verbundanforderung an den AWS -Security-Token-Service (STS).

1. STS gibt eine SAML-Antwort zurück, die AWS temporäre Anmeldeinformationen für eine Rolle enthält, die der Benutzer übernehmen kann.

1. Der Benutzer greift auf den AWS Dienst zu, APIs indem er diese temporären Anmeldeinformationen in die Anfrage von einbezieht. AWS -Tools für PowerShell

## So funktioniert der SAML-Support in der AWS -Tools für PowerShell
<a name="saml-pst-overview"></a>

In diesem Abschnitt wird beschrieben, wie AWS -Tools für PowerShell Cmdlets die Konfiguration eines SAML-basierten Identitätsverbunds für Benutzer ermöglichen.

![\[Diagram showing SAML-based federation flow between organization, AD FS, AWS, and service APIs.\]](http://docs.aws.amazon.com/de_de/powershell/v5/userguide/images/Powershell_SamlAuth_using_vsd.png)


1. AWS -Tools für PowerShell authentifiziert sich bei AD FS mithilfe der aktuellen Anmeldeinformationen des Windows-Benutzers oder interaktiv, wenn der Benutzer versucht, ein Cmdlet auszuführen, für dessen Aufruf Anmeldeinformationen erforderlich sind. AWS

1. AD FS authentifiziert den Benutzer.

1. AD FS generiert eine SAML 2.0-Authentifizierungsantwort, die eine Assertion enthält. Der Zweck der Assertion besteht darin, den Benutzer zu identifizieren und Informationen über ihn bereitzustellen. AWS -Tools für PowerShell extrahiert die Liste der autorisierten Rollen des Benutzers aus der SAML-Assertion.

1. AWS -Tools für PowerShell leitet die SAML-Anfrage, einschließlich der Amazon Resource Names (ARN) der angeforderten Rolle, durch den `AssumeRoleWithSAMLRequest` API-Aufruf an STS weiter.

1. Wenn die SAML-Anforderung gültig ist, gibt STS eine Antwort mit den Werten AWS , `AccessKeyId`, `SecretAccessKey` und `SessionToken` zurück. Diese Anmeldeinformationen gelten für 3.600 Sekunden (1 Stunde).

1. Der Benutzer verfügt jetzt über gültige Anmeldeinformationen, um mit allen AWS Diensten zu arbeiten APIs , auf die die Rolle des Benutzers zugreifen darf. AWS -Tools für PowerShell wendet diese Anmeldeinformationen automatisch für alle nachfolgenden AWS API-Aufrufe an und erneuert sie automatisch, wenn sie ablaufen.
**Anmerkung**  
Wenn die Anmeldeinformationen ablaufen und neue Anmeldeinformationen benötigt werden, nehmen die AWS -Tools für PowerShell die erneute Authentifizierung bei AD FS automatisch vor und rufen neue Anmeldeinformationen für eine weitere Stunde ab. Für Benutzer eines Kontos, das mit einer Domäne verknüpft ist, erfolgt dieser Prozess vollständig transparent. Fordert Benutzer bei Konten, die nicht in eine Domäne eingebunden sind, AWS -Tools für PowerShell zur Eingabe ihrer Anmeldeinformationen auf, bevor sie sich erneut authentifizieren können.

## So verwenden Sie die SAML-Konfigurations-Cmdlets PowerShell
<a name="saml-pst-config-cmdlets"></a>

AWS -Tools für PowerShell enthält zwei neue Cmdlets, die SAML-Unterstützung bieten.
+  `Set-AWSSamlEndpoint` konfiguriert den AD FS-Endpunkt, weist dem Endpunkt einen Anzeigenamen zu und beschreibt optional den Authentifizierungstyp des Endpunkts.
+  `Set-AWSSamlRoleProfile` erstellt und bearbeitet ein Benutzerkontoprofil, das Sie einem AD FS-Endpunkt zuordnen können, der durch Angeben des Anzeigenamens identifiziert wird, den Sie für das Cmdlet `Set-AWSSamlEndpoint` bereitgestellt haben. Jedes Rollenprofil ist einer einzelnen Rolle zugeordnet, zu deren Ausführung ein Benutzer berechtigt ist.

  Wie bei Profilen mit AWS Anmeldeinformationen weisen Sie dem Rollenprofil einen benutzerfreundlichen Namen zu. Sie können denselben Anzeigenamen für das `Set-AWSCredential` Cmdlet oder als Wert des `-ProfileName` Parameters für jedes Cmdlet verwenden, das den Dienst aufruft. AWS APIs

Öffnen Sie eine neue Sitzung. AWS -Tools für PowerShell Wenn Sie PowerShell 3.0 oder neuer ausführen, wird das AWS -Tools für PowerShell Modul automatisch importiert, wenn Sie eines seiner Cmdlets ausführen. Wenn Sie PowerShell 2.0 ausführen, müssen Sie das Modul manuell importieren, indem Sie das Cmdlet ``Import-Module`` ausführen, wie im folgenden Beispiel gezeigt.

```
PS > Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
```

### Ausführen der Cmdlets `Set-AWSSamlEndpoint` und `Set-AWSSamlRoleProfile`
<a name="how-to-run-the-set-awssamlendpoint-and-set-awssamlroleprofile-cmdlets"></a>

1. Konfigurieren Sie zunächst die Endpunkt-Einstellungen für das AD FS-System. Die einfachste Möglichkeit besteht darin, den Endpunkt wie in diesem Schritt gezeigt in einer Variablen zu speichern. Achten Sie darauf, das Platzhalterkonto IDs und den AD FS-Hostnamen durch Ihr eigenes Konto und den AD FS-Hostnamen zu ersetzen. IDs Geben Sie den AD FS-Hostnamen im Parameter `Endpoint` an.

   ```
   PS > $endpoint = "https://adfs.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices"
   ```

1. Führen Sie zum Erstellen des Endpunkts das Cmdlet `Set-AWSSamlEndpoint` aus. Geben Sie dabei den richtigen Wert für den Parameter `AuthenticationType` an. Gültige Werte sind `Basic`, `Digest`, `Kerberos`, `Negotiate` und `NTLM`. Wenn Sie diesen Parameter nicht angeben, lautet der Standardwert `Kerberos`.

   ```
   PS > $epName = Set-AWSSamlEndpoint -Endpoint $endpoint -StoreAs ADFS-Demo -AuthenticationType NTLM
   ```

   Das Cmdlet gibt den Anzeigenamen zurück, den Sie mit dem Parameter `-StoreAs` zugewiesen haben, sodass Sie ihn nutzen können, wenn Sie in der nächsten Zeile `Set-AWSSamlRoleProfile` ausführen.

1. Führen Sie jetzt das Cmdlet `Set-AWSSamlRoleProfile` aus, um den AD FS-Identitätsanbieter zu authentifizieren und die Rollen (in der SAML-Assertion) abzurufen, die der Benutzer ausführen darf.

   Das Cmdlet `Set-AWSSamlRoleProfile` verwendet die zurückgegebenen Rollen, um den Benutzer zum Auswählen einer Rolle aufzufordern, die dem angegebenen Profil zugeordnet werden soll, oder um zu validieren, ob die Rollendaten in den angegebenen Parametern vorhanden sind (andernfalls wird der Benutzer zur Auswahl aufgefordert). Wenn der Benutzer nur für eine Rolle autorisiert ist, ordnet das Cmdlet diese Rolle dem Profil automatisch zu, ohne den Benutzer zur Auswahl aufzufordern. Es ist nicht erforderlich, Anmeldeinformationen anzugeben, um ein Profil für die Domänenverknüpfung einzurichten.

   ```
   PS > Set-AWSSamlRoleProfile -StoreAs SAMLDemoProfile -EndpointName $epName
   ```

   Alternativ können Sie für non-domain-joined Konten Active Directory-Anmeldeinformationen angeben und dann eine AWS Rolle auswählen, auf die der Benutzer Zugriff hat, wie in der folgenden Zeile gezeigt. Dies ist nützlich, wenn Sie unterschiedliche Active Directory-Benutzerkonten verwenden, um die Rollen in der Organisation zu differenzieren (z. B. Administrationsfunktionen).

   ```
   PS > $credential = Get-Credential -Message "Enter the domain credentials for the endpoint"
   PS > Set-AWSSamlRoleProfile -EndpointName $epName -NetworkCredential $credential -StoreAs SAMLDemoProfile
   ```

1. In jedem Fall fordert das Cmdlet `Set-AWSSamlRoleProfile` Sie auf, die Rolle zu wählen, die im Profil gespeichert werden soll. Das folgende Beispiel zeigt zwei verfügbare Rollen: `ADFS-Dev` und `ADFS-Production`. Die IAM-Rollen werden vom AD-FS-Administrator mit Ihren AD-Anmeldeinformationen verknüpft.

   ```
   Select Role
   Select the role to be assumed when this profile is active
   [1] 1 - ADFS-Dev  [2] 2 - ADFS-Production  [?] Help (default is "1"):
   ```

   Alternativ können Sie eine Rolle ohne Eingabeaufforderung angeben, indem Sie die Parameter `RoleARN`, `PrincipalARN` und optional `NetworkCredential` eingeben. Wenn die angegebene Rolle nicht in der von der Authentifizierung zurückgegebenen Assertion aufgeführt ist, wird der Benutzer aufgefordert, eine der verfügbaren Rollen auszuwählen.

   ```
   PS > $params = @{ "NetworkCredential"=$credential, "PrincipalARN"="{arn:aws:iam::012345678912:saml-provider/ADFS}", "RoleARN"="{arn:aws:iam::012345678912:role/ADFS-Dev}"
   }
   PS > $epName | Set-AWSSamlRoleProfile @params -StoreAs SAMLDemoProfile1 -Verbose
   ```

1. Sie können Profile für alle Rollen mit nur einem Befehl erstellen, indem Sie den Parameter `StoreAllRoles` hinzufügen (siehe den folgenden Code). Beachten Sie, dass der Rollenname als Profilname verwendet wird.

   ```
   PS > Set-AWSSamlRoleProfile -EndpointName $epName -StoreAllRoles
   ADFS-Dev
   ADFS-Production
   ```

### So verwenden Sie Rollenprofile, um Cmdlets auszuführen, für die Anmeldeinformationen erforderlich sind AWS
<a name="how-to-use-role-profiles-to-run-cmdlets-that-require-aws-credentials"></a>

Um Cmdlets auszuführen, für die AWS Anmeldeinformationen erforderlich sind, können Sie Rollenprofile verwenden, die in der Datei mit den AWS gemeinsam genutzten Anmeldeinformationen definiert sind. Geben Sie den Namen eines Rollenprofils an `Set-AWSCredential` (oder als Wert für einen beliebigen `ProfileName` Parameter in AWS -Tools für PowerShell), um automatisch temporäre AWS Anmeldeinformationen für die im Profil beschriebene Rolle abzurufen.

Obwohl Sie jeweils nur ein Rollenprofil verwenden, können Sie in einer Shell-Sitzung zwischen Profilen umschalten. Das Cmdlet `Set-AWSCredential` authentifiziert nicht und ruft keine Anmeldeinformationen ab, wenn Sie es selbstständig ausführen. Das Cmdlet zeichnet auf, dass Sie ein bestimmtes Rollenprofil verwenden möchten. Bis Sie ein Cmdlet ausführen, das AWS -Anmeldeinformationen benötigt, erfolgt keine Authentifizierung und es werden keine Anmeldeinformationen angefordert.

Sie können jetzt die temporären AWS Anmeldeinformationen, die Sie mit dem `SAMLDemoProfile` Profil erhalten haben, für die Arbeit mit dem AWS Dienst verwenden APIs. Die folgenden Abschnitte zeigen Beispiele zur Verwendung von Rollenprofilen.

### Beispiel 1: Festlegen einer Standardrolle mit `Set-AWSCredential`
<a name="example-1-set-a-default-role-with-set-awscredential"></a>

In diesem Beispiel wird eine Standardrolle für eine AWS -Tools für PowerShell Sitzung mithilfe von festgelegt`Set-AWSCredential`. Anschließend können Sie Cmdlets ausführen, die Anmeldeinformationen benötigen und von der angegebenen Rolle autorisiert sind. In diesem Beispiel werden alle Amazon-Elastic-Compute-Cloud-Instances in der Region USA West (Oregon) aufgelistet, die dem im `Set-AWSCredential`-Cmdlet angegeben Profil zugeordnet sind.

```
PS > Set-AWSCredential -ProfileName SAMLDemoProfile
PS > Get-EC2Instance -Region us-west-2 | Format-Table -Property Instances,GroupNames

Instances                                                   GroupNames
---------                                                   ----------
{TestInstance1}                                             {default}
{TestInstance2}                                             {}
{TestInstance3}                                             {launch-wizard-6}
{TestInstance4}                                             {default}
{TestInstance5}                                             {}
{TestInstance6}                                             {AWS-OpsWorks-Default-Server}
```

### Beispiel 2: Rollenprofile während einer PowerShell Sitzung ändern
<a name="example-2-change-role-profiles-during-a-powershell-session"></a>

In diesem Beispiel werden alle verfügbaren Amazon S3 S3-Buckets im AWS Konto der Rolle aufgeführt, die dem `SAMLDemoProfile` Profil zugeordnet ist. Das Beispiel zeigt, dass Sie, obwohl Sie zu Beginn Ihrer AWS -Tools für PowerShell Sitzung möglicherweise ein anderes Profil verwendet haben, Profile ändern können, indem Sie mit Cmdlets, die ihn unterstützen, einen anderen Wert für den `-ProfileName` Parameter angeben. Dies ist eine häufige Aufgabe für Administratoren, die Amazon S3 über die PowerShell Befehlszeile verwalten.

```
PS > Get-S3Bucket -ProfileName SAMLDemoProfile

CreationDate                                                BucketName
------------                                                ----------
7/25/2013 3:16:56 AM                                        amzn-s3-demo-bucket
4/15/2015 12:46:50 AM                                       amzn-s3-demo-bucket1
4/15/2015 6:15:53 AM                                        amzn-s3-demo-bucket2
1/12/2015 11:20:16 PM                                       amzn-s3-demo-bucket3
```

Beachten Sie, dass das Cmdlet `Get-S3Bucket` den Namen des Profils angibt, das durch Ausführen des Cmdlets `Set-AWSSamlRoleProfile` erstellt wurde. Dieser Befehl kann nützlich sein, wenn Sie früher in der Sitzung ein Rollenprofil festgelegt haben (z. B. durch Ausführen des Cmdlets `Set-AWSCredential`) und ein anderes Rollenprofil für das Cmdlet `Get-S3Bucket` verwenden wollen. Der Profilmanager macht dem Cmdlet `Get-S3Bucket` temporäre Anmeldeinformationen verfügbar.

Obwohl die Anmeldeinformationen nach einer Stunde ablaufen (ein von STS durchgesetztes Limit), aktualisieren die AWS -Tools für PowerShell die Anmeldeinformationen automatisch, indem eine neue SAML-Assertion angefordert wird, wenn die Tools feststellen, dass die aktuellen Anmeldeinformationen abgelaufen sind.

Für Benutzer mit Domänenverknüpfung erfolgt dieser Prozess ohne Unterbrechung, weil die Windows-Identität des aktuellen Benutzers für die Authentifizierung verwendet wird. AWS -Tools für PowerShell Zeigt für non-domain-joined Benutzerkonten eine Eingabeaufforderung mit der Aufforderung PowerShell zur Eingabe des Benutzerpassworts an. Der Benutzer gibt Anmeldeinformationen ein, die für die erneute Authentifizierung des Benutzers und zum Abrufen einer neuen Assertion verwendet werden.

### Beispiel 3: Ermitteln der Instances in einer Region
<a name="example-3-get-instances-in-a-region"></a>

Das folgende Beispiel listet alle Amazon-EC2-Instances in der Region Asien-Pazifik (Sydney) auf, die mit dem vom Profil `ADFS-Production` verwendeten Konto verknüpft sind. Mit diesem Befehl können Sie alle Amazon-EC2-Instances in einer Region zurückgeben.

```
PS > (Get-Ec2Instance -ProfileName ADFS-Production -Region ap-southeast-2).Instances | Select InstanceType, @{Name="Servername";Expression={$_.tags | where key -eq "Name" | Select Value -Expand Value}}

 InstanceType                                                Servername
 ------------                                                ----------
 t2.small                                                    DC2
 t1.micro                                                    NAT1
 t1.micro                                                    RDGW1
 t1.micro                                                    RDGW2
 t1.micro                                                    NAT2
 t2.small                                                    DC1
 t2.micro                                                    BUILD
```

## Weiterführende Lektüre
<a name="saml-pst-reading"></a>

Allgemeine Informationen zur Implementierung des API-Verbundzugriffs finden Sie unter [So implementieren Sie eine allgemeine Lösung für den API/CLI Verbundzugriff mithilfe von](https://aws.amazon.com/blogs/security/how-to-implement-a-general-solution-for-federated-apicli-access-using-saml-2-0/) SAML 2.0.

[Wenn Sie Fragen oder Kommentare zum Support haben, besuchen Sie die AWS Entwicklerforen für [PowerShell Scripting](https://forums.aws.amazon.com/forum.jspa?forumID=149) oder .NET-Entwicklung.](https://forums.aws.amazon.com/forum.jspa?forumID=61)