Appearance
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 中:
- 订阅用户到 Kiro。
- 配置 Kiro 和 IAM Identity Center / AWS Organizations 的集成。
- 管理 subscription settings。
- 创建和配置 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:
AWSServiceRoleForUserSubscriptionsAWSServiceRoleForAmazonQDeveloper
AWSServiceRoleForUserSubscriptions
Kiro 用这个 role 访问 IAM Identity Center 资源,并自动更新 subscriptions。
信任服务:
text
user-subscriptions.amazonaws.com它允许 Kiro 执行与 identity store、organizations 和 SSO 相关的只读或订阅维护操作,例如:
identitystore:DescribeGroupidentitystore:DescribeUseridentitystore:IsMemberInGroupsidentitystore:ListGroupMembershipsorganizations:DescribeOrganizationsso:DescribeApplicationsso:DescribeInstancesso: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 不允许编辑
AWSServiceRoleForUserSubscriptions或AWSServiceRoleForAmazonQDeveloper的权限定义。 - 创建后不能修改 role name,因为其他实体可能引用它。
- 可以在 IAM 中编辑 role description。
- 删除 service-linked role 前必须清理依赖资源。
支持 Region
Kiro service-linked roles 支持的 AWS Regions 包括:
| Region name | Region 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 中编辑描述,删除前也必须先清理相关资源。