Geben Sie einen bestimmten Anbieter für Anmeldeinformationen in der AWS SDK for Java 2.x - AWS SDK for Java 2.x

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.

Geben Sie einen bestimmten Anbieter für Anmeldeinformationen in der AWS SDK for Java 2.x

Die standardmäßige Anbieterkette für Anmeldeinformationen ist zwar für viele Szenarien praktisch, aber die explizite Angabe von Anbietern für Anmeldeinformationen gibt Ihnen mehr Kontrolle über das Authentifizierungsverhalten, die Leistung und die Sicherheit.

Zu den Gründen, aus denen Sie möglicherweise einen Anbieter für Anmeldeinformationen angeben sollten, gehören:

  • Die Standardanbieterkette überprüft mehrere Quellen nacheinander, was die Latenz erhöhen kann:

    // The default provider chain checks might check multiple sources until it finds // sufficient configuration. S3Client s3Client = S3Client.builder().build(); // You can specify exactly where to look. S3Client optimizedClient = S3Client.builder() .credentialsProvider(InstanceProfileCredentialsProvider.create()) .build();
  • Sie müssen nicht standardmäßige Speicherorte für den Zugriff auf die Konfiguration der Anmeldeinformationen verwenden:

    // Use configuration from a custom file location. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileFile(ProfileFile.builder() .content(Paths.get("/custom/path/to/configuration/file")) .type(ProfileFile.Type.CONFIGURATION) // Expects all non-default profiles to be prefixed with "profile". .build()) .profileName("custom") .build()) .build();
  • Verwenden Sie unterschiedliche Anmeldeinformationen für verschiedene Service-Clients. Wenn Ihre Anwendung beispielsweise auf mehrere AWS Konten zugreifen oder unterschiedliche Berechtigungen für verschiedene Dienste verwenden muss:

    // S3 client using one set of credentials. S3Client s3Client = S3Client.builder() .credentialsProvider(ProfileCredentialsProvider.create("s3-readonly")) .build(); // DynamoDB client using different credentials. DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .credentialsProvider(ProfileCredentialsProvider.create("dynamodb-admin")) .build();
  • Steuern Sie das Verhalten bei der Aktualisierung von Anmeldeinformationen:

    // Create a provider with custom refresh behavior. StsAssumeRoleCredentialsProvider customRefreshProvider = StsAssumeRoleCredentialsProvider.builder() .refreshRequest(AssumeRoleRequest.builder() .roleArn("arn:aws:iam::123456789012:role/my-role") .roleSessionName("custom-session") .build()) .stsClient(StsClient.create()) .asyncCredentialUpdateEnabled(true) // Use a background thread to prefetch credentials. .build(); S3Client s3Client = S3Client.builder() .credentialsProvider(customRefreshProvider) .build();