From 4bd3c23557f849a85159bf4cbf0b3e02fe7785e2 Mon Sep 17 00:00:00 2001 From: Ran Vaknin Date: Fri, 7 Jul 2023 23:09:56 +0000 Subject: [PATCH 1/2] fix(credential-provider-ini): add DurationSeconds to assumeRole interface and params --- .../src/resolveAssumeRoleCredentials.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts index b2d8d8567ee2..f175ab54cd12 100644 --- a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts +++ b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts @@ -39,6 +39,11 @@ export interface AssumeRoleParams { * The value provided by the MFA device. */ TokenCode?: string; + + /** + * The duration, in seconds, of the role session. + */ + DurationSeconds?: number; } interface AssumeRoleWithSourceProfile extends Profile { @@ -108,6 +113,7 @@ export const resolveAssumeRoleCredentials = async ( RoleArn: data.role_arn!, RoleSessionName: data.role_session_name || `aws-sdk-js-${Date.now()}`, ExternalId: data.external_id, + DurationSeconds: parseInt(data.duration_seconds || "3600", 10), }; const { mfa_serial } = data; From 438a6c3439e83adc3fdf47546cb570f1a159f138 Mon Sep 17 00:00:00 2001 From: Ran Vaknin Date: Wed, 13 Sep 2023 21:52:35 +0000 Subject: [PATCH 2/2] fix(credential-provider-ini): update tests to reflect durationseconds --- .../src/resolveAssumeRoleCredentials.spec.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.spec.ts b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.spec.ts index 82fe32729a14..405d670a7ef1 100644 --- a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.spec.ts +++ b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.spec.ts @@ -102,6 +102,7 @@ describe(resolveAssumeRoleCredentials.name, () => { role_arn: "mock_role_arn", role_session_name: "mock_role_session_name", external_id: "mock_external_id", + duration_seconds: "2000", }); const getMockProfilesWithCredSource = (additionalData) => ({ @@ -176,6 +177,7 @@ describe(resolveAssumeRoleCredentials.name, () => { RoleArn: mockRoleAssumeParams.role_arn, RoleSessionName: mockRoleAssumeParams.role_session_name, ExternalId: mockRoleAssumeParams.external_id, + DurationSeconds: parseInt(mockRoleAssumeParams.duration_seconds), }); }); @@ -191,6 +193,7 @@ describe(resolveAssumeRoleCredentials.name, () => { RoleArn: mockRoleAssumeParams.role_arn, RoleSessionName: mockRoleAssumeParams.role_session_name, ExternalId: mockRoleAssumeParams.external_id, + DurationSeconds: parseInt(mockRoleAssumeParams.duration_seconds), }); }); @@ -207,6 +210,7 @@ describe(resolveAssumeRoleCredentials.name, () => { RoleArn: mockRoleAssumeParams.role_arn, RoleSessionName: `aws-sdk-js-${mockDateNow}`, ExternalId: mockRoleAssumeParams.external_id, + DurationSeconds: parseInt(mockRoleAssumeParams.duration_seconds), }); }); @@ -253,6 +257,7 @@ describe(resolveAssumeRoleCredentials.name, () => { ExternalId: mockRoleAssumeParams.external_id, SerialNumber: mockMfaSerial, TokenCode: mockTokenCode, + DurationSeconds: parseInt(mockRoleAssumeParams.duration_seconds), }); }); });