

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 准备混合节点的集群访问权限
<a name="hybrid-nodes-cluster-prep"></a>

在将混合节点连接到 Amazon EKS 集群之前，您必须为混合节点 IAM 角色授予加入集群的 Kubernetes 权限。有关如何创建混合节点 IAM 角色的信息，请参阅[准备用于混合节点的凭证](hybrid-nodes-creds.md)。Amazon EKS 支持通过两种方式将 IAM 主体关联到 Kubernetes 基于角色的访问控制（RBAC）、Amazon EKS 访问条目和 `aws-auth` ConfigMap。有关 Amazon EKS 访问权限管理的更多信息，请参阅[向 IAM 用户和角色授予对 Kubernetes API 的访问权限](grant-k8s-access.md)。

按照以下过程将混合节点 IAM 角色与 Kubernetes 权限关联起来。要使用 Amazon EKS 访问条目，集群必须是使用 `API` 或 `API_AND_CONFIG_MAP` 身份验证模式创建的。要使用 `aws-auth` ConfigMap，集群必须是使用 `API_AND_CONFIG_MAP` 身份验证模式创建的。启用混合节点功能的 Amazon EKS 集群不支持仅 `CONFIG_MAP` 身份验证模式。

## 将 Amazon EKS 访问条目用于混合节点 IAM 角色
<a name="_using_amazon_eks_access_entries_for_hybrid_nodes_iam_role"></a>

一种名为 HYBRID\$1LINUX 的混合节点 Amazon EKS 访问条目类型可以与 IAM 角色一起使用。使用此访问条目类型，用户名将被自动设置为 system:node:\$1\$1SessionName\$1\$1。有关创建访问条目的更多信息，请参阅[创建访问条目](creating-access-entries.md)。

### Amazon CLI
<a name="shared_aws_cli"></a>

1. 您必须已在设备上安装和配置最新版本的 Amazon CLI。要查看当前版本，请使用 `aws --version`。yum、apt-get 或适用于 macOS 的 Homebrew 等软件包管理器通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本，请参阅《Amazon 命令行界面用户指南》中的“安装”和“使用 aws configure 快速配置”。

1. 使用以下命令创建访问条目。请将 CLUSTER\$1NAME 替换为集群的名称，将 HYBRID\$1NODES\$1ROLE\$1ARN 替换为您在[准备用于混合节点的凭证](hybrid-nodes-creds.md)步骤中创建的角色的 ARN。

   ```
   aws eks create-access-entry --cluster-name CLUSTER_NAME \
       --principal-arn HYBRID_NODES_ROLE_ARN \
       --type HYBRID_LINUX
   ```

### Amazon Web Services 管理控制台
<a name="hybrid-nodes-cluster-prep-console"></a>

1. 打开 [Amazon EKS 控制台](https://console.amazonaws.cn/eks/home#/clusters)。

1. 选择已启用混合节点功能的集群的名称。

1. 选择**访问**选项卡。

1. 选择**创建访问条目**。

1. 对于 **IAM 主体**，请选择您在[准备用于混合节点的凭证](hybrid-nodes-creds.md)步骤中创建的混合节点 IAM 角色。

1. 对于**类型**，选择 **Hybrid Linux**。

1. （可选）对于**标签**，为访问条目分配标签。例如，为了更轻松地查找所有具有相同标签的资源。

1. 选择**跳过以检查并创建**。不能向 Hybrid Linux 访问条目添加策略或更改其访问权限范围。

1. 查看访问条目的配置。如果有任何内容看起来不正确，请选择**上一步**以返回步骤并更正错误。如果配置正确，请选择**创建**。

## 将 aws-auth ConfigMap 用于混合节点 IAM 角色
<a name="_using_aws_auth_configmap_for_hybrid_nodes_iam_role"></a>

在以下步骤中，您将使用您在[准备用于混合节点的凭证](hybrid-nodes-creds.md)步骤中创建的混合节点 IAM 角色的 ARN 来创建或更新 `aws-auth` ConfigMap。

1. 检查您的集群是否已有现有的 `aws-auth` ConfigMap。请注意如果您使用特定的 `kubeconfig` 文件，请使用 `--kubeconfig` 标志。

   ```
   kubectl describe configmap -n kube-system aws-auth
   ```

1. 如果您看到有 `aws-auth` ConfigMap，则请根据需要对其进行更新。

   1. 打开该 ConfigMap 进行编辑。

      ```
      kubectl edit -n kube-system configmap/aws-auth
      ```

   1. 根据需要添加新的 `mapRoles` 条目。将 `HYBRID_NODES_ROLE_ARN` 替换为混合节点 IAM 角色的 ARN。注意，`{{SessionName}}` 是保存在 ConfigMap 中的正确模板格式。请勿将其替换为其他值。

      ```
      data:
        mapRoles: |
        - groups:
          - system:bootstrappers
          - system:nodes
          rolearn: HYBRID_NODES_ROLE_ARN
          username: system:node:{{SessionName}}
      ```

   1. 保存文件并退出文本编辑器。

1. 如果集群没有现有的 `aws-auth` ConfigMap，请使用以下命令创建一个。将 `HYBRID_NODES_ROLE_ARN` 替换为混合节点 IAM 角色的 ARN。注意，`{{SessionName}}` 是保存在 ConfigMap 中的正确模板格式。请勿将其替换为其他值。

   ```
   kubectl apply -f=/dev/stdin <<-EOF
   apiVersion: v1
   kind: ConfigMap
   metadata:
     name: aws-auth
     namespace: kube-system
   data:
     mapRoles: |
     - groups:
       - system:bootstrappers
       - system:nodes
       rolearn: HYBRID_NODES_ROLE_ARN
       username: system:node:{{SessionName}}
   EOF
   ```