You need to enable JavaScript to run this app.
导航
IRSA 概述
最近更新时间:2024.08.14 17:37:46首次发布时间:2024.08.14 17:32:25

容器服务(VKE)联合访问控制(IAM)提供 IRSA (IAM Role for Service Account) 机制,支持基于 VKE 实现细粒度 Pod 级别权限隔离的能力。

说明

邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。

背景信息

通常情况下,VKE 集群内的应用,通过如下方法访问火山引擎其他云资源:

  • 通过实例元数据获取实例绑定的 IAM 角色的安全令牌(STS Token),并使用 STS Token 访问云资源 OpenAPI。实例元数据信息,请参见 ECS 实例元数据VCI 实例元数据

    说明

    VKE 集群基于云服务器(ECS)和弹性容器实例(VCI)构建,ECS 实例和 VCI 实例的元数据中包含了实例在火山引擎云平台的基本信息。

  • 直接使用火山引擎子用户或角色申请的长期访问秘钥(Access Key)进行访问。

上述两种访问方式都存在较大安全风险,并且难以在集群内做不同应用之间的权限区分,因此 VKE 提供了 IRSA 方案,帮助用户在集群内实现 Pod 级别隔离的应用关联 IAM 角色功能。

功能介绍

IRSA 是一种安全机制,允许 VKE 集群中的应用通过 Kubernetes Service Accounts (服务账号) 来使用火山引擎 IAM 角色。IRSA 机制将特定的 IAM 角色与服务账号关联,从而使得运行在 VKE 集群中的 Pod 能够通过该服务账号继承 IAM 角色的权限,访问各类云产品资源。

IRSA 功能的工作流程如下:
alt

  1. 用户启动一个使用服务账号令牌投射的 Pod。相关说明,请参见 Kubernetes 文档:为 Pod 配置服务账号
  2. 集群 API Server 为该 Pod 颁发使用 OIDC 身份生产的 Token(即 OIDC Token),kubelet 为该 Pod 挂载 OIDC Token 并定时刷新。
  3. Pod 内程序使用挂载的 OIDC Token 文件访问 STS 服务的 AssumeRoleWithOIDC 接口,获取扮演指定 IAM 角色的临时凭证。
  4. Pod 内程序使用获取到的临时凭证访问火山引擎其他云资源 OpenAPI。

功能优势

IRSA 机制具有如下关键优势:

  • 最小权限原则:通过为每个服务账号分配具体的 IAM 角色,可以精细化控制服务的权限,确保服务只能访问所需的云产品资源,有助于提升业务安全性,遵守最小权限原则。
  • 安全性:IRSA 减少了需要在应用程序代码或容器镜像中硬编码访问凭证的需要,从而降低了潜在的安全风险。
  • 管理简便:通过 Kubernetes 的服务账号来管理对云产品资源的访问权限,可以简化权限管理流程,使得权限管理更加集中和一致。