Penyedia kredensi - AWS SDK for JavaScript

Panduan API Referensi AWS SDK for JavaScript V3 menjelaskan secara rinci semua API operasi untuk AWS SDK for JavaScript versi 3 (V3).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penyedia kredensi

Di v2, SDK untuk JavaScript menyediakan daftar penyedia kredensi untuk dipilih, serta rantai penyedia kredensial, tersedia secara default di Node.js, yang mencoba memuat AWS kredenal dari semua penyedia yang paling umum. SDK untuk JavaScript v3 menyederhanakan antarmuka penyedia kredensyal, membuatnya lebih mudah untuk menggunakan dan menulis penyedia kredensi khusus. Di atas rantai penyedia kredensyal baru, SDK untuk JavaScript v3 semuanya menyediakan daftar penyedia kredensyal yang bertujuan untuk menyediakan setara dengan v2.

Berikut adalah semua penyedia kredensyal di v2 dan padanannya di v3.

Penyedia Kredensyal Default

Penyedia kredensyal default adalah cara SDK untuk JavaScript menyelesaikan AWS kredensi jika Anda tidak memberikannya secara eksplisit.

Kredensial Sementara

  • v2: ChainableTemporaryCredentialsmewakili kredensyal sementara yang diambil dari. AWS.STS Tanpa parameter tambahan, kredensyal akan diambil dari operasi. AWS.STS.getSessionToken() Jika peran IAM disediakan, AWS.STS.assumeRole() operasi akan digunakan untuk mengambil kredensyal untuk peran sebagai gantinya. AWS.ChainableTemporaryCredentialsberbeda dari AWS.TemporaryCredentials cara MasterCredentials dan refresh ditangani. AWS.ChainableTemporaryCredentialsmenyegarkan kredensyal kedaluwarsa menggunakan MasterCredentials yang diteruskan oleh pengguna untuk mendukung rantai kredensyal STS. Namun, AWS.TemporaryCredentials secara rekursif menciutkan MasterCredentials selama instantiation, menghalangi kemampuan untuk menyegarkan kredenal yang memerlukan kredensial sementara menengah.

    Asli TemporaryCredentialstelah ditinggalkan demi di v2. ChainableTemporaryCredentials

  • v3: fromTemporaryCredentials. Anda dapat menelepon fromTemporaryCredentials() dari @aws-sdk/credential-providers paket. Inilah contohnya:

    import { FooClient } from "@aws-sdk/client-foo"; import { fromTemporaryCredentials } from "@aws-sdk/credential-providers"; // ES6 import // const { FooClient } = require("@aws-sdk/client-foo"); // const { fromTemporaryCredentials } = require("@aws-sdk/credential-providers"); // CommonJS import const sourceCredentials = { // A credential can be a credential object or an async function that returns a credential object }; const client = new FooClient({ credentials: fromTemporaryCredentials({ masterCredentials: sourceCredentials, params: { RoleArn }, }), });

Kredensyal Identitas Amazon Cognito

Muat kredensyal dari layanan Identitas Amazon Cognito, biasanya digunakan di browser.

  • v2: CognitoIdentityCredentialsMerupakan kredensi yang diambil dari Federasi Identitas Web STS menggunakan layanan Identitas Amazon Cognito.

  • v3: Cognito Identity Credential Provider@aws/credential-providersPaket ini menyediakan dua fungsi penyedia kredensi, salah satunya fromCognitoIdentitymengambil ID identitas dan panggilancognitoIdentity:GetCredentialsForIdentity, sementara yang lain fromCognitoIdentityPoolmengambil ID kumpulan identitas, panggilan cognitoIdentity:GetId pada pemanggilan pertama, dan kemudian panggilan. fromCognitoIdentity Pemanggilan selanjutnya dari yang terakhir tidak dipanggil kembali. GetId

    Penyedia mengimplementasikan “Aliran Sederhana” yang dijelaskan dalam Panduan Pengembang Amazon Cognito. “Aliran Klasik” yang melibatkan panggilan cognito:GetOpenIdToken dan kemudian panggilan sts:AssumeRoleWithWebIdentity tidak didukung. Silakan buka permintaan fitur kepada kami jika Anda membutuhkannya.

    // fromCognitoIdentityPool example import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // ES6 import // const { fromCognitoIdentityPool } = require("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ region: "us-east-1", credentials: fromCognitoIdentityPool({ clientConfig: cognitoIdentityClientConfig, // Optional identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional logins: { // Optional "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "api.twitter.com": "TWITTERTOKEN", }, }), });
    // fromCognitoIdentity example import { fromCognitoIdentity } from "@aws-sdk/credential-providers"; // ES6 import // const { fromCognitoIdentity } = require("@aws-sdk/credential-provider-cognito-identity"); // CommonJS import const client = new FooClient({ region: "us-east-1", credentials: fromCognitoIdentity({ clientConfig: cognitoIdentityClientConfig, // Optional identityId: "us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f", customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional logins: { // Optional "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "api.twitter.com": "TWITTERTOKEN", }, }), });

