

 Das [AWS SDK für JavaScript V3-API-Referenzhandbuch](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) beschreibt detailliert alle API-Operationen für die AWS SDK für JavaScript Version 3 (V3). 

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.

# Legen Sie die Anmeldeinformationen fest
<a name="setting-credentials"></a>

AWS verwendet Anmeldeinformationen, um festzustellen, wer Dienste anruft und ob der Zugriff auf die angeforderten Ressourcen zulässig ist. 

Unabhängig davon, ob Ihr JavaScript Code in einem Webbrowser oder auf einem Node.js -Server ausgeführt wird, muss er gültige Anmeldeinformationen erhalten, bevor er über die API auf Dienste zugreifen kann. Anmeldeinformationen können pro Dienst festgelegt werden, indem Anmeldeinformationen direkt an ein Dienstobjekt übergeben werden.

Es gibt mehrere Möglichkeiten, Anmeldeinformationen festzulegen, die sich in Node.js und JavaScript in Webbrowsern unterscheiden. Die Themen in diesem Abschnitt beschreiben, wie Sie die Anmeldeinformationen in Node.js oder Web-Browsern definieren. In jedem Fall werden die Optionen in der empfohlenen Reihenfolge dargestellt.

## Bewährte Methoden für Anmeldeinformationen
<a name="credentials-best-practices"></a>

Durch das ordnungsgemäße Festlegen von Anmeldeinformationen wird sichergestellt, dass Ihre Anwendung oder Ihr Browser-Skript auf die benötigten Services und Ressourcen zugreifen kann. Gleichzeitig werden Sicherheitsrisiken minimiert, die geschäftskritische Anwendungen beeinträchtigen oder vertrauliche Daten kompromittieren könnten.

Ein wichtiger Grundsatz beim Einrichten von Anmeldeinformationen lautet, immer nur die geringstmöglichen Berechtigungen zu erteilen, die für eine Aufgabe erforderlich sind. Es ist sicherer, minimale Berechtigungen für Ihre Ressourcen bereitzustellen und bei Bedarf weitere Berechtigungen hinzuzufügen, anstatt Berechtigungen bereitzustellen, die die geringsten Rechte überschreiten, und aufgrund dessen zu einem späteren Zeitpunkt möglicherweise Sicherheitsprobleme beheben zu müssen. Wenn Sie beispielsweise nicht einzelne Ressourcen lesen und schreiben müssen, z. B. Objekte in einem Amazon S3 S3-Bucket oder einer DynamoDB-Tabelle, legen Sie für diese Berechtigungen nur Lesen fest.

Weitere Informationen zur Gewährung der geringsten Rechte finden Sie im Abschnitt [Geringste Rechte gewähren](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) des Themas Best Practices im *IAM-Benutzerhandbuch*.

