【问题标题】:Is there a way to get temporary role based credentials using the AWS C++ SDK?有没有办法使用 AWS C++ 开发工具包获取基于角色的临时凭证?
【发布时间】:2020-06-12 00:12:35
【问题描述】:

DefaultAWSCredentialsProviderChain 中使用的ProfileConfigFileAWSCredentialsProvider 只会忽略~/.aws/config~/.aws/credentials 中的角色。 STSProfileCredentialsProvider 看起来好像是用于此目的,但 1)它未在 DefaultAWSCredentialsProviderChain 中使用,因此您必须明确使用它,以及 2)它仅读取 config。 #2 意味着,例如,如果您的基于角色的配置文件指定了源配置文件,并且源配置文件的凭据位于 credentials 中,则 STSProfileCredentialsProvider 将无法找到源配置文件的凭据,然后将无法获取角色的临时凭据。

【问题讨论】:

    标签: aws-sdk-cpp


    【解决方案1】:

    这实际上是由 AWS C++ 开发工具包中的一个问题引起的,其中具有假定角色的配置被 DefaultCredentialsProviderChain 忽略:https://github.com/aws/aws-sdk-cpp/issues/150 但是,我们需要找到一种解决方法,因为早在 2016 年就曾承诺“非常快”地解决这个问题,但仍然没有解决,事实上这个问题现在已经解决了。

    编辑:这里还有另一个问题https://github.com/aws/aws-sdk-cpp/issues/1330

    看来您唯一的选择是自己使用 Aws::Config::GetCachedConfigProfile(Aws::Auth::GetConfigProfileName()) 之类的方法查找活动配置文件,然后使用 GetRoleArn()/GetSourceProfile() 并调用 STS使用源配置文件中的凭据为自己服务。

    如果您找到更好的解决方案,请告诉我!

    【讨论】:

      猜你喜欢
      • 2019-08-22
      • 2019-03-13
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多