IAM 中的角色是什么?
What are roles in IAM?
我很好奇角色在 Task Roles. So as I read from the docs roles are using Temporary Security Credentials to authenticate in AWS and then authorize using it's (role's) permissions and then make some actions with API. Right? But I also read from docs that every principal (let's say my ECS container agent on my EC2 instance or task that is managed by it) must be authenticated 的 ECS 中一般和具体是如何工作的,使用一些 identity。
这是否意味着该角色是 身份 和 主体 可以以某种方式验证进入 AWS 并允许我的任务 API 来电?
如果是这样,那么当临时安全凭证的有限生命周期到期时,我的任务将如何进行 API 调用?他们使用角色,角色使用 TSC,TSC 的生命周期有限 - 任务进行 API 调用的时间有限,对吗?
这里似乎有无限回归,但实际上并没有,因为 EC2 服务本身(不是您的实例 -- AWS 基础设施)是主体。
因为该委托人列在 IAM 角色信任策略中(因此允许它调用 AssumeRole),EC2 可以向 STS 发出初始请求以获取临时实例角色凭证,然后它可用于代码 运行 在实例上,通过 169.254.x.x 无法路由的地址上的内部 HTTP 端点,该地址只能由实例访问。任务凭据使用与实例角色凭据类似的机制,由服务本身引导并使用 HTTP 访问...因此无论哪种情况,信任链中的首要原则都是您不管理的 "hidden" 播放器(并且您不为其管理任何凭据的人,以及实例上未存储任何内容的人)。
您可以通过使用 AWS CloudTrail 记录 IAM 和 STS 事件来观察后台发生的这些事情。
获得的每组临时凭据都有有限的生命周期,但每次获取凭据时,都会提供一组新的凭据,并提供一个新的、更晚的到期时间(或者如果之前的凭据集仍然有效,则返回它还剩下充实的生命)。 SDK 会自动处理此更新,因此任务生命周期可能比凭证生命周期长得多,因为新的临时凭证始终可用。
您的代码所要做的就是请求临时凭据,根据代码本身的实际位置 运行(特定的 container/instance),无需进一步身份验证即可访问临时凭据。
我很好奇角色在 Task Roles. So as I read from the docs roles are using Temporary Security Credentials to authenticate in AWS and then authorize using it's (role's) permissions and then make some actions with API. Right? But I also read from docs that every principal (let's say my ECS container agent on my EC2 instance or task that is managed by it) must be authenticated 的 ECS 中一般和具体是如何工作的,使用一些 identity。
这是否意味着该角色是 身份 和 主体 可以以某种方式验证进入 AWS 并允许我的任务 API 来电?
如果是这样,那么当临时安全凭证的有限生命周期到期时,我的任务将如何进行 API 调用?他们使用角色,角色使用 TSC,TSC 的生命周期有限 - 任务进行 API 调用的时间有限,对吗?
这里似乎有无限回归,但实际上并没有,因为 EC2 服务本身(不是您的实例 -- AWS 基础设施)是主体。
因为该委托人列在 IAM 角色信任策略中(因此允许它调用 AssumeRole),EC2 可以向 STS 发出初始请求以获取临时实例角色凭证,然后它可用于代码 运行 在实例上,通过 169.254.x.x 无法路由的地址上的内部 HTTP 端点,该地址只能由实例访问。任务凭据使用与实例角色凭据类似的机制,由服务本身引导并使用 HTTP 访问...因此无论哪种情况,信任链中的首要原则都是您不管理的 "hidden" 播放器(并且您不为其管理任何凭据的人,以及实例上未存储任何内容的人)。
您可以通过使用 AWS CloudTrail 记录 IAM 和 STS 事件来观察后台发生的这些事情。
获得的每组临时凭据都有有限的生命周期,但每次获取凭据时,都会提供一组新的凭据,并提供一个新的、更晚的到期时间(或者如果之前的凭据集仍然有效,则返回它还剩下充实的生命)。 SDK 会自动处理此更新,因此任务生命周期可能比凭证生命周期长得多,因为新的临时凭证始终可用。
您的代码所要做的就是请求临时凭据,根据代码本身的实际位置 运行(特定的 container/instance),无需进一步身份验证即可访问临时凭据。