本页面介绍 Google Cloud 如何管理 GKE on AWS 的 AWS Identity and Access Management (IAM) 权限和角色。
GKE on AWS 使用 AWS API 为 GKE on AWS 组件和工作负载创建资源,例如 EC2 实例、自动扩缩组和负载均衡器。您必须向 Google Cloud 提供 AWS IAM 权限才能创建这些资源。
GKE on AWS 如何访问 AWS API
GKE on AWS 使用 AWS 中的身份联合来管理对 AWS 账号的精细访问权限。当 GKE on AWS 需要为您的集群执行操作时,它会向 AWS 请求短期有效的令牌。GKE Multi-Cloud API 角色使用此令牌向 AWS 进行身份验证。
服务代理
为了向 Google Cloud 授予在 AWS 账号中创建、更新、删除和管理集群的权限,GKE on AWS 会在 Google Cloud 项目中创建一个服务代理。服务代理是一个使用 GKE Multi-Cloud API AWS IAM 角色的 Google 管理的服务账号。您必须为在其中管理 GKE 集群的每个 Google Cloud 项目中的服务代理创建 AWS IAM 角色。服务代理使用电子邮件地址 service-PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com
。如需详细了解 Google Cloud IAM 权限,请参阅 Anthos 多云服务代理。
GKE on AWS 的 AWS IAM 权限
您可以创建使用默认 AWS IAM 角色的角色,或创建符合组织要求的自定义 AWS IAM 政策。
使用默认政策
AWS IAM 政策是一组权限的集合。如需授予创建和管理集群的权限,您必须先为以下角色创建 AWS IAM 政策:
- GKE Multi-Cloud API 服务代理角色
- GKE Multi-Cloud API 使用此 AWS IAM 角色来通过 AWS API 管理资源。此角色由 Google 管理的服务账号(称为服务代理)使用。
- 控制层面 AWS IAM 角色
- 您的集群控制平面使用此角色来控制节点池。
- 节点池 AWS IAM 角色
- 控制层面使用此角色来创建节点池虚拟机。
如需使用建议用于 GKE on AWS 的 AWS IAM 角色来管理集群,请参阅创建 AWS IAM 角色。
创建自定义 IAM 政策
如需进一步限制权限,您可以创建允许 GKE on AWS 的自定义 AWS IAM 政策,而不是使用建议的政策。例如,您可以将权限限制为对具有特定标记的资源或特定 AWS VPC 中的资源的权限
使用标记控制访问权限
使用 AWS 标记,您可以将 AWS IAM 政策限制为仅允许对一组有限的资源执行操作。在条件字段中指定了该标记的任何角色,都将限制为对具有相同标记的资源执行操作。您可以使用此选项来限制管理角色对特定集群或节点池中的资源执行操作。
如需将 AWS IAM 政策限制为仅应用于具有特定标记的资源,请在政策的 Condition
字段中添加该标记的值,然后在创建集群和节点池时传递该标记值。GKE on AWS 在创建资源时应用此标记。
如需详细了解标记,请参阅标记 AWS 资源。如需详细了解如何将标记与 AWS 政策搭配使用,请参阅控制对 AWS 资源的访问权限。
如需详细了解如何使用特定标记创建集群资源,请参阅 gcloud container aws clusters create
和 gcloud container aws node-pools create
参考文档。
如需查看 GKE on AWS 需要对每个政策的使用的特定权限列表,请参阅 AWS IAM 角色列表。