

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.

# Exportieren Sie einen Bericht über AWS IAM Identity Center-Identitäten und deren Zuweisungen mithilfe von PowerShell
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell"></a>

*Jorge Pava, Frank Allotta, Manideep Reddy Gillela und Tschad Miles, Amazon Web Services*

## Zusammenfassung
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-summary"></a>

Wenn Sie AWS IAM Identity Center (Nachfolger von AWS Single Sign-On) verwenden, um den Single Sign-On (SSO) -Zugriff auf all Ihre Amazon Web Services (AWS) -Konten und Cloud-Anwendungen zentral zu verwalten, kann das Melden und Prüfen dieser Zuweisungen über die AWS-Managementkonsole mühsam und zeitaufwändig sein. Dies gilt insbesondere, wenn Sie über Berechtigungen für einen Benutzer oder eine Gruppe für Dutzende oder Hunderte von AWS-Konten berichten.

Für viele wäre das ideale Tool zum Anzeigen dieser Informationen eine Tabellenkalkulationsanwendung wie Microsoft Excel. Dies kann Ihnen helfen, die von AWS Organizations verwalteten Daten für Ihre gesamte Organisation zu filtern, zu suchen und zu visualisieren.

Dieses Muster beschreibt, wie AWS-Tools verwendet werden PowerShell , um einen Bericht über SSO-Identitätskonfigurationen im IAM Identity Center zu generieren. Der Bericht ist als CSV-Datei formatiert und enthält den Identitätsnamen (Principal), den Identitätstyp (Benutzer oder Gruppe), Konten, auf die die Identität zugreifen kann, und die Berechtigungssätze. Nachdem Sie diesen Bericht generiert haben, können Sie ihn in Ihrer bevorzugten Anwendung öffnen, um die Daten nach Bedarf zu suchen, zu filtern und zu prüfen. Die folgende Abbildung zeigt Beispieldaten in einer Tabellenkalkulationsanwendung.

![PowerShell Die Skriptergebnisse werden in einer Tabellenkalkulationsanwendung angezeigt.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/46c7dc7f-c726-4754-b590-2f09d657b167/images/bbc21d8b-fc5d-4b5d-b159-81197a89823e.png)



| 
| 
| Wichtig: Da dieser Bericht vertrauliche Informationen enthält, empfehlen wir Ihnen dringend, ihn sicher zu speichern und nur auf einer bestimmten need-to-know Grundlage weiterzugeben. | 
| --- |

## Voraussetzungen und Einschränkungen
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-prereqs"></a>

