I'm using visual studio code with the AWS cli version 2.9.13, I've got an SSO profile configured which I use to authenticate to the AWS service using device code authentication - I can then use this profile to connect to our AWS code commit repository however when trying to invoke any of the AWS PowerShell cmdlets I'm getting the below error returned;
Assembly AWSSDK.SSOOIDC could not be found or loaded. This assembly must be available at runtime to use Amazon.Runtime.Internal.SSOServiceClientHelpers, AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604.
This error is returned each time I use the profile parameter as shown below
-ProfileName MySSOProfile
What i've done so far;
What do I need to do to resolve this error and so that I can use my authenticated AWS profile to invoke the AWS cmdlets?
As of the 4.1.538
release of AWS Tools for PowerShell, you can use the new PowerShell cmdlets instead of relying on the AWS CLI. The dependencies are included in AWS.Tools.Common
too, so you no longer need to import AWS.Tools.SSO
and AWS.Tools.SSOOIDC
explicitly.
Invoke-AWSSSOLogin -ProfileName MySSOProfile
# Now we can invoke cmdlets using the SSO profile
Get-S3Bucket -ProfileName MySSOProfile
Using SSO credentials from either the .NET SDK or AWS Tools for PowerShell requires a dependency on the SDK's own SSO and SSOOIDC mdoules.
Install-Module AWS.Tools.Installer
Install-AWSToolsModule S3, SSO, SSOOIDC
# Since we're not invoking a cmdlet from these modules directly,
# we must import them explicitly
Import-Module AWS.Tools.SSO
Import-Module AWS.Tools.SSOOIDC
# AWS Tools for PowerShell doesn't support the SSO login flow yet, so login with the CLI
aws sso login --profile MySSOProfile
# Now we can invoke cmdlets using the SSO profile
Get-S3Bucket -ProfileName MySSOProfile
See also Update AWS CLI credentials from AWS IAM Identity Center by using PowerShell