You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止EKS Pod Identity设置的transitive tags传播?

EKS Pod Identity 传递性标签问题的可行解决方案

问题背景

使用EKS Pod Identity附加组件时,会话会自动被标记上transitive标签,带来两个核心问题:

  • 所有被传递的角色必须在信任策略中包含sts:TagSession权限,若角色分属不同组织,可能无法统一配置
  • 自动标签包含集群ARN等敏感信息,这些信息可能不希望通过CloudTrail暴露给角色链下游的账户

已确认以下现状:

  • 切换角色时无法忽略transitive标签
  • 没有STS操作可清除当前会话中的这些标签
  • 传递性会跨账户传播
  • EKS Pod Identity附加组件无配置项控制是否添加带传递性的标签

可行解决方案

1. 中间代理角色隔离标签传递

在Pod角色与目标跨账户角色之间新增一个同账户的中间代理角色:

  • 配置中间角色的信任策略,允许Pod角色执行sts:AssumeRole并包含sts:TagSession权限
  • 中间角色的权限仅允许切换到目标跨账户角色,且在调用sts:AssumeRole时使用--no-session-tags参数(或SDK对应配置),阻止transitive标签传递到下游账户

2. 替换为IAM Roles for Service Accounts (IRSA)

IRSA不会自动添加transitive标签,会话标签可通过Pod注解eks.amazonaws.com/tags自定义,甚至完全不添加额外标签:

  • 仅配置必要的业务标签,避免敏感信息泄露
  • 跨账户角色的信任策略只需允许IRSA角色的sts:AssumeRole,无需额外的sts:TagSession权限(除非主动添加标签)

3. IAM策略条件限制标签传播

若必须使用EKS Pod Identity,可在跨账户角色的信任策略中添加条件,过滤或拒绝敏感标签:

  • 示例策略(拒绝包含集群ARN标签的会话):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {"AWS": "arn:aws:iam::PodAccountID:role/PodRole"},
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/eks:cluster-arn": "*"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::PodAccountID:role/PodRole"},
      "Action": "sts:AssumeRole",
      "Condition": {
        "BoolIfExists": {
          "aws:PrincipalTag/transitive": "false"
        }
      }
    }
  ]
}

注:该方案需要下游账户配合修改信任策略,适合可控的跨账户场景。

4. Sidecar代理处理身份切换

在Pod中部署Sidecar容器专门负责身份切换:

  • Sidecar通过Pod Identity获取临时凭证,调用sts:AssumeRole切换到目标角色时,显式禁用会话标签传递
  • 应用容器从Sidecar获取处理后的凭证,无需直接接触Pod Identity的原始会话

5. 提交AWS功能请求

若以上方案均不满足需求,可通过AWS Support提交功能请求,要求添加EKS Pod Identity的标签配置选项,控制是否生成transitive标签或自定义标签内容。

内容的提问来源于stack exchange,提问作者Artium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:42:38