

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **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` 필드를 특정 버킷 ARN 또는 이름 패턴으로 제한 \$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 리소스에 대한 여러 API가 나열됩니다.

**참고**  
AWS Controllers for Kubernetes의 기능은 다양한 AWS 리소스에 대해 여러 CRD를 설치합니다.

## 다음 단계
<a name="_next_steps"></a>
+  [ACK 개념](ack-concepts.md) - ACK 개념 이해 및 시작하기
+  [ACK 권한 구성](ack-permissions.md) - 기타 AWS 서비스에 대한 IAM 권한 구성
+  [기능 리소스 작업](working-with-capabilities.md) - ACK 기능 리소스 관리