问题标签 [aws-sts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
704 浏览

amazon-web-services - 如何创建仅允许在同一 CloudFormation 堆栈中创建的资源承担 IAM 角色的条件?

我正在创建一个具有 CodeBuild 和 IAM 角色作为资源的 CloudFormation 堆栈。我想知道是否存在仅允许在同一堆栈中创建的资源担任该角色的条件。

目前,我的堆栈是这样定义的:

问题是任何 CodeBuild 项目都可以承担上述角色。

当我尝试添加一个条件时,指定只有具有aws:cloudformation:stack-name相同堆栈名称的主体才能担任该角色:

,我得到这个错误:

Condition can contain only one colon. (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument)

0 投票
1 回答
663 浏览

c++ - STS 获取呼叫者身份 C++

在命令行上,我可以运行此 AWS CLI 命令以获取在我的本地计算机上使用的 AWS UserId

我现在需要从适用于 C++ 的 AWS 开发工具包中获取相同的信息(特别是 UserId)。我一直在尝试aws/sts/STSClient.h像这样使用图书馆

但是我在打电话时总是遇到异常Aws::STS::STSClient stsClient;

外部/aws/aws-cpp-sdk-core/source/config/AWSProfileConfigLoader.cpp:498: Aws::Config::Profile Aws::Config::GetCachedConfigProfile(const Aws::String &): 断言 `s_configManager' 失败.

有谁知道我做错了什么?

更新:

我什至可以使用 AWS 的 Python SDK 的 Boto3 库来做到这一点

为什么在 C++ 中很难做到这一点?

0 投票
1 回答
816 浏览

ruby-on-rails - 如何在 Ruby on Rails 中为 aws-fog S3 存储使用 assume_role_with_web_identity 身份验证?

我用 STS 设置了 kubernetes,它适用于 sdk 的 sqs、sns 等。我需要使用 STS auth 和fog-aws gem 来下载/列出文件,我可以使用 ruby​​ aws-sdk-s3 来完成,但我使用carrierwave gem 所以我想用fog-aws来解决这个问题。

使用 sdk - 工作

使用fog-aws - 失败

感谢任何指针,谢谢。

编辑:

STS 由我们在 kuberenets 中的 DevOps 使用服务帐户https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/配置。我不知道内部结构及其工作原理,但是通过此设置,新的 aws sdk 可以读取帐户详细信息并自动承担角色,无需显式调用承担角色功能。我们可以从我的第一个示例中看到这一点,该示例列出了我不传递任何凭据的 s3 对象。链接到使用来自 pod 的服务帐户的 aws sdk 新版本。 https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/

我已经尝试过获取临时访问密钥和秘密并将其传递给存储类的方法,但这也不起作用。我们的 DevOps 人员说所有使用密钥和秘密的访问都被禁用,唯一的使用方法是使用假设角色和网络身份

我还发现了我认为可以解决我遇到的问题的要点,我还没有尝试过。参考链接https://gist.github.com/peterwells/39a5c31d934fa8eb0f2c

0 投票
1 回答
108 浏览

aws-lambda - How to get AWS AccessToken from Cognito, using Dev Authenticated Identities

I am using a Cognito Identity Pool with Developer Authenticated Identities Authflow Setup - this auth flow was chosen because we are not able to use Cognito User Pools for some business reasons. Hence I implemented a User Identity Provider Service myself using API Gateway with an auth endpoint, which fires a Lambda function.

So I generated a temporary AccessKey and SecretKey by running cognitoidentity.getOpenIdTokenForDeveloperIdentity and afterwards cognitoidentity.getCredentialsForIdentity and got temporary AWS Credentials (temporary AccessKey and SecretKey).

Now I want to generate an AccessToken in order to authenticate my requests on AWS API Gateway on which I am using IAM authorization (so it needs an AccessToken to authorize requests).

My question is - how do I generate an AccessToken?

AuthenticationResult contents

0 投票
2 回答
1530 浏览

amazon-web-services - 如何避免硬编码访问密钥和安全密钥值 aws

在我的 js 文件中,我正在访问我的 AWS sns,但主要问题是目前,我正在对我的 IAM 访问和安全密钥进行硬编码......有没有办法通过使用临时密钥或隐藏我的密钥来避免这样做? 我已经发布了一个关于我如何更新下面的配置的片段。

请帮忙。

0 投票
0 回答
401 浏览

aws-lambda - 在 S3 存储桶前面通过 Cloudfront 调用的 AWS Lambda 无法承担 Cognito 用户池的角色以进行身份​​验证

我有一个 AWS Lambda,它在 CloudFront 实例上作为查看器请求运行,该实例限制对 S3 存储桶设置的访问,以用于网站的静态托管。它使用 Cognito 用户池来限制访问并通过AdminInitiateAuth.

使用从记录 CloudFront 事件直接获得的测试数据,lambda 运行良好,但是当通过 CloudFront 的触发器实际调用时,我收到错误:

我已经尝试扩大我的信任关系,并确保 AWS STS 可以在需要时担任该角色。

cloudfront_trigger_s3_auth_http_service角色信任关系:

arcimoto-service-resources-user-pool-auth附加到cloudfront_trigger_s3_auth_http_service允许认知访问的角色的策略

0 投票
1 回答
194 浏览

amazon-web-services - 用于授予对 AWS 资源的访问权限的 Amazon STS 与身份池

我正在尝试在 AWS 用户池中设置不同的用户组,并根据他们所属的组授予他们对 AWS 资源的访问权限我有两个选项。

在用户池中创建两个用户组,并将各自的角色与其关联。我可以使用 STS 担任角色并访问给定的 AWS 资源,例如这样。 https://aws.amazon.com/premiumsupport/knowledge-center/cognito-user-pool-group/

另一种选择是两个使用 Amazon 身份池的同一内部使用 STS。如果我使用身份池,我将获得什么优势,因为 sts 是免费的,并且身份池具有与之相关的价格。

我对解决它的正确方法应该是什么感到困惑?

0 投票
1 回答
66 浏览

amazon-web-services - AWS 从 SSO AD 连接器获取短期临时令牌

我有一个使用 AD 连接器链接到 AWS SSO 的预置 AD。AD 用户在 AWS SSO 中启用了 MFA。

应用程序需要使用用户 ID 检索短期令牌。示例 Active Directory 用户 ID“A”有权关闭 EC2 实例。用户 ID“A”登录自定义应用程序,自定义应用程序检索短期令牌并使用此令牌关闭 EC2 实例。

此应用程序专为不习惯使用 AWS 控制台的业务用户构建,因此是一个非常基本且易于使用的 UI。

我已经阅读了很多 AWS 文档,并且我在网上检查的所有实施都是针对 AWS SSO 和 SAML 与 Azure AD 等联合,但不是在 premp AD 上。

如何在预置 AD SSO 实施中使用 STS?

0 投票
1 回答
3268 浏览

amazon-web-services - 在具有实例配置文件的 AWS EC2 实例上调用 get-caller-identity 时 InvalidClientTokenId

我们遇到了一个问题,我们在一个 CentOS EC2 实例上,该实例通过附加的实例配置文件使用角色。当我们在 SSH 进入后在控制台上时,我们运行 pythonawscli命令行工具来获取我们的身份:

我们得到

调用GetCallerIdentity操作时出错(InvalidClientTokenId):请求中包含的安全令牌无效

aws ec2 describe-instances实例配置文件允许的其他命令,例如work 和。

通过阅读 AWS 文档,get-caller-identity 不需要任何权限,并且deny与实例关联的角色没有明确设置。

我们检查并.aws/credentials没有设置文件和env变量,因此访问应该完全通过 EC2 实例上的元数据服务进行管理。

我们的设置或调用中是否缺少某些awscli可能导致权限失败的内容?

0 投票
1 回答
1779 浏览

amazon-web-services - AWS STS 临时凭证 S3 访问被拒绝 PutObject

我正在关注如何将 AWS IAM 与 STS 一起使用以访问 AWS 资源 - 2nd Watch博客文章,我的理解是 S3 Bucket Policy Principal 请求临时凭证,一种方法是硬编码此用户的 Id 但帖子尝试一种更优雅的方法来评估 STS 委派用户(当它工作时)。

arn:aws:iam::409812999999999999:policy/fts-assume-role

IAM 用户策略

arn:aws:s3:::finding-taylor-swift

s3 存储桶策略

AWS CLI 已按照将临时安全凭证与 AWS CLI 结合使用中的说明进行设置

“当您运行 AWS CLI 命令时,AWS CLI 会按特定顺序查找凭证 — 首先在环境变量中,然后在配置文件中。因此,在您将临时凭证放入环境变量后,AWS CLI 会使用这些凭证默认情况下。(如果您在命令中指定配置文件参数,AWS CLI 会跳过环境变量。相反,AWS CLI 会查看配置文件,这样您可以在需要时覆盖环境变量中的凭证。)

以下示例显示了如何为临时安全凭证设置环境变量,然后调用 AWS CLI 命令。由于 AWS CLI 命令中不包含配置文件参数,因此 AWS CLI 首先在环境变量中查找凭证,因此使用临时凭证。”