**Topics**
+ [Bewährte Methoden für Anmeldeinformationen](#credentials-best-practices)
+ [Legen Sie die Anmeldeinformationen in Node.js fest](setting-credentials-node.md)
+ [Anmeldeinformationen in einem Webbrowser einrichten](setting-credentials-browser.md)

# Legen Sie die Anmeldeinformationen in Node.js fest
<a name="setting-credentials-node"></a>

Wir empfehlen neuen Benutzern, die sich lokal weiterentwickeln und von ihrem Arbeitgeber keine Authentifizierungsmethode erhalten, zur Einrichtung AWS IAM Identity Center. Weitere Informationen finden Sie unter [SDK-Authentifizierung mit AWS](getting-your-credentials.md).

Es gibt mehrere Möglichkeiten in Node.js, um dem SDK die Anmeldeinformationen bereitzustellen. Einige davon sind sicherer und andere bieten eine höhere Benutzerfreundlichkeit bei der Anwendungsentwicklung. Achten Sie beim Abrufen von Anmeldeinformationen in Node.js darauf, dass Sie sich nicht auf mehr als eine Quelle verlassen, z. B. auf eine Umgebungsvariable und eine JSON-Datei, die Sie laden. Sie können die Berechtigungen, unter denen Ihr Code ausgeführt wird, ändern, ohne sich dieser Änderung bewusst zu sein.

AWS SDK für JavaScript V3 stellt in Node.js eine standardmäßige Anbieterkette für Anmeldeinformationen bereit, sodass Sie nicht explizit einen Anmeldeinformationsanbieter angeben müssen. Die standardmäßige [Anbieterkette für Anmeldeinformationen](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) versucht, die Anmeldeinformationen aus einer Vielzahl verschiedener Quellen in einer bestimmten Rangfolge aufzulösen, bis Anmeldeinformationen aus einer der Quellen zurückgegeben werden. [Die Anmeldeinformationsanbieterkette für SDK für V3 finden Sie hier. JavaScript ](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromnodeproviderchain)

## Kette der Anbieter von Anmeldeinformationen
<a name="credchain"></a>

Alle SDKs haben eine Reihe von Stellen (oder Quellen), die sie überprüfen, um gültige Anmeldeinformationen zu erhalten, mit denen eine Anfrage an AWS-Service einen gestellt werden kann. Nachdem gültige Anmeldeinformationen gefunden wurden, wird die Suche beendet. Diese systematische Suche wird als Standardanbieterkette für Anmeldeinformationen bezeichnet. 

Für jeden Schritt in der Kette gibt es unterschiedliche Möglichkeiten, die Werte festzulegen. Das Setzen von Werten direkt im Code hat immer Vorrang, gefolgt von der Einstellung als Umgebungsvariablen und dann in der gemeinsam genutzten AWS `config` Datei. Weitere Informationen finden Sie unter [Priorität der Einstellungen](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#precedenceOfSettings) im Referenzhandbuch *AWS SDKs und im Tools-Referenzhandbuch.* 

Das *Referenzhandbuch AWS SDKs und die Tools* enthalten Informationen zu den SDK-Konfigurationseinstellungen, die von allen verwendet werden, AWS SDKs und zu den AWS CLI. Weitere Informationen zur Konfiguration des SDK mithilfe der gemeinsam genutzten AWS `config` Datei finden Sie unter Gemeinsam genutzte Konfigurations [- und Anmeldeinformationsdateien](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html). Weitere Informationen zur Konfiguration des SDK durch das Setzen von Umgebungsvariablen finden Sie unter [Unterstützung von Umgebungsvariablen](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html).

Für die Authentifizierung werden AWS die Anbieter der Anmeldeinformationen in der in der folgenden Tabelle angegebenen Reihenfolge AWS SDK für JavaScript überprüft.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html)

Wenn Sie für den Einstieg den empfohlenen Ansatz für neue Benutzer befolgt haben, richten Sie die AWS IAM Identity Center Authentifizierung während [SDK-Authentifizierung mit AWS](getting-your-credentials.md) des Themas Erste Schritte ein. Andere Authentifizierungsmethoden sind in verschiedenen Situationen nützlich. Um Sicherheitsrisiken zu vermeiden, empfehlen wir, immer kurzfristige Anmeldeinformationen zu verwenden. Informationen zu anderen Authentifizierungsmethoden finden Sie unter [Authentifizierung und Zugriff](https://docs.aws.amazon.com/sdkref/latest/guide/access.html) im *AWS SDKs Referenzhandbuch zu Tools*.

Die Themen in diesem Abschnitt beschreiben, wie Sie die Anmeldeinformationen in Node.js laden.

**Topics**
+ [Kette der Anbieter von Anmeldeinformationen](#credchain)
+ [Anmeldeinformationen in Node.js aus IAM-Rollen für Amazon EC2 laden](loading-node-credentials-iam.md)
+ [Anmeldeinformationen für eine Lambda-Funktion von Node.js laden](loading-node-credentials-lambda.md)

# Anmeldeinformationen in Node.js aus IAM-Rollen für Amazon EC2 laden
<a name="loading-node-credentials-iam"></a>

Wenn Sie Ihre Anwendung Node.js auf einer Amazon EC2-Instance ausführen, können Sie IAM-Rollen für Amazon EC2 nutzen, um automatisch Anmeldeinformationen für die Instance bereitzustellen. Wenn Sie Ihre Instance für die Verwendung von IAM-Rollen konfigurieren, wählt das SDK automatisch die IAM-Anmeldeinformationen für Ihre Anwendung aus, sodass Sie keine Anmeldeinformationen manuell angeben müssen.

Weitere Informationen zum Hinzufügen von IAM-Rollen zu einer Amazon EC2-Instance finden Sie unter [IAM-Rollen für](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) Amazon EC2.

# Anmeldeinformationen für eine Lambda-Funktion von Node.js laden
<a name="loading-node-credentials-lambda"></a>

Wenn Sie eine AWS Lambda Funktion erstellen, müssen Sie eine spezielle IAM-Rolle erstellen, die über die Berechtigung zum Ausführen der Funktion verfügt. Diese Rolle wird *Ausführungsrolle* genannt. Wenn Sie eine Lambda-Funktion einrichten, müssen Sie die von Ihnen erstellte IAM-Rolle als entsprechende Ausführungsrolle angeben.

Die Ausführungsrolle stellt der Lambda-Funktion die Anmeldeinformationen zur Verfügung, die sie zum Ausführen und Aufrufen anderer Webdienste benötigt. Daher müssen Sie keine Anmeldeinformationen für den Code Node.js angeben, den Sie in einer Lambda-Funktion schreiben.

Weitere Informationen zum Erstellen einer Lambda-Ausführungsrolle finden Sie unter [Berechtigungen verwalten: Verwenden einer IAM-Rolle (Ausführungsrolle)](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role) im *AWS Lambda Entwicklerhandbuch*.

# Anmeldeinformationen in einem Webbrowser einrichten
<a name="setting-credentials-browser"></a>

Es gibt mehrere Möglichkeiten, um dem SDK die Anmeldeinformationen aus Browser-Skripts bereitzustellen. Einige davon sind sicherer und andere bieten eine höhere Benutzerfreundlichkeit bei der Entwicklung eines Skripts.

 So können Sie Ihre Anmeldeinformationen in der Reihenfolge ihrer Empfehlungen angeben:

1. Verwenden von Amazon Cognito Identity zur Benutzerauthentifizierung und Bereitstellung von Anmeldeinformationen

1. Verwenden von Web-Verbundidentitäten

**Warnung**  
Wir empfehlen nicht, Ihre AWS Anmeldeinformationen in Ihren Skripten fest zu codieren. Die Hartcodierung der Anmeldeinformationen setzt die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel dem Risiko einer Offenlegung aus.

**Topics**
+ [Verwenden Sie Amazon Cognito Identity, um Benutzer zu authentifizieren](loading-browser-credentials-cognito.md)

# Verwenden Sie Amazon Cognito Identity, um Benutzer zu authentifizieren
<a name="loading-browser-credentials-cognito"></a>

Die empfohlene Methode zum Abrufen von AWS Anmeldeinformationen für Ihre Browserskripte ist die Verwendung des Amazon Cognito Identity-Anmeldeinformationsclients`CognitoIdentityClient`. Amazon Cognito ermöglicht die Authentifizierung von Benutzern über externe Identitätsanbieter.

Um Amazon Cognito Identity verwenden zu können, müssen Sie zunächst einen Identitätspool in der Amazon Cognito Cognito-Konsole erstellen. Ein Identitäten-Pool stellt die Gruppe von Identitäten dar, die Ihre Anwendung für Ihre Benutzer bereitstellt. Die den Benutzern zugewiesenen Identitäten identifizieren jedes Benutzerkonto eindeutig. Amazon-Cognito-Identitäten sind keine Anmeldeinformationen. Sie werden mithilfe der Unterstützung von Web Identity Federation in AWS -Security-Token-Service (AWS STS) gegen Anmeldeinformationen ausgetauscht.

Amazon Cognito unterstützt Sie bei der Verwaltung der Abstraktion von Identitäten über mehrere Identitätsanbieter hinweg. Die geladene Identität wird dann gegen Anmeldeinformationen in AWS STS ausgetauscht.

## Konfigurieren Sie das Amazon Cognito Identity-Anmeldeinformationsobjekt
<a name="browser-cognito-configuration"></a>

Wenn Sie noch keinen erstellt haben, erstellen Sie einen Identitätspool, den Sie mit Ihren Browserskripten in der [Amazon Cognito Cognito-Konsole](https://console.aws.amazon.com/cognito) verwenden können, bevor Sie Ihren Amazon Cognito Cognito-Client konfigurieren. Erstellen Sie sowohl authentifizierte als auch nicht authentifizierte IAM-Rollen für Ihren Identitätspool und ordnen Sie sie zu. Weitere Informationen finden Sie unter [Tutorial: Einen Identitätspool erstellen](https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-identity-pool.html) im *Amazon Cognito Developer Guide*.

Bei nicht authentifizierten Benutzern wird die Identität nicht verifiziert, sodass diese Rolle für Gastbenutzer Ihrer App oder für Fälle geeignet ist, in denen es egal ist, ob die Identität der Benutzer verifiziert wurde. Authentifizierte Benutzer melden sich bei Ihrer Anwendung über einen Drittanbieter an, der ihre Identität überprüft. Vergewissern Sie sich, dass Sie die Berechtigungen der Ressourcen entsprechend anpassen, damit Sie keinen Zugriff von nicht authentifizierten Benutzern darauf gewähren.

Nachdem Sie einen Identitätspool konfiguriert haben, verwenden Sie die `fromCognitoIdentityPool` Methode von, `@aws-sdk/credential-providers` um die Anmeldeinformationen aus dem Identitätspool abzurufen. Ersetzen Sie im folgenden Beispiel für die Erstellung eines Amazon S3 S3-Clients *AWS\$1REGION* durch die Region und *IDENTITY\$1POOL\$1ID* die Identitätspool-ID.

```
// Import required AWS SDK clients and command for Node.js
import {S3Client} from "@aws-sdk/client-s3";
import {fromCognitoIdentityPool} from "@aws-sdk/credential-providers";

const REGION = AWS_REGION;

const s3Client = new S3Client({
  region: REGION,
  credentials: fromCognitoIdentityPool({
    clientConfig: { region: REGION }, // Configure the underlying CognitoIdentityClient.
    identityPoolId: 'IDENTITY_POOL_ID',
    logins: {
            // Optional tokens, used for authenticated login.
        },
  })
});
```

Die optionale `logins`-Eigenschaft ist eine Abbildung der Namen des Identitätsanbieters auf die Identitäts-Token für diese Anbieter. Wie Sie den Token von Ihrem Identitätsanbieter erhalten, hängt davon ab, welchen Anbieter Sie verwenden. Wenn Sie beispielsweise einen Amazon Cognito Cognito-Benutzerpool als Authentifizierungsanbieter verwenden, könnten Sie eine Methode verwenden, die der folgenden ähnelt.

```
// Get the Amazon Cognito ID token for the user. 'getToken()' below.
let idToken = getToken();
let COGNITO_ID = "COGNITO_ID"; // 'COGNITO_ID' has the format 'cognito-idp.REGION.amazonaws.com/COGNITO_USER_POOL_ID'
let loginData = {
  [COGNITO_ID]: idToken,
};
const s3Client = new S3Client({
    region: REGION,
    credentials: fromCognitoIdentityPool({
    clientConfig: { region: REGION }, // Configure the underlying CognitoIdentityClient.
    identityPoolId: 'IDENTITY_POOL_ID',
    logins: loginData
  })
});

// Strips the token ID from the URL after authentication.
window.getToken = function () {
  var idtoken = window.location.href;
  var idtoken1 = idtoken.split("=")[1];
  var idtoken2 = idtoken1.split("&")[0];
  var idtoken3 = idtoken2.split("&")[0];
  return idtoken3;
};
```

## Wechseln Sie zwischen nicht authentifizierten Benutzern und authentifizierten Benutzern
<a name="browser-switching-unauthenticated-users"></a>

Amazon Cognito unterstützt sowohl authentifizierte als auch nicht authentifizierte Benutzer. Nicht authentifizierte Benutzer erhalten Zugriff auf Ihre Ressourcen, auch wenn sie nicht über Ihre Identitätsanbieter angemeldet sind. Dieser Grad des Zugriffs ist nützlich, um Inhalte für Benutzer anzuzeigen, bevor diese sich anmelden. Jeder nicht authentifizierte Benutzer hat eine eindeutige Identität in Amazon Cognito, obwohl er nicht einzeln angemeldet und authentifiziert wurde.

### Anfänglich nicht authentifizierter Benutzer
<a name="browser-initially-unauthenticated-user"></a>

Benutzer beginnen in der Regel mit der nicht authentifizierten Rolle, für die Sie die Eigenschaft für die Anmeldeinformationen Ihres Konfigurationsobjekts ohne eine `logins`-Eigenschaft festlegen. In diesem Fall könnten Ihre Standardanmeldedaten wie folgt aussehen:

```
// Import the required AWS SDK für JavaScript v3 modules.                   
import {fromCognitoIdentityPool} from "@aws-sdk/credential-providers";
// Set the default credentials.
const creds = fromCognitoIdentityPool({
  identityPoolId: 'IDENTITY_POOL_ID',
  clientConfig: { region: REGION } // Configure the underlying CognitoIdentityClient.
});
```

### Wechseln Sie zum authentifizierten Benutzer
<a name="switch-to-authenticated"></a>

Wenn sich ein nicht authentifizierter Benutzer bei einem Identitätsanbieter anmeldet und Sie über ein Token verfügen, können Sie den Benutzer von nicht authentifiziert auf authentifiziert umstellen, indem Sie eine benutzerdefinierte Funktion aufrufen, die das Anmeldeinformationsobjekt aktualisiert und das Token hinzufügt. `logins`

```
// Called when an identity provider has a token for a logged in user
function userLoggedIn(providerName, token) {
  creds.params.Logins = creds.params.logins || {};
  creds.params.Logins[providerName] = token;
                    
  // Expire credentials to refresh them on the next request
  creds.expired = true;
}
```