@jjrawlins/cdk-iam-policy-builder-helper 0.0.51 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3 -3
- package/cdk-iam-policy-builder-helper/go.mod +1 -1
- package/cdk-iam-policy-builder-helper/jsii/jsii.go +2 -2
- package/cdk-iam-policy-builder-helper/version +1 -1
- package/node_modules/@aws-sdk/client-iam/dist-cjs/index.js +13439 -13574
- package/node_modules/@aws-sdk/client-iam/package.json +5 -5
- package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +478 -596
- package/node_modules/@aws-sdk/client-sso/package.json +4 -4
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +1969 -6
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/account-id-endpoint/index.js +48 -88
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +35 -74
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +273 -365
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1581 -1863
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -4
- package/node_modules/@aws-sdk/core/dist-types/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/QuerySerializerSettings.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/XmlCodec.d.ts +1 -1
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +38 -73
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +194 -259
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +72 -132
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +71 -107
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +176 -249
- package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/loadSso-CVy8iqsZ.js +14 -0
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +16 -25
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +170 -203
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/index.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +583 -858
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +795 -928
- package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +147 -222
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +50 -94
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +5 -3
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +32 -30
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +133 -202
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +126 -34
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +2 -2
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +5 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +4 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +2 -2
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +19 -17
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +4 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +5 -6
- package/node_modules/@smithy/core/dist-es/submodules/schema/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +82 -176
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js +22 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/schema-serde-lib/schema-date-utils.js +110 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +4 -26
- package/node_modules/@smithy/core/dist-types/submodules/schema/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/sentinels.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/translateTraits.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +5 -24
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/sentinels.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/translateTraits.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/schema-serde-lib/schema-date-utils.d.ts +47 -0
- package/node_modules/@smithy/core/package.json +3 -3
- package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
- package/node_modules/@smithy/middleware-endpoint/package.json +2 -2
- package/node_modules/@smithy/middleware-retry/package.json +2 -2
- package/node_modules/@smithy/smithy-client/package.json +4 -4
- package/node_modules/@smithy/util-base64/dist-cjs/constants.browser.js +9 -32
- package/node_modules/@smithy/util-base64/dist-es/constants.browser.js +9 -28
- package/node_modules/@smithy/util-base64/dist-types/constants.browser.d.ts +5 -6
- package/node_modules/@smithy/util-base64/dist-types/ts3.4/constants.browser.d.ts +5 -6
- package/node_modules/@smithy/util-base64/package.json +1 -1
- package/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +8 -6
- package/node_modules/@smithy/util-body-length-node/dist-es/calculateBodyLength.js +8 -6
- package/node_modules/@smithy/util-body-length-node/package.json +1 -1
- package/node_modules/@smithy/util-defaults-mode-browser/dist-cjs/resolveDefaultsModeConfig.js +11 -9
- package/node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js +11 -8
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -3
- package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
- package/node_modules/@smithy/util-stream/dist-cjs/index.js +3 -5
- package/node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js +3 -5
- package/node_modules/@smithy/util-stream/dist-types/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
- package/node_modules/@smithy/util-stream/dist-types/ts3.4/blob/Uint8ArrayBlobAdapter.d.ts +1 -0
- package/node_modules/@smithy/util-stream/package.json +3 -3
- package/package.json +3 -3
|
@@ -1,276 +1,211 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sharedIniFileLoader = require('@smithy/shared-ini-file-loader');
|
|
4
|
+
var propertyProvider = require('@smithy/property-provider');
|
|
5
|
+
var client = require('@aws-sdk/core/client');
|
|
6
|
+
|
|
7
|
+
const resolveCredentialSource = (credentialSource, profileName, logger) => {
|
|
8
|
+
const sourceProvidersMap = {
|
|
9
|
+
EcsContainer: async (options) => {
|
|
10
|
+
const { fromHttp } = await import('@aws-sdk/credential-provider-http');
|
|
11
|
+
const { fromContainerMetadata } = await import('@smithy/credential-provider-imds');
|
|
12
|
+
logger?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer");
|
|
13
|
+
return async () => propertyProvider.chain(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider);
|
|
14
|
+
},
|
|
15
|
+
Ec2InstanceMetadata: async (options) => {
|
|
16
|
+
logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");
|
|
17
|
+
const { fromInstanceMetadata } = await import('@smithy/credential-provider-imds');
|
|
18
|
+
return async () => fromInstanceMetadata(options)().then(setNamedProvider);
|
|
19
|
+
},
|
|
20
|
+
Environment: async (options) => {
|
|
21
|
+
logger?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");
|
|
22
|
+
const { fromEnv } = await import('@aws-sdk/credential-provider-env');
|
|
23
|
+
return async () => fromEnv(options)().then(setNamedProvider);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
if (credentialSource in sourceProvidersMap) {
|
|
27
|
+
return sourceProvidersMap[credentialSource];
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new propertyProvider.CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +
|
|
31
|
+
`expected EcsContainer or Ec2InstanceMetadata or Environment.`, { logger });
|
|
32
|
+
}
|
|
12
33
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
34
|
+
const setNamedProvider = (creds) => client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_NAMED_PROVIDER", "p");
|
|
35
|
+
|
|
36
|
+
const isAssumeRoleProfile = (arg, { profile = "default", logger } = {}) => {
|
|
37
|
+
return (Boolean(arg) &&
|
|
38
|
+
typeof arg === "object" &&
|
|
39
|
+
typeof arg.role_arn === "string" &&
|
|
40
|
+
["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 &&
|
|
41
|
+
["undefined", "string"].indexOf(typeof arg.external_id) > -1 &&
|
|
42
|
+
["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 &&
|
|
43
|
+
(isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger })));
|
|
20
44
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}, "resolveCredentialSource");
|
|
80
|
-
var setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_NAMED_PROVIDER", "p"), "setNamedProvider");
|
|
81
|
-
|
|
82
|
-
// src/resolveAssumeRoleCredentials.ts
|
|
83
|
-
var isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = "default", logger } = {}) => {
|
|
84
|
-
return Boolean(arg) && typeof arg === "object" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 && ["undefined", "string"].indexOf(typeof arg.external_id) > -1 && ["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger }) || isCredentialSourceProfile(arg, { profile, logger }));
|
|
85
|
-
}, "isAssumeRoleProfile");
|
|
86
|
-
var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {
|
|
87
|
-
const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined";
|
|
88
|
-
if (withSourceProfile) {
|
|
89
|
-
logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);
|
|
90
|
-
}
|
|
91
|
-
return withSourceProfile;
|
|
92
|
-
}, "isAssumeRoleWithSourceProfile");
|
|
93
|
-
var isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger }) => {
|
|
94
|
-
const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined";
|
|
95
|
-
if (withProviderProfile) {
|
|
96
|
-
logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);
|
|
97
|
-
}
|
|
98
|
-
return withProviderProfile;
|
|
99
|
-
}, "isCredentialSourceProfile");
|
|
100
|
-
var resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => {
|
|
101
|
-
options.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");
|
|
102
|
-
const profileData = profiles[profileName];
|
|
103
|
-
const { source_profile, region } = profileData;
|
|
104
|
-
if (!options.roleAssumer) {
|
|
105
|
-
const { getDefaultRoleAssumer } = await Promise.resolve().then(() => __toESM(require("@aws-sdk/nested-clients/sts")));
|
|
106
|
-
options.roleAssumer = getDefaultRoleAssumer(
|
|
107
|
-
{
|
|
108
|
-
...options.clientConfig,
|
|
109
|
-
credentialProviderLogger: options.logger,
|
|
110
|
-
parentClientConfig: {
|
|
111
|
-
...options?.parentClientConfig,
|
|
112
|
-
region: region ?? options?.parentClientConfig?.region
|
|
45
|
+
const isAssumeRoleWithSourceProfile = (arg, { profile, logger }) => {
|
|
46
|
+
const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined";
|
|
47
|
+
if (withSourceProfile) {
|
|
48
|
+
logger?.debug?.(` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`);
|
|
49
|
+
}
|
|
50
|
+
return withSourceProfile;
|
|
51
|
+
};
|
|
52
|
+
const isCredentialSourceProfile = (arg, { profile, logger }) => {
|
|
53
|
+
const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined";
|
|
54
|
+
if (withProviderProfile) {
|
|
55
|
+
logger?.debug?.(` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`);
|
|
56
|
+
}
|
|
57
|
+
return withProviderProfile;
|
|
58
|
+
};
|
|
59
|
+
const resolveAssumeRoleCredentials = async (profileName, profiles, options, visitedProfiles = {}) => {
|
|
60
|
+
options.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");
|
|
61
|
+
const profileData = profiles[profileName];
|
|
62
|
+
const { source_profile, region } = profileData;
|
|
63
|
+
if (!options.roleAssumer) {
|
|
64
|
+
const { getDefaultRoleAssumer } = await import('@aws-sdk/nested-clients/sts');
|
|
65
|
+
options.roleAssumer = getDefaultRoleAssumer({
|
|
66
|
+
...options.clientConfig,
|
|
67
|
+
credentialProviderLogger: options.logger,
|
|
68
|
+
parentClientConfig: {
|
|
69
|
+
...options?.parentClientConfig,
|
|
70
|
+
region: region ?? options?.parentClientConfig?.region,
|
|
71
|
+
},
|
|
72
|
+
}, options.clientPlugins);
|
|
73
|
+
}
|
|
74
|
+
if (source_profile && source_profile in visitedProfiles) {
|
|
75
|
+
throw new propertyProvider.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile` +
|
|
76
|
+
` ${sharedIniFileLoader.getProfileName(options)}. Profiles visited: ` +
|
|
77
|
+
Object.keys(visitedProfiles).join(", "), { logger: options.logger });
|
|
78
|
+
}
|
|
79
|
+
options.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`);
|
|
80
|
+
const sourceCredsProvider = source_profile
|
|
81
|
+
? resolveProfileData(source_profile, profiles, options, {
|
|
82
|
+
...visitedProfiles,
|
|
83
|
+
[source_profile]: true,
|
|
84
|
+
}, isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}))
|
|
85
|
+
: (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();
|
|
86
|
+
if (isCredentialSourceWithoutRoleArn(profileData)) {
|
|
87
|
+
return sourceCredsProvider.then((creds) => client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o"));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const params = {
|
|
91
|
+
RoleArn: profileData.role_arn,
|
|
92
|
+
RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,
|
|
93
|
+
ExternalId: profileData.external_id,
|
|
94
|
+
DurationSeconds: parseInt(profileData.duration_seconds || "3600", 10),
|
|
95
|
+
};
|
|
96
|
+
const { mfa_serial } = profileData;
|
|
97
|
+
if (mfa_serial) {
|
|
98
|
+
if (!options.mfaCodeProvider) {
|
|
99
|
+
throw new propertyProvider.CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, { logger: options.logger, tryNextLink: false });
|
|
100
|
+
}
|
|
101
|
+
params.SerialNumber = mfa_serial;
|
|
102
|
+
params.TokenCode = await options.mfaCodeProvider(mfa_serial);
|
|
113
103
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
if (source_profile && source_profile in visitedProfiles) {
|
|
119
|
-
throw new import_property_provider.CredentialsProviderError(
|
|
120
|
-
`Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(", "),
|
|
121
|
-
{ logger: options.logger }
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
options.logger?.debug(
|
|
125
|
-
`@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}`
|
|
126
|
-
);
|
|
127
|
-
const sourceCredsProvider = source_profile ? resolveProfileData(
|
|
128
|
-
source_profile,
|
|
129
|
-
profiles,
|
|
130
|
-
options,
|
|
131
|
-
{
|
|
132
|
-
...visitedProfiles,
|
|
133
|
-
[source_profile]: true
|
|
134
|
-
},
|
|
135
|
-
isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {})
|
|
136
|
-
) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))();
|
|
137
|
-
if (isCredentialSourceWithoutRoleArn(profileData)) {
|
|
138
|
-
return sourceCredsProvider.then((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o"));
|
|
139
|
-
} else {
|
|
140
|
-
const params = {
|
|
141
|
-
RoleArn: profileData.role_arn,
|
|
142
|
-
RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`,
|
|
143
|
-
ExternalId: profileData.external_id,
|
|
144
|
-
DurationSeconds: parseInt(profileData.duration_seconds || "3600", 10)
|
|
145
|
-
};
|
|
146
|
-
const { mfa_serial } = profileData;
|
|
147
|
-
if (mfa_serial) {
|
|
148
|
-
if (!options.mfaCodeProvider) {
|
|
149
|
-
throw new import_property_provider.CredentialsProviderError(
|
|
150
|
-
`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`,
|
|
151
|
-
{ logger: options.logger, tryNextLink: false }
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
params.SerialNumber = mfa_serial;
|
|
155
|
-
params.TokenCode = await options.mfaCodeProvider(mfa_serial);
|
|
104
|
+
const sourceCreds = await sourceCredsProvider;
|
|
105
|
+
return options.roleAssumer(sourceCreds, params).then((creds) => client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o"));
|
|
156
106
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
}, "resolveAssumeRoleCredentials");
|
|
163
|
-
var isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => {
|
|
164
|
-
return !section.role_arn && !!section.credential_source;
|
|
165
|
-
}, "isCredentialSourceWithoutRoleArn");
|
|
166
|
-
|
|
167
|
-
// src/resolveProcessCredentials.ts
|
|
107
|
+
};
|
|
108
|
+
const isCredentialSourceWithoutRoleArn = (section) => {
|
|
109
|
+
return !section.role_arn && !!section.credential_source;
|
|
110
|
+
};
|
|
168
111
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
({ fromProcess }) => fromProcess({
|
|
112
|
+
const isProcessProfile = (arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string";
|
|
113
|
+
const resolveProcessCredentials = async (options, profile) => import('@aws-sdk/credential-provider-process').then(({ fromProcess }) => fromProcess({
|
|
172
114
|
...options,
|
|
173
|
-
profile
|
|
174
|
-
})().then((creds) => (0, import_client.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_PROCESS", "v"))
|
|
175
|
-
), "resolveProcessCredentials");
|
|
176
|
-
|
|
177
|
-
// src/resolveSsoCredentials.ts
|
|
178
|
-
|
|
179
|
-
var resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => {
|
|
180
|
-
const { fromSSO } = await Promise.resolve().then(() => __toESM(require("@aws-sdk/credential-provider-sso")));
|
|
181
|
-
return fromSSO({
|
|
182
115
|
profile,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
116
|
+
})().then((creds) => client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_PROCESS", "v")));
|
|
117
|
+
|
|
118
|
+
const resolveSsoCredentials = async (profile, profileData, options = {}) => {
|
|
119
|
+
const { fromSSO } = await import('@aws-sdk/credential-provider-sso');
|
|
120
|
+
return fromSSO({
|
|
121
|
+
profile,
|
|
122
|
+
logger: options.logger,
|
|
123
|
+
parentClientConfig: options.parentClientConfig,
|
|
124
|
+
clientConfig: options.clientConfig,
|
|
125
|
+
})().then((creds) => {
|
|
126
|
+
if (profileData.sso_session) {
|
|
127
|
+
return client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_SSO", "r");
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
return client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_SSO_LEGACY", "t");
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
const isSsoProfile = (arg) => arg &&
|
|
135
|
+
(typeof arg.sso_start_url === "string" ||
|
|
136
|
+
typeof arg.sso_account_id === "string" ||
|
|
137
|
+
typeof arg.sso_session === "string" ||
|
|
138
|
+
typeof arg.sso_region === "string" ||
|
|
139
|
+
typeof arg.sso_role_name === "string");
|
|
140
|
+
|
|
141
|
+
const isStaticCredsProfile = (arg) => Boolean(arg) &&
|
|
142
|
+
typeof arg === "object" &&
|
|
143
|
+
typeof arg.aws_access_key_id === "string" &&
|
|
144
|
+
typeof arg.aws_secret_access_key === "string" &&
|
|
145
|
+
["undefined", "string"].indexOf(typeof arg.aws_session_token) > -1 &&
|
|
146
|
+
["undefined", "string"].indexOf(typeof arg.aws_account_id) > -1;
|
|
147
|
+
const resolveStaticCredentials = async (profile, options) => {
|
|
148
|
+
options?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");
|
|
149
|
+
const credentials = {
|
|
150
|
+
accessKeyId: profile.aws_access_key_id,
|
|
151
|
+
secretAccessKey: profile.aws_secret_access_key,
|
|
152
|
+
sessionToken: profile.aws_session_token,
|
|
153
|
+
...(profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }),
|
|
154
|
+
...(profile.aws_account_id && { accountId: profile.aws_account_id }),
|
|
155
|
+
};
|
|
156
|
+
return client.setCredentialFeature(credentials, "CREDENTIALS_PROFILE", "n");
|
|
157
|
+
};
|
|
212
158
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
159
|
+
const isWebIdentityProfile = (arg) => Boolean(arg) &&
|
|
160
|
+
typeof arg === "object" &&
|
|
161
|
+
typeof arg.web_identity_token_file === "string" &&
|
|
162
|
+
typeof arg.role_arn === "string" &&
|
|
163
|
+
["undefined", "string"].indexOf(typeof arg.role_session_name) > -1;
|
|
164
|
+
const resolveWebIdentityCredentials = async (profile, options) => import('@aws-sdk/credential-provider-web-identity').then(({ fromTokenFile }) => fromTokenFile({
|
|
216
165
|
webIdentityTokenFile: profile.web_identity_token_file,
|
|
217
166
|
roleArn: profile.role_arn,
|
|
218
167
|
roleSessionName: profile.role_session_name,
|
|
219
168
|
roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,
|
|
220
169
|
logger: options.logger,
|
|
221
|
-
parentClientConfig: options.parentClientConfig
|
|
222
|
-
|
|
223
|
-
), "resolveWebIdentityCredentials");
|
|
224
|
-
|
|
225
|
-
// src/resolveProfileData.ts
|
|
226
|
-
var resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {
|
|
227
|
-
const data = profiles[profileName];
|
|
228
|
-
if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {
|
|
229
|
-
return resolveStaticCredentials(data, options);
|
|
230
|
-
}
|
|
231
|
-
if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {
|
|
232
|
-
return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);
|
|
233
|
-
}
|
|
234
|
-
if (isStaticCredsProfile(data)) {
|
|
235
|
-
return resolveStaticCredentials(data, options);
|
|
236
|
-
}
|
|
237
|
-
if (isWebIdentityProfile(data)) {
|
|
238
|
-
return resolveWebIdentityCredentials(data, options);
|
|
239
|
-
}
|
|
240
|
-
if (isProcessProfile(data)) {
|
|
241
|
-
return resolveProcessCredentials(options, profileName);
|
|
242
|
-
}
|
|
243
|
-
if (isSsoProfile(data)) {
|
|
244
|
-
return await resolveSsoCredentials(profileName, data, options);
|
|
245
|
-
}
|
|
246
|
-
throw new import_property_provider.CredentialsProviderError(
|
|
247
|
-
`Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`,
|
|
248
|
-
{ logger: options.logger }
|
|
249
|
-
);
|
|
250
|
-
}, "resolveProfileData");
|
|
170
|
+
parentClientConfig: options.parentClientConfig,
|
|
171
|
+
})().then((creds) => client.setCredentialFeature(creds, "CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN", "q")));
|
|
251
172
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
173
|
+
const resolveProfileData = async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => {
|
|
174
|
+
const data = profiles[profileName];
|
|
175
|
+
if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) {
|
|
176
|
+
return resolveStaticCredentials(data, options);
|
|
177
|
+
}
|
|
178
|
+
if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) {
|
|
179
|
+
return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles);
|
|
180
|
+
}
|
|
181
|
+
if (isStaticCredsProfile(data)) {
|
|
182
|
+
return resolveStaticCredentials(data, options);
|
|
183
|
+
}
|
|
184
|
+
if (isWebIdentityProfile(data)) {
|
|
185
|
+
return resolveWebIdentityCredentials(data, options);
|
|
259
186
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
})
|
|
267
|
-
|
|
268
|
-
init
|
|
269
|
-
);
|
|
270
|
-
}, "fromIni");
|
|
271
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
187
|
+
if (isProcessProfile(data)) {
|
|
188
|
+
return resolveProcessCredentials(options, profileName);
|
|
189
|
+
}
|
|
190
|
+
if (isSsoProfile(data)) {
|
|
191
|
+
return await resolveSsoCredentials(profileName, data, options);
|
|
192
|
+
}
|
|
193
|
+
throw new propertyProvider.CredentialsProviderError(`Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, { logger: options.logger });
|
|
194
|
+
};
|
|
272
195
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
196
|
+
const fromIni = (_init = {}) => async ({ callerClientConfig } = {}) => {
|
|
197
|
+
const init = {
|
|
198
|
+
..._init,
|
|
199
|
+
parentClientConfig: {
|
|
200
|
+
...callerClientConfig,
|
|
201
|
+
..._init.parentClientConfig,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
init.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");
|
|
205
|
+
const profiles = await sharedIniFileLoader.parseKnownFiles(init);
|
|
206
|
+
return resolveProfileData(sharedIniFileLoader.getProfileName({
|
|
207
|
+
profile: _init.profile ?? callerClientConfig?.profile,
|
|
208
|
+
}), profiles, init);
|
|
209
|
+
};
|
|
276
210
|
|
|
211
|
+
exports.fromIni = fromIni;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/credential-provider-ini",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.906.0",
|
|
4
4
|
"description": "AWS credential provider that sources credentials from ~/.aws/credentials and ~/.aws/config",
|
|
5
5
|
"main": "./dist-cjs/index.js",
|
|
6
6
|
"module": "./dist-es/index.js",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
},
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aws-sdk/core": "3.
|
|
32
|
-
"@aws-sdk/credential-provider-env": "3.
|
|
33
|
-
"@aws-sdk/credential-provider-http": "3.
|
|
34
|
-
"@aws-sdk/credential-provider-process": "3.
|
|
35
|
-
"@aws-sdk/credential-provider-sso": "3.
|
|
36
|
-
"@aws-sdk/credential-provider-web-identity": "3.
|
|
37
|
-
"@aws-sdk/nested-clients": "3.
|
|
31
|
+
"@aws-sdk/core": "3.906.0",
|
|
32
|
+
"@aws-sdk/credential-provider-env": "3.906.0",
|
|
33
|
+
"@aws-sdk/credential-provider-http": "3.906.0",
|
|
34
|
+
"@aws-sdk/credential-provider-process": "3.906.0",
|
|
35
|
+
"@aws-sdk/credential-provider-sso": "3.906.0",
|
|
36
|
+
"@aws-sdk/credential-provider-web-identity": "3.906.0",
|
|
37
|
+
"@aws-sdk/nested-clients": "3.906.0",
|
|
38
38
|
"@aws-sdk/types": "3.901.0",
|
|
39
39
|
"@smithy/credential-provider-imds": "^4.2.0",
|
|
40
40
|
"@smithy/property-provider": "^4.2.0",
|