

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 eksctl 建立 ACK 功能
<a name="ack-create-eksctl"></a>

本主題說明如何使用 eksctl 建立 AWS Controllers for Kubernetes (ACK) 功能。

**注意**  
下列步驟需要 eksctl 版本 `0.220.0` 或更新版本。若要檢查您的版本，請執行 `eksctl version`。

## 步驟 1：建立 IAM 功能角色
<a name="_step_1_create_an_iam_capability_role"></a>

建立信任政策檔案：

```
cat > ack-trust-policy.json << 'EOF'
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "capabilities.eks.amazonaws.com"
      },
      "Action": [
        "sts:AssumeRole",
        "sts:TagSession"
      ]
    }
  ]
}
EOF
```

建立 IAM 角色：

```
aws iam create-role \
  --role-name ACKCapabilityRole \
  --assume-role-policy-document file://ack-trust-policy.json
```

將 `AdministratorAccess`受管政策連接至角色：

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
```

**重要**  
建議`AdministratorAccess`的政策授予廣泛的許可，旨在簡化入門。對於生產用途，請以自訂政策取代此政策，該政策僅授予您計劃使用 ACK 管理之特定 AWS 服務所需的許可。如需建立最低權限政策的指引，請參閱 [設定 ACK 許可](ack-permissions.md)和 [EKS 功能的安全考量](capabilities-security.md)。

**重要**  
此政策使用 授予 S3 儲存貯體管理的許可`"Resource": "*"`，允許對所有 S3 儲存貯體執行操作。  
對於生產用途：\$1 將 `Resource` 欄位限制為特定儲存貯體 ARNs或名稱模式 \$1 使用 IAM 條件索引鍵來限制資源標籤的存取 \$1 僅授予使用案例所需的最低許可  
如需其他服務 AWS ，請參閱 [設定 ACK 許可](ack-permissions.md)。

將政策連接到角色：

```
aws iam attach-role-policy \
  --role-name ACKCapabilityRole \
  --policy-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/ACKS3Policy
```

## 步驟 2：建立 ACK 功能
<a name="_step_2_create_the_ack_capability"></a>

使用 eksctl 建立 ACK 功能。將 *region-code* 取代為您的叢集所在的 AWS 區域，並將 *my-cluster* 取代為您的叢集名稱。

```
eksctl create capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack \
  --type ACK \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \
  --ack-service-controllers s3
```

**注意**  
`--ack-service-controllers` 旗標為選用。如果省略，ACK 會啟用所有可用的控制器。為了獲得更好的效能和安全性，請考慮僅啟用您需要的控制器。您可以指定多個控制器： `--ack-service-controllers s3,rds,dynamodb`

命令會立即傳回，但 功能需要一些時間才會變成作用中。

## 步驟 3：確認功能處於作用中狀態
<a name="_step_3_verify_the_capability_is_active"></a>

檢查功能狀態：

```
eksctl get capability \
  --cluster [.replaceable]`my-cluster` \
  --region [.replaceable]`region-code` \
  --name ack
```

當狀態顯示 時，此功能已就緒`ACTIVE`。

## 步驟 4：確認可用的自訂資源
<a name="_step_4_verify_custom_resources_are_available"></a>

功能處於作用中狀態後，請確認叢集中是否有可用的 ACK 自訂資源：

```
kubectl api-resources | grep services.k8s.aws
```

您應該會看到一些針對 AWS 資源列出的 APIs。

**注意**  
適用於 Kubernetes 的 AWS 控制器功能將為各種 AWS 資源安裝多個 CRDs。

## 後續步驟
<a name="_next_steps"></a>
+  [ACK 概念](ack-concepts.md) - 了解 ACK 概念並開始使用
+  [設定 ACK 許可](ack-permissions.md) - 設定其他服務的 IAM 許可 AWS 
+  [使用 功能資源](working-with-capabilities.md) - 管理您的 ACK 功能資源