AWS 中的“承担”角色到底是什么?

2023-12-28

Question

在 AWS 中“担任”角色到底意味着什么?哪里提供了明确的定义?

背景

承担一个角色经常使用并试图理解其定义及其实际含义。

我想当委托人(IAM 用户、在 EC2 实例中运行的应用程序等调用操作来访问 AWS 资源)需要调用操作来访问 AWS 资源时:

  1. AWS(API?或AWS中的某些授权运行时?)标识可以授予委托人的角色。

    例如如果指定 EC2 用户执行假设角色 API 调用并运行访问附加 IAM 配置文件的 EC2 实例中的 AWS 资源的应用程序,则:

    • EC2 IAM 配置文件中的所有 IAM 角色
    • 假设角色调用中请求的 IAM 角色和策略
    • EC2 用户被授予的 IAM 角色

  2. AWS 从具有允许原则对资源执行操作的策略(操作、资源)的角色中查找角色。

  3. AWS 将原则的角色切换为已识别的角色。

当步骤 3 发生时,就说“校长已承担该角色”。它是否正确?

Research

使用 IAM 角色 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html

在 IAM 用户、应用程序或服务可以使用您创建的角色之前,您必须授予切换到该角色的权限。您可以使用附加到 IAM 用户组之一或用户本身的任何策略来授予必要的权限。

  • 承担一个角色 https://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html
  • 承担角色 https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
  • 使用 IAM 角色 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
  • 使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

Update

  • 承担角色 https://blog.awsfundamentals.com/aws-iam-roles-terms-concepts-and-examples#heading-assuming-roles

在 AWS 中担任 IAM 角色涉及权限的临时转移。通过承担角色,实体可以执行任务并使用具有授权权限的资源,而无需对其自身权限进行任何永久更改。

一旦代入角色的会话令牌过期,该实体的附加权限将被撤销。


承担角色意味着要求安全令牌服务 (STS) 为您提供一组特定于您要承担的角色的临时凭证(角色凭证)。 (具体来说,是一个具有该角色的新“会话”。)

您可以选择在此请求中包含一个策略,该策略将用于将临时凭证的权限限制为角色策略所允许的权限的子集。

然后,您可以使用这些凭据提出进一步的请求。这些凭证看起来类似于具有访问密钥 ID 和密钥的 IAM 用户凭证,但访问密钥以ASIA代替AKIA还有第三个元素,称为安全令牌,它必须包含在使用临时凭据签名的请求中。

当您使用这些临时凭据发出请求时,您将拥有与该角色关联的权限,而不是您自己的权限(如果您有的话),因为您已采用新身份。 CloudTrail 可用于将角色凭证追溯到担任该角色的用户,但除此之外,服务不知道谁在使用该凭证。

tl;dr:承担角色意味着获取一组与该角色相关联的临时凭证,而不是与承担该角色的实体相关联。

AWS(API?或AWS中的某些授权运行时?)标识可以授予委托人的角色。

不需要。您可以指定您想要担任的角色。

当“您”在 EC2 实例上运行代码并且该实例具有实例角色时,EC2 基础设施实际上代表该实例调用假设角色,您可以从实例元数据服务 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-categories。这些凭证只能从实例内部访问,但不会存储在实例上。

运行 Lambda 函数时,Lambda 基础设施会联系 STS 并将您的临时凭证放入环境变量 https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html。同样,这些凭证可供函数访问,而无需存储在函数内部。

在任何一种情况下,您都可以使用这些凭据调用假设角色并假设不同的角色,但这在大多数环境中不是必需的。

例如如果指定 EC2 用户执行假设角色 API 调用并运行访问附加 IAM 配置文件的 EC2 实例中的 AWS 资源的应用程序,则:

AWS不知道EC2users。实例上运行的所有内容都可以访问实例角色。

EC2 IAM 配置文件中的所有 IAM 角色

一个实例配置文件只能包含一个角色 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html.

假设角色调用中请求的 IAM 角色和策略

您请求只担任一个角色。您不需要请求策略 - 仅当您希望临时凭证具有fewer比角色凭据允许的权限。如果您需要在不受信任的地方运行代码(例如浏览器或应用程序中的代码)以便能够使用凭据签署请求,那么您可能会这样做。

AWS 从具有允许原则对资源执行操作的策略(操作、资源)的角色中查找角色。

不需要。如上所述,当您调用假设角色时,您会要求一个特定的角色。

AWS 将原则的角色切换为已识别的角色。

No. You使用提供的临时凭据进行切换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS 中的“承担”角色到底是什么? 的相关文章

