This commit is contained in:
2025-01-04 00:34:03 +01:00
parent 41829408dc
commit 0ca14bbc19
18111 changed files with 1871397 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import { fromEnv } from "@aws-sdk/credential-provider-env";
import { chain, CredentialsProviderError, memoize } from "@smithy/property-provider";
import { ENV_PROFILE } from "@smithy/shared-ini-file-loader";
import { remoteProvider } from "./remoteProvider";
export const defaultProvider = (init = {}) => memoize(chain(...(init.profile || process.env[ENV_PROFILE]
? []
: [
async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromEnv");
return fromEnv(init)();
},
]), async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromSSO");
const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {
throw new CredentialsProviderError("Skipping SSO provider in default chain (inputs do not include SSO fields).");
}
const { fromSSO } = await import("@aws-sdk/credential-provider-sso");
return fromSSO(init)();
}, async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromIni");
const { fromIni } = await import("@aws-sdk/credential-provider-ini");
return fromIni(init)();
}, async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromProcess");
const { fromProcess } = await import("@aws-sdk/credential-provider-process");
return fromProcess(init)();
}, async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::fromTokenFile");
const { fromTokenFile } = await import("@aws-sdk/credential-provider-web-identity");
return fromTokenFile(init)();
}, async () => {
init.logger?.debug("@aws-sdk/credential-provider-node", "defaultProvider::remoteProvider");
return (await remoteProvider(init))();
}, async () => {
throw new CredentialsProviderError("Could not load credentials from any providers", false);
}), credentialsTreatedAsExpired, credentialsWillNeedRefresh);
export const credentialsWillNeedRefresh = (credentials) => credentials?.expiration !== undefined;
export const credentialsTreatedAsExpired = (credentials) => credentials?.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000;

View File

@@ -0,0 +1 @@
export * from "./defaultProvider";

View File

@@ -0,0 +1,17 @@
import { chain, CredentialsProviderError } from "@smithy/property-provider";
export const ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED";
export const remoteProvider = async (init) => {
const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await import("@smithy/credential-provider-imds");
if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) {
init.logger?.debug("@aws-sdk/credential-provider-node", "remoteProvider::fromHttp/fromContainerMetadata");
const { fromHttp } = await import("@aws-sdk/credential-provider-http");
return chain(fromHttp(init), fromContainerMetadata(init));
}
if (process.env[ENV_IMDS_DISABLED]) {
return async () => {
throw new CredentialsProviderError("EC2 Instance Metadata Service access disabled");
};
}
init.logger?.debug("@aws-sdk/credential-provider-node", "remoteProvider::fromInstanceMetadata");
return fromInstanceMetadata(init);
};