**Voraussetzungen**
+ IAM Identity Center und AWS Organizations, konfiguriert und aktiviert.
+ PowerShell, installiert und konfiguriert. Weitere Informationen finden Sie unter [Installation PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.2) (Microsoft-Dokumentation).
+ AWS-Tools für PowerShell, installiert und konfiguriert. Aus Leistungsgründen empfehlen wir dringend, die modularisierte Version von AWS Tools for zu installieren PowerShell, genannt`AWS.Tools`. Jeder AWS-Service wird von einem eigenen, kleinen Modul unterstützt. Geben Sie in der PowerShell Shell die folgenden Befehle ein, um die für dieses Muster benötigten Module zu installieren: `AWS.Tools.Installer``Organizations`,`SSOAdmin`, und`IdentityStore`.

  ```
  Install-Module AWS.Tools.Installer
  Install-AWSToolsModule -Name Organizations, SSOAdmin, IdentityStore
  ```

  Weitere Informationen finden [Sie unter AWS.Tools unter Windows installieren oder AWS.Tools unter](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up-windows.html#ps-installing-awstools) [Linux oder macOS installieren (AWS-Tools](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up-linux-mac.html#install-aws.tools-on-linux-macos) für die Dokumentation). PowerShell Wenn Sie bei der Installation der Module eine Fehlermeldung erhalten, lesen Sie den Abschnitt [zur Fehlerbehebung](#export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-troubleshooting) in diesem Muster.
+ Die AWS-Befehlszeilenschnittstelle (AWS CLI) oder das AWS-SDK müssen zuvor mit funktionierenden Anmeldeinformationen konfiguriert werden, indem Sie einen der folgenden Schritte ausführen:
  + Verwenden Sie die AWS-CLI `aws configure` Weitere Informationen finden Sie unter [Schnellkonfiguration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) (AWS-CLI-Dokumentation).
  + Konfigurieren Sie AWS CLI oder AWS Cloud Development Kit (AWS CDK), um temporären Zugriff über eine AWS Identity and Access Management (IAM) -Rolle zu erhalten. Weitere Informationen finden Sie unter [Abrufen von IAM-Rollenanmeldedaten für den CLI-Zugriff](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) (IAM Identity Center-Dokumentation).
+ Ein benanntes Profil für die AWS-CLI, das Anmeldeinformationen für einen IAM-Prinzipal gespeichert hat, der:
  + Hat Zugriff auf das Verwaltungskonto von AWS Organizations oder das delegierte Administratorkonto für IAM Identity Center
  + Wurden die `AWSSSOReadOnly` und von `AWSSSODirectoryReadOnly` AWS verwalteten Richtlinien darauf angewendet?

  Weitere Informationen finden Sie unter [Verwenden von benannten Profilen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) (AWS-CLI-Dokumentation) und [AWS-verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) (IAM-Dokumentation).

**Einschränkungen**
+ Die AWS-Zielkonten müssen als Organisation in AWS Organizations verwaltet werden.

**Produktversionen**
+ Für alle Betriebssysteme wird empfohlen, [PowerShell Version 7.0](https://github.com/powershell/powershell) oder höher zu verwenden.

## Architektur
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-architecture"></a>

**Zielarchitektur**

![Skript, das ein benanntes AWS-CLI-Profil verwendet, um einen Bericht über SSO-Identitäten im IAM Identity Center zu erstellen.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/46c7dc7f-c726-4754-b590-2f09d657b167/images/ae5189aa-8197-4a05-88df-7c0294a679a1.png)


1. Der Benutzer führt das Skript in einer PowerShell Befehlszeile aus.

1. Das Skript geht von dem benannten Profil für AWS CLI aus. Dadurch wird Zugriff auf das IAM Identity Center gewährt.

1. Das Skript ruft die SSO-Identitätskonfigurationen aus dem IAM Identity Center ab.

1. Das Skript generiert eine CSV-Datei in demselben Verzeichnis auf der lokalen Workstation, in dem das Skript gespeichert ist.

## Tools
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-tools"></a>

**AWS-Services**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ Mit [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) können Sie den Single Sign-On (SSO) -Zugriff auf all Ihre AWS-Konten und Cloud-Anwendungen zentral verwalten.
+ Bei den [AWS-Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) handelt es sich um eine Reihe von PowerShell Modulen, die Ihnen helfen, Operationen auf Ihren AWS-Ressourcen von der PowerShell Befehlszeile aus zu skripten.

**Andere Tools**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)ist ein Automatisierungs- und Konfigurationsverwaltungsprogramm von Microsoft, das unter Windows, Linux und macOS läuft.

## Epen
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-epics"></a>

### Generieren Sie den Bericht
<a name="generate-the-report"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereite das Drehbuch vor. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell.html) | Cloud-Administrator | 
| Führen Sie das Skript aus. | Es wird empfohlen, dass Sie Ihr benutzerdefiniertes Skript in der PowerShell Shell mit dem folgenden Befehl ausführen.<pre>.\SSO-Report.ps1</pre><br />Sie können das Skript auch von einer anderen Shell aus ausführen, indem Sie den folgenden Befehl eingeben.<pre>pwsh .\SSO-Report.ps1</pre><br />Das Skript generiert eine CSV-Datei im selben Verzeichnis wie die Skriptdatei. | Cloud-Administrator | 
| Analysieren Sie Berichtsdaten. | Die CSV-Ausgabedatei enthält die Header **AccountName**PermissionSet****, **Principal** und **Type**. Öffnen Sie diese Datei in Ihrer bevorzugten Tabellenkalkulationsanwendung. Sie können eine Datentabelle erstellen, um die Ausgabe zu filtern und zu sortieren. | Cloud-Administrator | 

## Fehlerbehebung
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| `The term ‘Get-<parameter>’ is not recognized as the name of a cmdlet, function, script file, or operable program.`-Fehler | Die AWS-Tools für PowerShell oder ihre Module sind nicht installiert. Geben Sie in der PowerShell Shell die folgenden Befehle ein, um die AWS-Tools für PowerShell und die für dieses Muster benötigten Module zu installieren: `AWS.Tools.Installer``Organizations`,`SSOAdmin`, und`IdentityStore`.<pre>Install-Module AWS.Tools.Installer<br />Install-AWSToolsModule -Name Organizations, SSOAdmin, IdentityStore</pre> | 
| `No credentials specified or obtained from persisted/shell defaults`-Fehler | Vergewissern *Sie sich im Abschnitt Prepare the script* in the [Epics](#export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-epics), dass Sie die `Region` Variablen `ProfileName` und korrekt eingegeben haben. Stellen Sie sicher, dass die Einstellungen und Anmeldeinformationen im genannten Profil über ausreichende Berechtigungen für die Verwaltung von IAM Identity Center verfügen. | 
| `Authenticode Issuer …`Fehler bei der Installation der AWS.Tools-Module | Fügen Sie den `-SkipPublisherCheck` Parameter am Ende des `Install-AWSToolsModule` Befehls hinzu. | 
| `Get-ORGAccountList : Assembly AWSSDK.SSO could not be found or loaded.`-Fehler | Dieser Fehler kann auftreten, wenn benannte AWS-CLI-Profile angegeben werden, AWS CLI für die Authentifizierung von Benutzern mit IAM Identity Center konfiguriert ist und AWS CLI so konfiguriert ist, dass aktualisierte Authentifizierungstoken automatisch abgerufen werden. Gehen Sie wie folgt vor, um diesen Fehler zu beheben:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell.html) | 

