Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Use-STSRoleWithWebIdentity Returns No Credentials in PowerShell (Only Expiration field is Returned) #362

Open
1 task
dotNetNaji opened this issue Oct 18, 2024 · 4 comments
Assignees
Labels
bug This issue is a bug. module/powershell-cmdlets needs-reproduction This issue needs reproduction. p2 This is a standard priority issue

Comments

@dotNetNaji
Copy link

dotNetNaji commented Oct 18, 2024

Describe the bug

Issue Description: I am encountering an issue with the Use-STSRoleWithWebIdentity cmdlet in AWS Tools for PowerShell when running it in a Bitbucket Pipeline. The cmdlet returns an object that contains ONLY the Expiration value. The AWS CLI, using the same parameters (role ARN, web identity token, session name, etc.), works as expected and returns the full credentials (AccessKeyId, SecretAccessKey, and SessionToken).

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

The Use-STSRoleWithWebIdentity cmdlet should return the full credentials (similar to the AWS CLI), including the AccessKeyId, SecretAccessKey, and SessionToken.

Current Behavior

The Credentials object in the response contains only the Expiration field.
No errors or exceptions are thrown, but the complete credentials are missing from the response.

Reproduction Steps

Environment:
Bitbucket Pipeline (using mcr.microsoft.com/dotnet/sdk:8.0 image)
AWS Tools for PowerShell version: 4.1.680
PowerShell version: 7.5.4
AWS region: eu-west-1

PowerShell Code: (Running inside a bitbucket pipeline)

$stsResponse = Use-STSRoleWithWebIdentity `
        -RoleArn $env:PIPELINE_ROLE_ARN `
        -RoleSessionName "build-session" `
        -WebIdentityToken $env:BITBUCKET_STEP_OIDC_TOKEN `
        -DurationSeconds 3600

    # Output response to verify
    $stsResponse | ConvertTo-Json -Depth 10 | Write-Host

Output :

{
  "Expiration": "2024-10-18T20:27:47+00:00"
}

AWS CLI Command (Works as expected):

aws sts assume-role-with-web-identity \
      --role-arn $PIPELINE_ROLE_ARN \
      --role-session-name session-name \
      --web-identity-token $BITBUCKET_STEP_OIDC_TOKEN \
      --duration-seconds 3600

CLI output

{
  "Credentials": {
    "AccessKeyId": "AKIA...",
    "SecretAccessKey": "wJalrX...",
    "SessionToken": "IQoJb...",
    "Expiration": "2024-10-18T20:27:47+00:00"
  },
  "AssumedRoleUser": {
    "AssumedRoleId": "AROAXXXXXXXXXXXX:build-session",
    "Arn": "arn:aws:sts::XXXXXXXXXX:assumed-role/my-role/build-session"
  }
}

Possible Solution

No response

Additional Information/Context

Bitbucket Pipelines OIDC is configured correctly as the AWS CLI works without issue.
No errors or exceptions are thrown in PowerShell; it simply returns an object with only Expiration field.

AWS Tools for PowerShell version used

Name : AWS.Tools.Common
Version : 4.1.680

Name : AWS.Tools.SecurityToken
Version : 4.1.680

PowerShell version used

Major : 7
Minor : 4
Patch : 5
PreReleaseLabel :
BuildLabel :

Operating System and version

Ubuntu

@dotNetNaji dotNetNaji added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Oct 18, 2024
@dotNetNaji dotNetNaji changed the title Bug: Use-STSRoleWithWebIdentity Returns Null Response in Bitbucket Pipeline, While AWS CLI Works Bug: Use-STSRoleWithWebIdentity Returns Only the Experation in Bitbucket Pipeline, While AWS CLI Works Oct 18, 2024
@dotNetNaji dotNetNaji changed the title Bug: Use-STSRoleWithWebIdentity Returns Only the Experation in Bitbucket Pipeline, While AWS CLI Works Bug: Use-STSRoleWithWebIdentity Returns Only the Experation While AWS CLI Works Oct 18, 2024
@dotNetNaji dotNetNaji changed the title Bug: Use-STSRoleWithWebIdentity Returns Only the Experation While AWS CLI Works Bug: Use-STSRoleWithWebIdentity Returns object that contains just the Expiration While AWS CLI Works fine Oct 18, 2024
@dotNetNaji dotNetNaji changed the title Bug: Use-STSRoleWithWebIdentity Returns object that contains just the Expiration While AWS CLI Works fine Bug: Use-STSRoleWithWebIdentity Returns Null Credentials Object in PowerShell (Only Expiration is Returned) Oct 18, 2024
@bhoradc bhoradc added module/powershell-cmdlets p2 This is a standard priority issue and removed needs-triage This issue or PR still needs to be triaged. labels Oct 21, 2024
@bhoradc
Copy link

bhoradc commented Oct 21, 2024

Hello @dotNetNaji,

Thank you for reporting this issue. It appears that you are using a custom cmdlet Use-STSRoleWithWebIdentity?

Use-STSRoleWithWebIdentity doesn't seem a cmdlet provided by the AWS Tools for PowerShell. The official cmdlet for assuming a role with web identity credentials is Use-STSWebIdentityRole, which is part of the AWS.Tools.SecurityToken module within the AWS Tools for PowerShell package.

Can you please confirm if you are experiencing similar issue when using the Use-STSWebIdentityRole cmdlet. This should call the AWS STS AssumeRoleWithWebIdentity API operation.

In this case, I am unsure why Use-STSRoleWithWebIdentity would return a null response. However, if you continue to experience issues with the official Use-STSWebIdentityRole cmdlet, please let us know.

Regards,
Chaitanya

@bhoradc bhoradc added the response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 7 days. label Oct 21, 2024
@bhoradc bhoradc self-assigned this Oct 21, 2024
@dotNetNaji
Copy link
Author

Hello @bhoradc,

I can confirm that I'm facing the same issue with Use-STSWebIdentityRole cmdlet.

@github-actions github-actions bot removed the response-requested Waiting on additional info and feedback. Will move to "closing-soon" in 7 days. label Oct 22, 2024
@dotNetNaji dotNetNaji changed the title Bug: Use-STSRoleWithWebIdentity Returns Null Credentials Object in PowerShell (Only Expiration is Returned) Bug: Use-STSRoleWithWebIdentity Returns No Credentials in PowerShell (Only Expiration field is Returned) Oct 22, 2024
@dotNetNaji
Copy link
Author

Hello @bhoradc, any updates on this ?

@ashishdhingra
Copy link
Contributor

Hello @bhoradc, any updates on this ?

@dotNetNaji I will try to review this tomorrow and discuss with the team accordingly.

@ashishdhingra ashishdhingra added the needs-reproduction This issue needs reproduction. label Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. module/powershell-cmdlets needs-reproduction This issue needs reproduction. p2 This is a standard priority issue
Projects
None yet
Development

No branches or pull requests

3 participants