随机推荐

  • 带参数的单例

    我需要用一些参数实例化一个单例类 我现在的做法是 class SingletonExample private SingletonExample mInstance other members private SingletonExampl
  • Sequel Pro 在 Docker 中使用 Mysql

    我用 docker compose 构建了 2 个 docker 容器 我在 Mac 上使用 Docker 没有 boot2docker version 2 services drupal web image drupal latest p
  • Outlook Web 应用程序的任务窗格插件

    通过命令加载项 任务窗格将出现在 Outlook 桌面应用程序的右侧 同样 是否可以让任务窗格显示在 Outlook Web 应用程序的右侧 提前致谢 跟进这个 插件命令 https blogs msdn microsoft com exc
  • 将数组颠倒过来?

    我不是在谈论array flip 我想反转一个没有数字 字母基础的数组 只是倒挂 Example array music television hollywood Will be array hollywood television mus
  • 为 Azure 警报配置电子邮件模板

    有没有办法 我可以为 Azure 警报配置电子邮件模板 我已为指标创建了电子邮件警报 并且需要在指标值超过阈值时发送自定义电子邮件 无法自定义 Azure 警报的电子邮件模板 作为解决方法 你可以在 Azure 警报上配置 Webhook
  • Android如何以编程方式获取使用whats app应用程序的联系人列表

    我在此应用程序中使用小型 Android 应用程序 我尝试获取使用 Whats App 应用程序的联系人 并在联系人更新他 她的个人资料图片和状态时 从我的应用程序中提醒我选择的 Whats App 联系人 您可以查询内容光标以查看联系人具
  • 如何使用相同的模型对象初始化 JavaFX 控制器?

    Scenario 我正在创建一个 GUI 其中多个视图引用同一模型对象 我习惯什么 在 Swing 中 如果我希望所有视图都引用同一模型 我会将模型传递到构造函数中 我目前在做什么 在 JavaFX 中 在加载每个视图 控制器后 我通过在视
  • iOS 模拟器:如何在 Mac 笔记本电脑上进行 2 指单击?

    在iOS模拟器中 如何在mac笔记本电脑上模拟2指单击 按住 Option alt 键的同时单击
  • 更新 mongoengine 中的嵌入文档列表

    我正在努力解决 mongoengine 语法 我有以下型号 class Post EmbeddedDocument uid StringField required True text StringField required True w
  • 如何将ImageSource转换为Byte数组?

    我使用 LeadTools 进行扫描 我想将扫描图像转换为字节 void twainSession AcquirePage object sender TwainAcquirePageEventArgs e ScanImage e Imag
  • git 告诉我我的文件已更改,但我看不到任何区别

    我刚刚安装了最新的 Git 1 9 5 突然它告诉我我的工作树不干净 更改未暂存 但我在任何 diff 工具中都看不到任何文件中的任何更改 我尝试了内置的 Tortoise 和 Visual Studio 当我运行 git status 时
  • 带 getter 的 Kotlin 属性。我可以不指定初始值吗?

    我想创建一个单例类 但不幸的是 Android 几乎任何东西都需要 Context 所以我需要它来创建一个实例 所以我只是假设用户调用init 然后返回实例 如下所示 如果 instance为null 会抛出异常 所以get方法不能返回 n
  • iOS Swift FIRebase:将数据移动到另一个 firebase ref

    我有一个简单的购物清单应用程序 由 firebase 支持 同步 并且由多个用户添加项目 我已经为 GroceryItem 和 Users 创建了数据结构 我的应用程序的一个功能是 您可以单击单元格 它会在项目旁边放置一个复选标记 并将 已
  • Android 设备对压力敏感度的支持程度如何?

    我想编写一个应用程序 对用户手指施加的压力做出反应 具体来说 我想用它来改变所绘制线条的粗细 我很高兴能够对手指触摸屏幕的表面积做出反应 MotionEvent getSize 和 MotionEvent getPressure 函数看起来
  • 实现 C++ 模板,用于生成给定范围的索引序列

    所以 C 14提供了structmake index sequence
  • 将 100 与 BigDecimal 相乘时哪种方法更好?

    这里我在使用Java BigDecimal时遇到一个问题 当我想为 BigDecimal 对象乘以 100 时 哪种方法会更好 10 乘以 2 次 向右移动点 2 按十次幂缩放 2 还有其他办法吗 如果有请告诉我 顺便说一句 它将用于商业计
  • 在代码中设置 Far Future Expires 标头 - ASP.NET

    有没有一种方法可以使用 ASP NET 在代码中以编程方式设置 Expires 标头 具体来说 我需要在整个文件夹和所有子文件夹上设置它 并且该文件夹仅包含静态文件 JavaScript CSS 图像等 而不包含aspx文件 因此我不能只向
  • Java Date toString 包含时区...为什么?

    我今天用 VB6 编写了一些代码 它可以获取自 1970 年 1 月 1 日以来的毫秒数 这样我就可以将值发送到 java 应用程序 该应用程序将解析该值 例如new Date Long parse milliseconds 据我所知 日期
  • Ng5 Karma Jasmine 测试渲染组件而不是结果页面

    假设我有一个非常简单的 创建 单元测试 这样ng cli为您生成 describe MyComponent gt let component MyComponent let fixture ComponentFixture
  • AWS 中的“承担”角色到底是什么?

    Question 在 AWS 中 担任 角色到底意味着什么 哪里提供了明确的定义 背景 承担一个角色经常使用并试图理解其定义及其实际含义 我想当委托人 IAM 用户 在 EC2 实例中运行的应用程序等调用操作来访问 AWS 资源 需要调用操