Skip to content

Kiro CLI Enterprise IAM 说明管理员访问 Kiro console、配置订阅和连接 IAM Identity Center 所需的 AWS IAM 权限。Kiro 还会自动创建 service-linked roles,用于更新订阅、访问 IAM Identity Center、计算账单和写入 CloudWatch 指标。

Kiro CLI Enterprise IAM:管理员权限和 Service-linked Roles

企业版 Kiro 通过 AWS Console 管理订阅、身份集成和治理设置。因此,管理员需要 AWS IAM 权限才能访问 Kiro console 并执行订阅相关任务。

这篇说明 Kiro 和 AWS IAM 的关系,重点是 identity-based policies 和 service-linked roles。

为什么需要 IAM 权限

AWS IAM 用来控制谁可以访问 AWS 资源、执行哪些操作、在哪些条件下执行。

要配置 Kiro subscriptions,你需要给管理员身份附加 identity-based policy。这个身份可以是:

  • IAM user。
  • IAM group 中的用户。
  • IAM role。

管理员需要权限访问 Kiro console、配置 IAM Identity Center、订阅用户和管理相关设置。

Identity-based policies

Identity-based policies 是 JSON 权限策略,可以附加到 IAM identity 上。

Kiro 管理员需要的权限包括:

  • IAM Identity Center / SSO 相关操作。
  • identitystore 用户查询。
  • user-subscriptions 创建、更新和删除订阅 claim。
  • AWS Organizations 相关读取和服务访问配置。
  • KMS key 相关操作。
  • CodeGuru Security、Q Developer、CloudWatch 等 Kiro 关联服务权限。
  • 创建 service-linked role。

官方示例策略较长,核心目的不是让普通开发者使用,而是让管理员能在 Kiro console 中:

  1. 订阅用户到 Kiro。
  2. 配置 Kiro 和 IAM Identity Center / AWS Organizations 的集成。
  3. 管理 subscription settings。
  4. 创建和配置 customer managed KMS keys。

实际落地时,建议由云平台或安全团队审查策略,并按最小权限原则分配。

Service-linked roles 是什么

Service-linked role 是直接关联到某个 AWS service 的特殊 IAM role。它由 AWS 预定义,包含该 service 代表你调用其他 AWS services 所需的权限。

Kiro 使用 service-linked roles 来降低手动配置成本。创建 Kiro profile 或订阅时,相关角色会自动创建。

特点:

  • 角色与 Kiro 直接关联。
  • 只有指定 AWS service 可以 assume 这些 roles。
  • 权限策略不能附加到其他 IAM entity。
  • 删除 role 前必须先清理相关资源,避免破坏 Kiro 功能。

Kiro 创建的 service-linked roles

订阅 Kiro Enterprise 时会创建两个 service-linked roles:

  • AWSServiceRoleForUserSubscriptions
  • AWSServiceRoleForAmazonQDeveloper

AWSServiceRoleForUserSubscriptions

Kiro 用这个 role 访问 IAM Identity Center 资源,并自动更新 subscriptions。

信任服务:

text
user-subscriptions.amazonaws.com

它允许 Kiro 执行与 identity store、organizations 和 SSO 相关的只读或订阅维护操作,例如:

  • identitystore:DescribeGroup
  • identitystore:DescribeUser
  • identitystore:IsMemberInGroups
  • identitystore:ListGroupMemberships
  • organizations:DescribeOrganization
  • sso:DescribeApplication
  • sso:DescribeInstance
  • sso:ListInstances

AWSServiceRoleForAmazonQDeveloper

Kiro 用这个 role 访问账号数据以计算 billing,创建和访问 Amazon CodeGuru 安全报告,并向 CloudWatch 写入数据。

信任服务:

text
q.amazonaws.com

主要权限包括向 AWS/Q CloudWatch namespace 写入指标。

管理 service-linked roles

通常不需要手动创建 service-linked role。你在 AWS Management Console 中创建 Kiro profile 时,Kiro 会自动创建。

如果删除后需要恢复,可以通过同样流程重新创建。也可以用 IAM console 或 AWS CLI 创建与 q.amazonaws.com 相关的 service-linked role。

注意:

  • Kiro 不允许编辑 AWSServiceRoleForUserSubscriptionsAWSServiceRoleForAmazonQDeveloper 的权限定义。
  • 创建后不能修改 role name,因为其他实体可能引用它。
  • 可以在 IAM 中编辑 role description。
  • 删除 service-linked role 前必须清理依赖资源。

支持 Region

Kiro service-linked roles 支持的 AWS Regions 包括:

Region nameRegion identity
US East (N. Virginia)us-east-1
Europe (Frankfurt)eu-central-1

管理建议

  • 不要用 root user 长期管理 Kiro,创建受控管理员角色更合适。
  • 给 Kiro 管理员授予必要权限,但避免扩大到无关 AWS services。
  • 删除 service-linked roles 前确认 Kiro profile 和订阅已不再使用。
  • 对 KMS、Organizations、IAM Identity Center 权限做安全审查。

常见问题

Q: Kiro Enterprise 为什么需要 AWS IAM 权限?

A: 因为 Kiro 企业订阅、用户管理和治理设置都在 AWS Console 中完成,需要 IAM 控制管理员可以执行哪些操作。

Q: Kiro 的 service-linked roles 需要手动创建吗?

A: 通常不需要。创建 Kiro profile 或订阅时会自动创建。

Q: 可以修改 Kiro service-linked role 权限吗?

A: 不可以修改权限策略。你只能在 IAM 中编辑描述,删除前也必须先清理相关资源。