首页 > 解决方案 > 使用 SAML 从 aws cli 担任角色

问题描述

我正在尝试使用aws sts assume-role-with-saml从此文档生成 aws 凭据

但是我遇到了错误,我不太了解流程。通常我有一个主帐户ACCOUNT_ASAML_PROVIDER所在的位置,我将角色切换到帐户ACCOUNT_B。因此,据我了解,语法应如下所示:

aws sts assume-role-with-saml --role-arn arn:aws:iam::ACCOUNT_B:role/IAM_ROLE --principal-arn arn:aws:iam::ACCOUNT_A:saml-provider/SAML_PROVIDER --saml-assertion BASE64_ENCODED_RESPONSE

但是当我尝试上述方式时,我得到了错误:

调用 AssumeRoleWithSAML 操作时发生错误 (ValidationError):主体存在于所代入角色的帐户之外

然后,如果尝试这种方式:

aws sts assume-role-with-saml --role-arn arn:aws:iam::ACCOUNT_B:role/IAM_ROLE --principal-arn arn:aws:iam::ACCOUNT_B:saml-provider/SAML_PROVIDER --saml-assertion BASE64_ENCODED_RESPONSE

我得到错误:

调用 AssumeRoleWithSAML 操作时发生错误 (InvalidIdentityToken):指定的提供程序不存在(服务:AWSOpenIdDiscoveryService;状态代码:400;错误代码:AuthSamlManifestNotFoundException;请求 ID:3565c77a-44b6-11e9-a384-b1f45948a767)

我认为文档在功能方面并不清楚,谷歌上也没有很清楚的例子......所以我的问题是:

标签: amazon-web-servicessaml-2.0aws-cliamazon-iamopensaml

解决方案


事实上,我认为 SAML 部分让我感到困惑,如果这意味着您绕过退回帐户(ACCOUNT_A)并失去其兴趣和安全目的,则在其他帐户(ACCOUNT_B)中没有可创建的内容。但是您必须使用ACCOUNT_A上的SAML idp来生成凭据,然后允许从 A 切换到 B,就像它在没有委托的情况下工作一样


推荐阅读