## Zugehörige Ressourcen
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-resources"></a>
+ [Wo werden Konfigurationseinstellungen gespeichert?](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-where) (AWS-CLI-Dokumentation)
+ [Konfiguration der AWS-CLI für die Verwendung von AWS IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) (AWS-CLI-Dokumentation)
+ [Benannte Profile verwenden](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) (AWS-CLI-Dokumentation)

## Zusätzliche Informationen
<a name="export-a-report-of-aws-iam-identity-center-identities-and-their-assignments-by-using-powershell-additional"></a>

Stellen Sie im folgenden Skript fest, ob Sie die Werte für die folgenden Parameter aktualisieren müssen:
+ Wenn Sie ein benanntes Profil in AWS CLI verwenden, um auf das Konto zuzugreifen, in dem IAM Identity Center konfiguriert ist, aktualisieren Sie den `$ProfileName` Wert. 
+ Wenn IAM Identity Center in einer anderen AWS-Region als der Standardregion für Ihre AWS-CLI- oder AWS-SDK-Konfiguration bereitgestellt wird, aktualisieren Sie den `$Region` Wert, sodass die Region verwendet wird, in der IAM Identity Center bereitgestellt wird.
+ Wenn keine dieser Situationen zutrifft, ist kein Skript-Update erforderlich.

```
param (
    # The name of the output CSV file
    [String] $OutputFile  = "SSO-Assignments.csv",
    # The AWS CLI named profile
    [String] $ProfileName = "",
    # The AWS Region in which IAM Identity Center is configured
    [String] $Region      = ""
)
$Start = Get-Date; $OrgParams = @{}
If ($Region){ $OrgParams.Region = $Region}
if ($ProfileName){$OrgParams.ProfileName = $ProfileName}
$SSOParams   = $OrgParams.Clone(); $IdsParams = $OrgParams.Clone()
$AccountList = Get-ORGAccountList @OrgParams | Select-Object Id, Name
$SSOinstance = Get-SSOADMNInstanceList @OrgParams
$SSOParams['InstanceArn']       = $SSOinstance.InstanceArn
$IdsParams['IdentityStoreId']   = $SSOinstance.IdentityStoreId
$PSsets       = @{}; $Principals   = @{}
$Assignments  = @(); $AccountCount = 1; Write-Host ""
foreach ($Account in $AccountList) {
    $Duration = New-Timespan -Start $Start -End (Get-Date) | ForEach-Object {[Timespan]::New($_.Days, $_.Hours, $_.Minutes, $_.Seconds)}
    Write-Host "`r$Duration - Account $AccountCount of $($AccountList.Count) (Assignments:$($Assignments.Count))        " -NoNewline
    $AccountCount++
    foreach ($PS in Get-SSOADMNPermissionSetsProvisionedToAccountList -AccountId $Account.Id @SSOParams) {
        if (-not $PSsets[$PS]) {$PSsets[$PS] = (Get-SSOADMNPermissionSet @SSOParams -PermissionSetArn $PS).Name;$APICalls++}
        $AssignmentsResponse = Get-SSOADMNAccountAssignmentList @SSOParams -PermissionSetArn $PS -AccountId $Account.Id
        if ($AssignmentsResponse.NextToken) {$AccountAssignments = $AssignmentsResponse.AccountAssignments}
        else {$AccountAssignments = $AssignmentsResponse}
        While ($AssignmentsResponse.NextToken) {
            $AssignmentsResponse = Get-SSOADMNAccountAssignmentList @SSOParams -PermissionSetArn $PS -AccountId $Account.Id -NextToken $AssignmentsResponse.NextToken
            $AccountAssignments += $AssignmentsResponse.AccountAssignments}
        foreach ($Assignment in $AccountAssignments) {
            if (-not $Principals[$Assignment.PrincipalId]) {
                $AssignmentType = $Assignment.PrincipalType.Value
                $Expression     = "Get-IDS"+$AssignmentType+" @IdsParams -"+$AssignmentType+"Id "+$Assignment.PrincipalId
                $Principal      = Invoke-Expression $Expression
                if ($Assignment.PrincipalType.Value -eq "GROUP") { $Principals[$Assignment.PrincipalId] = $Principal.DisplayName } 
                else { $Principals[$Assignment.PrincipalId] = $Principal.UserName }
            }
            $Assignments += [PSCustomObject]@{
                AccountName     = $Account.Name
                PermissionSet   = $PSsets[$PS]
                Principal       = $Principals[$Assignment.PrincipalId]
                Type            = $Assignment.PrincipalType.Value}
        }
    }
}
$Duration = New-Timespan -Start $Start -End (Get-Date) | ForEach-Object {[Timespan]::New($_.Days, $_.Hours, $_.Minutes, $_.Seconds)}
Write-Host "`r$($AccountList.Count) accounts done in $Duration. Outputting result to $OutputFile"
$Assignments | Sort-Object Account | Export-CSV -Path $OutputFile -Force
```