问题标签 [assume-role]

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 回答
604 浏览

amazon-web-services - Lambda 可以承担具有认知用户 ID 条件的 IAM 角色吗?

我们有一个发电机表,用于我们应用程序的安全敏感部分,具有非常严格的读取访问限制(在此处尽可能严格)。理想情况下,我们希望将对该表的访问限制为仅具有匹配 cognito-userId 前导键的行(遵循这种方法:https ://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_rows.html )。不幸的是,我们的要求是 lambda 函数需要代表用户读取值,以便随后处理并将值发送给用户(例如通过邮件)。

我们当前的设置如下所示:我们使用该主键 IAM 条件创建了 IAM 规则,并将其附加到一个用户组,该用户组包括将访问该表的所有用户。到目前为止一切顺利,lambda 函数从上下文对象中获取规则并承担该角色(通过 sts:assumeRole,就像这样,尽管它们都在同一个帐户中:https ://aws.amazon.com/premiumsupport/ Knowledge-center/cognito-user-pool-group/ , https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/ ) lambda 和假定的角色都有必要的政策,所以这也可以按预期工作。使用静态值进行测试,如下所示:

还要确认正在传递所有必需的凭据,正在承担角色,直到这里一切正常。

${cognito-identity.amazonaws.com:sub}不幸的是,当实际用作前导键标识符时,无论有无 aws-region 前缀,它都会停止工作。因此我的问题是,以前有人遇到过这种情况吗?什么时候用这个变量代替 IAM 规则?它是在传递给 lambda 函数之前被解析(在这种情况下,我们希望填充该值)还是在 lambda 访问 dynamo 时被替换(在这种情况下,它没有被解析,因为 lambda 而不是 cognito-user担任角色)?有没有办法减轻这种情况?任何帮助将不胜感激

0 投票
1 回答
159 浏览

aws-lambda - 假设角色不返回并且 lambda 超时(关键字:aws boto3 sts lambda python3.6)

我正在尝试创建一个 python3.6 AWS lambda 函数,该函数在另一个账户中担任角色以访问另一个账户中的 S3 存储桶。我正在本地测试这个精确的 lambda 函数(设置了 aws 配置文件),以测试我的跨账户角色和策略是否已设置并且在本地是否完美运行。但是,当从 lambda 中运行相同的代码时,看起来像假设角色没有返回并且 lambda 超时。希望有任何提示如何解决这个问题或任何可能是问题的想法?

我的代码:

“==== after_assume_role”没有被打印出来,错误处理程序(即except (Exception) as error)没有被调用并且 lambda 超时。

任何想法将不胜感激!

谢谢你,康斯坦丁

0 投票
1 回答
343 浏览

amazon-web-services - s3 存储桶上的 aws:RequestTag 不起作用(在担任角色时)

我对我假设的 IAM 角色有以下政策:

执行承担角色时,我正在传递标签:

但是当我尝试读取文件夹“a”下的对象时,访问被拒绝:

我已经用“principalTag”替换了该策略,同时为角色添加了一个标签,并且它有效 - 我做错了什么?

=====

我尝试的另一件事是使用该 ID 标记 s3 对象,并使用以下策略:

不工作

0 投票
2 回答
1120 浏览

python - aws api:假设角色访问被拒绝

当我使用 AWS 时,我会切换角色以在控制台中查看客户端数据,并且工作正常。

角色切换示例

但是,我正在尝试使用boto3python 中的包来执行此操作并遇到“拒绝访问”错误。我无权在控制台中添加 IAM 角色或编辑信任策略,但我觉得我不需要这样做?

下面的示例代码和错误:

我的帐户的初始身份验证工作正常

尝试担任角色失败

0 投票
2 回答
1285 浏览

amazon-web-services - 无法授予对 ECS 任务角色的跨账户访问权限

背景:

我正在尝试为账户 B 中的 ECS 任务授予访问权限,以从账户 A 中的 DynamoDB 表中提取数据。

理论上,这可以通过以下方式正常工作:(1) 在账户 A 中创建一个允许账户 B 担任的角色(使用配对的外部 ID),然后 (2) 授予该角色对所需 DynamoDB 表的访问权限。

问题:

当 ECS 中运行的进程承担 ECS 角色(账户 B)时,它会创建该角色的唯一实例,该实例显然不能成为账户中主体语句的目标。如果我尝试授予对底层角色的访问权限,那显然没有影响。

我可以强制 ECS 使用我可以作为委托人授予的原始角色,而不是一个显然不能承担其他角色的临时集吗?

我能想到的唯一解决方法是使用编程 API 凭证创建一个新用户,将这些凭证移交给 ECS 任务,然后让 ECS 任务用属于 AWS 密钥对的角色覆盖它自己的角色。不过,据我所知,这绝对是一种反模式,它会带来这些凭据被泄露的风险。

有没有办法在不求助于手动创建的用户和手动传递 AWS 凭据的情况下做到这一点?

附加信息:

  • 我可以授予此委托人arn:aws:iam::AcctB****:role/myrole,但 ECS 任务在运行时使用此委托人:arn:aws:sts::AcctB****:assumed-role/myrole/45716b8c-40c8-4ca7-b346-1ff4ee94eb53.
  • 错误信息是:An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::AcctB****:assumed-role/myrole/45716b8c-40c8-4ca7-b346-1ff4ee94eb53 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::AcctA****:role/ExternalRole
0 投票
1 回答
395 浏览

apache-spark - 具有多个 s3 角色的 Spark 会话

我有一个 Spark 作业,它从 s3 存储桶中读取文件,对其进行格式化,然后将它们放在另一个 s3 存储桶中。我正在使用 (SparkSession) spark.read.csv 和 spark.write.csv 功能来完成此任务

当我读取文件时,我需要使用一个 IAM 角色(承担角色),而当我编写文件时,需要删除承担的角色并恢复为我的默认角色。

这可能在同一个火花会话中吗?如果没有,还有其他方法可以做到这一点吗?

任何和所有的帮助表示赞赏!

0 投票
1 回答
492 浏览

amazon-web-services - 使用 aws cli 创建 iam-role 时出现“Invalid json”错误

尝试使用 aws cli 创建新角色时出现错误。

这是错误消息。

为了创建一个角色,我运行以下命令。

并且 policy.json 是

0 投票
1 回答
112 浏览

amazon-web-services - lambda 承担角色空结果

我正在尝试使用账户 A 中的 Lambda 从账户 B 获取 EC2 实例。不确定我缺少什么。

账户 A:Lambda 代码正在运行。账户 B:EC2 实例正在运行。下面的 Assume Role 打印访问密钥和会话令牌 ID,但不返回任何结果。

账户 B 中的 IAM 角色附加了 AmazonEC2ReadOnlyAccess 策略,并且信任关系具有 arn:aws:iam::ACCOUNT_A:role/role-name_ACCOUNT_A

这是代码:

结果:

结果:

功能日志:

谢谢。

0 投票
1 回答
36 浏览

amazon-web-services - 如何使无法访问互联网的EC2实例访问同一帐户中的资源?

我搜索的解决方案是Using credentials for Amazon EC2 instance metadata。我在公共子网中使用了一个 EC2 实例,它成功了。

但是我的 EC2 实例位于私有子网中,无法访问 Internet。通过对 EC2 使用 IAM 服务角色,我的账户无法访问同一账户中的资源。我不知道是什么问题以及如何解决它。

提前致谢!

0 投票
0 回答
103 浏览

amazon-web-services - Aws cli - 角色链接 - 使用主账户中的主角色在其他账户中担任次要角色

我需要在主要帐户的辅助帐户中担任临时角色。对于主要帐户,我已经有一个角色,该角色具有辅助角色中临时角色的承担角色策略。但是当我执行命令时

我收到此错误

我做错了什么?