在 Visual Studio 代码中使用 SSO 配置文件调用 AWS cmdlet 时无法进行身份验证

问题描述 投票:0回答:1

我正在将 Visual Studio Code 与 AWS cli 版本 2.9.13 一起使用,我配置了一个 SSO 配置文件,我用它来使用设备代码身份验证对 AWS 服务进行身份验证 - 然后我可以使用此配置文件连接到我们的 AWS代码提交存储库但是,当尝试调用任何 AWS PowerShell cmdlet 时,我收到返回以下错误;

 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.

每次使用profile参数时都会返回此错误,如下所示

-ProfileName MySSOProfile

到目前为止我做了什么;

  • 重新安装了我尝试使用的 AWS 模块并安装了 最新版本
  • 将我的 WSL 上的所有软件包更新到最新版本
  • 安装了适用于 Visual Studio 的 AWS Toolkit 扩展,目前版本为 1.60.0
  • 已安装 AWSSDK.Core --版本 3.7.103.13

我需要做什么来解决此错误,以便我可以使用经过身份验证的 AWS 配置文件来调用 AWS cmdlet?

amazon-web-services .net-assembly aws-powershell
1个回答
6
投票

更新

从 AWS Tools for PowerShell 的

4.1.538
版本开始,您可以使用新的 PowerShell cmdlet,而不必依赖 AWS CLI。依赖项也包含在
AWS.Tools.Common
中,因此您不再需要显式导入
AWS.Tools.SSO
AWS.Tools.SSOOIDC

Invoke-AWSSSOLogin -ProfileName MySSOProfile

# Now we can invoke cmdlets using the SSO profile
Get-S3Bucket -ProfileName MySSOProfile

原答案

使用 .NET 开发工具包或适用于 PowerShell 的 AWS 工具中的 SSO 凭证需要依赖于开发工具包自己的 SSO 和 SSOOOIDC mdoule。

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

另请参阅 使用 PowerShell 从 AWS IAM Identity Center 更新 AWS CLI 凭证

© www.soinside.com 2019 - 2024. All rights reserved.