

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Karpenter 创建用于 HyperPod 自动扩缩的 IAM 角色
<a name="sagemaker-hyperpod-eks-autoscaling-iam"></a>

在以下步骤中，您将创建一个 IAM 角色，该角色允许通过基于 Karpenter 的自动扩展 SageMaker HyperPod 来管理集群中的 Kubernetes 节点。此角色为根据工作负载需求自动 HyperPod 添加和删除群集节点提供了必要的权限。

**打开 IAM 控制台**

1. 登录 AWS 管理控制台 并在 console.aws.amazon.com 上打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

**配置信任策略**

1. 对于**可信实体类型**，选择**自定义信任策略**。

1. 在**自定义信任策略**编辑器中，将默认策略替换为以下内容：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "hyperpod.sagemaker.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 选择**下一步**。

**创建并附加权限策略**

由于 SageMaker HyperPod 需要 AWS 托管策略中没有的特定权限，因此您必须创建自定义策略。

1. 选择**创建策略**。这将打开一个新的浏览器标签页。

1. 选择 **JSON** 选项卡。

1. 将默认策略替换为以下内容：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:BatchAddClusterNodes",
                   "sagemaker:BatchDeleteClusterNodes"
               ],
               "Resource": "arn:aws:sagemaker:*:*:cluster/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:*:*:key/*",
               "Condition": {
                   "StringLike": {
                       "kms:ViaService": "sagemaker.*.amazonaws.com"
                   },
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   },
                   "ForAllValues:StringEquals": {
                       "kms:GrantOperations": [
                           "CreateGrant",
                           "Decrypt",
                           "DescribeKey",
                           "GenerateDataKeyWithoutPlaintext",
                           "ReEncryptTo",
                           "ReEncryptFrom",
                           "RetireGrant"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. 选择**下一步**。

1. 对于**策略名称**，输入 **SageMakerHyperPodKarpenterPolicy**。

1. （可选）对于**描述**，输入策略的描述。

1. 选择**创建策略**。

1. 返回到角色创建选项卡并刷新策略列表。

1. 搜索并选择您**SageMakerHyperPodKarpenterPolicy**刚刚创建的。

1. 选择**下一步**。

**命名并创建角色**

1. 对于**角色名称**，输入 `SageMakerHyperPodKarpenterRole`。

1. （可选）对于**描述**，输入角色的描述。

1. 在**步骤 1：选择可信实体**部分，确认信任策略显示了正确的服务主体。

1. 在**步骤 2：添加权限**部分，确认已附加 `SageMakerHyperPodKarpenterPolicy`。

1. 选择**创建角色**。

**记录角色 ARN**

在成功创建角色后：

1. 在**角色**列表中，选择角色名称 `SageMakerHyperPodKarpenterRole`。

1. 复制**摘要**部分中的**角色 ARN**。创建集群时需要此 ARN。 HyperPod

角色 ARN 遵循以下格式：`arn:aws:iam::ACCOUNT-ID:role/SageMakerHyperPodKarpenterRole`。