Kredensyal Metadata EC2 (IMDS)

Merupakan kredensyal yang diterima dari layanan metadata pada instans Amazon EC2.

  • v2: EC2MetadataCredentials

  • v3: fromInstanceMetadata: Membuat penyedia kredensyal yang akan mendapatkan kredensyal dari Layanan Metadata Instans Amazon EC2.

    import { fromInstanceMetadata } from "@aws-sdk/credential-providers"; // ES6 import // const { fromInstanceMetadata } = require("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromInstanceMetadata({ maxRetries: 3, // Optional timeout: 0, // Optional }), });

Kredensyal ECS

Merupakan kredensyal yang diterima dari URL tertentu. Penyedia ini akan meminta kredensyal sementara dari URI yang ditentukan oleh AWS_CONTAINER_CREDENTIALS_RELATIVE_URI atau variabel AWS_CONTAINER_CREDENTIALS_FULL_URI lingkungan.

  • v2: ECSCredentials atau RemoteCredentials.

  • v3: fromContainerMetadatamembuat penyedia kredensyal yang akan mendapatkan kredensyal dari Amazon ECS Container Metadata Service.

    import { fromContainerMetadata } from "@aws-sdk/credential-providers"; // ES6 import const client = new FooClient({ credentials: fromContainerMetadata({ maxRetries: 3, // Optional timeout: 0, // Optional }), });

Kredensyal Sistem File

  • v2: FileSystemCredentialsmewakili kredensyal dari file JSON pada disk.

  • v3: Usang. Anda dapat secara eksplisit membaca file JSON dan memasok ke klien. Silakan buka permintaan fitur kepada kami jika Anda membutuhkannya.

Penyedia Kredensi SALL

  • v2: SAMLCredentialsmewakili kredensyal yang diambil dari dukungan STS SALL.

  • v3: Tidak tersedia. Silakan buka permintaan fitur kepada kami jika Anda membutuhkannya.

Kredensyal Berkas Kredensyal Bersama

Memuat kredensyal dari file kredensyal bersama (default ke ~/.aws/credentials atau ditentukan oleh variabel lingkungan). AWS_SHARED_CREDENTIALS_FILE File ini didukung di berbagai AWS SDK dan alat. Anda dapat merujuk ke dokumen file konfigurasi dan kredensial bersama untuk informasi selengkapnya.

  • v2: SharedIniFileCredentials

  • v3: fromIni.

    import { fromIni } from "@aws-sdk/credential-providers"; // const { fromIni } from("@aws-sdk/credential-providers"); const client = new FooClient({ credentials: fromIni({ configFilepath: "~/.aws/config", // Optional filepath: "~/.aws/credentials", // Optional mfaCodeProvider: async (mfaSerial) => { // implement a pop-up asking for MFA code return "some_code"; }, // Optional profile: "default", // Optional clientConfig: { region }, // Optional }), });

Kredensyal Identitas Web

Mengambil kredensyal menggunakan token OIDC dari file pada disk. Ini biasanya digunakan di EKS.

  • v2: TokenFileWebIdentityCredentials.

  • v3: fromTokenFile

    import { fromTokenFile } from "@aws-sdk/credential-providers"; // ES6 import // const { fromTokenFile } from("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromTokenFile({ // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable roleArn: "arn:xxxx", // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable roleSessionName: "session:a", // Optional. STS client config to make the assume role request. clientConfig: { region }, }), });

Kredensyal Federasi Identitas Web

Mengambil kredensyal dari dukungan federasi identitas web STS.

  • v2: WebIdentityCredentials

  • v3: fromWebToken

    import { fromWebToken } from "@aws-sdk/credential-providers"; // ES6 import // const { fromWebToken } from("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromWebToken({ // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable roleArn: "arn:xxxx", // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable roleSessionName: "session:a", // Optional. STS client config to make the assume role request. clientConfig: { region }, }), });