我正在尝试使用aws sts assume-role-with-saml
中的documentation生成aws凭据
然而,我收到错误,我真的不明白,流程。通常我有SAML_PROVIDER所在的主帐户ACCOUNT_A,我从中将角色切换到帐户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):Principal存在于假定角色的帐户之外
如果尝试这样:
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)
我认为文档在功能方面并不清楚,谷歌上没有明确的例子......所以我的问题是:
事实上,我认为SAML部分让我感到困惑,在其他帐户(ACCOUNT_B)中没有任何内容可创建,如果这意味着您绕过退回帐户(ACCOUNT_A),则会失去其兴趣和安全目的。但是您必须使用ACCOUNT_A上的SAML idp来生成凭据,然后允许从A切换到B,完全无需委派就可以