

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

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# AWS CLI를 사용하여 Argo CD 기능 생성
<a name="argocd-create-cli"></a>

이 주제에서는 AWS CLI를 사용하여 Argo CD 기능을 생성하는 방법을 설명합니다.

## 사전 조건
<a name="_prerequisites"></a>
+  **AWS CLI** – 버전 `2.12.3` 이상. 버전을 확인하려면 `aws --version`을 실행합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 [설치하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)를 참조하세요.
+  **`kubectl`** - Kubernetes 클러스터 작업을 위한 명령줄 도구. 자세한 내용은 [`kubectl` 및 `eksctl` 설정](install-kubectl.md) 섹션을 참조하세요.
+  **구성된 AWS Identity Center** - Argo CD에는 인증을 위해 AWS Identity Center가 필요합니다. 로컬 사용자는 지원되지 않습니다. AWS Identity Center를 설정하지 않은 경우 [Getting started with AWS Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)를 참조하여 Identity Center 인스턴스를 생성하고 [사용자 추가](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) 및 [그룹 추가](https://docs.aws.amazon.com/singlesignon/latest/userguide/addgroups.html)를 통해 Argo CD 액세스를 위한 사용자 및 그룹을 생성합니다.

## 1단계: IAM 기능 역할 생성
<a name="_step_1_create_an_iam_capability_role"></a>

신뢰 정책 파일을 생성합니다.

```
cat > argocd-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 ArgoCDCapabilityRole \
  --assume-role-policy-document file://argocd-trust-policy.json
```

**참고**  
AWS Secrets Manager 또는 AWS CodeConnections와의 선택적 통합을 사용하려는 경우 역할에 권한을 추가해야 합니다. IAM 정책 예제 및 구성 지침은 [AWS Secrets Manager를 사용하여 애플리케이션 보안 암호 관리](integration-secrets-manager.md) 및 [AWS CodeConnections를 사용하여 Git 리포지토리에 연결](integration-codeconnections.md) 섹션을 참조하세요.

## 2단계: Argo CD 기능 생성
<a name="_step_2_create_the_argo_cd_capability"></a>

클러스터에서 Argo CD 기능 리소스를 생성합니다.

먼저 Identity Center 구성에 대한 환경 변수를 설정합니다.

```
# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region)
export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].InstanceArn' --output text)

# Get a user ID for RBAC mapping (replace with your username and region if needed)
export IDC_USER_ID=$(aws identitystore list-users \
  --region [.replaceable]`region` \
  --identity-store-id $(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].IdentityStoreId' --output text) \
  --query 'Users[?UserName==`your-username`].UserId' --output text)

echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN"
echo "IDC_USER_ID=$IDC_USER_ID"
```

Identity Center 통합을 사용하여 기능을 생성합니다. {{region-code}}를 클러스터가 위치한 AWS 리전으로 바꾸고 {{my-cluster}}를 클러스터 이름으로 바꾸며 {{idc-region-code}}를 IAM Identity Center가 구성된 리전 코드로 바꿉니다.

```
aws eks create-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name my-argocd \
  --type ARGOCD \
  --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \
  --delete-propagation-policy RETAIN \
  --configuration '{
    "argoCd": {
      "awsIdc": {
        "idcInstanceArn": "'$IDC_INSTANCE_ARN'",
        "idcRegion": "'[.replaceable]`idc-region-code`'"
      },
      "rbacRoleMappings": [{
        "role": "ADMIN",
        "identities": [{
          "id": "'$IDC_USER_ID'",
          "type": "SSO_USER"
        }]
      }]
    }
  }'
```

명령은 즉시 반환되지만, EKS가 필요한 기능 인프라 및 구성 요소를 생성하므로 기능이 활성 상태가 되려면 다소 시간이 걸립니다. EKS는 생성될 때 클러스터에서 이 기능과 관련된 Kubernetes 사용자 지정 리소스 정의를 설치합니다.

**참고**  
클러스터가 존재하지 않는다는 오류가 발생하거나 권한이 없는 경우 다음을 확인합니다.  
클러스터 이름이 올바른지
AWS CLI가 올바른 리전에 구성되었는지
필요한 IAM 권한이 있음

## 3단계: 기능이 활성 상태인지 확인
<a name="_step_3_verify_the_capability_is_active"></a>

기능이 활성 상태가 될 때까지 기다립니다. {{region-code}}를 클러스터가 있는 AWS 리전으로 바꾸고 {{my-cluster}}를 클러스터 이름으로 바꿉니다.

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name my-argocd \
  --query 'capability.status' \
  --output text
```

상태가 `ACTIVE`로 표시되면 기능이 준비된 것입니다. `ACTIVE` 상태가 되면 다음 단계를 계속하지 마세요.

전체 기능 세부 정보를 볼 수도 있습니다.

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name my-argocd
```

## 4단계: 사용자 지정 리소스를 사용할 수 있는지 확인
<a name="_step_4_verify_custom_resources_are_available"></a>

기능이 활성 상태가 되면 클러스터에서 Argo CD 사용자 지정 리소스를 사용할 수 있는지 확인합니다.

```
kubectl api-resources | grep argoproj.io
```

`Application` 및 `ApplicationSet` 리소스 유형이 나열됩니다.

## 다음 단계
<a name="_next_steps"></a>
+  [Argo CD 작업](working-with-argocd.md) - 리포지토리 구성, 클러스터 등록, 애플리케이션 생성
+  [Argo CD 고려 사항](argocd-considerations.md) - 다중 클러스터 아키텍처 및 고급 구성
+  [기능 리소스 작업](working-with-capabilities.md) - Argo CD 기능 리소스 관리