

• AWS Systems Manager CloudWatch 대시보드는 2026년 4월 30일 이후에는 더 이상 사용할 수 없습니다. 고객은 Amazon CloudWatch 콘솔을 계속 사용하여 현재와 마찬가지로 Amazon CloudWatch 대시보드를 보고, 생성하고, 관리할 수 있습니다. 자세한 내용은 [Amazon CloudWatch 대시보드 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)를 참조하세요.

# AWS Secrets and Configuration Provider 코드 예제
<a name="ascp-examples"></a>

## ASCP 인증 및 액세스 제어 예제
<a name="ascp-auth-access-examples"></a>

### 예: Amazon EKS Pod Identity 서비스(pods.eks.amazonaws.com)가 역할을 수임하고 세션에 태그를 지정하도록 허용하는 IAM 정책:
<a name="ascp-auth-access-example-1"></a>

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

****  

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

------

## SecretProviderClass
<a name="ascp-examples-secretproviderclass"></a>

YAML을 사용하여 ASCP를 사용하는 Amazon EKS에 탑재할 파라미터를 설명합니다. 예시는 [SecretProviderClass 사용](#ascp-scenarios-secretproviderclass) 섹션을 참조하세요.

### SecretProviderClass YAML 구조
<a name="ascp-examples-secretproviderclass-1"></a>

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
   name: name
spec:
  provider: aws
  parameters:
    region:
    failoverRegion:
    pathTranslation:
    usePodIdentity:
    preferredAddressType:
    objects:
```

파라미터 필드에는 탑재 요청의 세부 정보 포함:

**리전**  
(선택 사항) 파라미터의 AWS 리전입니다. 이 필드를 사용하지 않는 경우 ASCP는 노드의 주석에서 리전을 조회합니다. 이 조회는 탑재 요청에 오버헤드를 추가하므로 많은 수의 포드를 사용하는 클러스터에 리전을 제공하는 것이 좋습니다.  
또한 `failoverRegion`을 지정하는 경우 ASCP는 두 리전 모두에서 보안 암호 검색을 시도합니다. 두 리전 중 하나가 예를 들어 인증 문제에 대해 `4xx` 오류를 반환하는 경우 ASCP는 어느 파라미터도 탑재하지 않습니다. `region```에서 파라미터가 성공적으로 검색되면 ASCP는 해당 파라미터 값을 탑재합니다. `region`에서는 파라미터가 성공적으로 검색되지 않고 `failoverRegion`에서 성공적으로 검색되는 경우 ASCP는 해당 파라미터 값을 탑재합니다.

**`failoverRegion`**  
(선택 사항) 이 필드를 포함하는 경우 ASCP는 `region` 및 이 필드에 정의된 리전에서 파라미터를 검색하려고 시도합니다. 두 리전 중 하나가 예를 들어 인증 문제에 대해 `4xx` 오류를 반환하는 경우 ASCP는 어느 파라미터도 탑재하지 않습니다. `region`에서 파라미터가 성공적으로 검색되면 ASCP는 해당 파라미터 값을 탑재합니다. `region`에서는 파라미터가 성공적으로 검색되지 않고 `failoverRegion`에서 성공적으로 검색되는 경우 ASCP는 해당 파라미터 값을 탑재합니다. 이 필드 사용 방법의 예는 [다중 리전 파라미터 장애 조치](#multi-region-failover) 섹션을 참조하세요.

**pathTranslation**  
(선택 사항) Amazon EKS의 파일 이름에 Linux의 슬래시(/)와 같은 경로 구분 문자가 포함된 경우 사용할 단일 대체 문자입니다. ASCP는 경로 구분 문자가 포함된 탑재 파일을 생성할 수 없습니다. 그 대신 ASCP는 경로 구분 문자를 다른 문자로 대체합니다. 이 필드를 사용하지 않는 경우 대체 문자는 밑줄(\$1)이므로 예를 들어 `My/Path/Parameter`은 `My_Path_Parameter`으로 탑재됩니다.  
문자 대체를 방지하려면 `False` 문자열을 입력합니다.

***usePodIdentity***  
(선택 사항) 인증 접근 방식을 결정합니다. 지정하지 않으면 기본적으로 IRSA(서비스 계정에 대한 IAM 역할)를 사용합니다.  
+ EKS Pod Identity를 사용하려면 다음 값 중 하나를 사용합니다. `"true"`", `"True"`, `"TRUE"`, `"t"` 또는 `"T"`.
+ IRSA를 명시적으로 사용하려면 다음 값 중 하나를 사용합니다. `"false"`, `"False"`, `"FALSE"`, `"f"` 또는 `"F"`"=.

***preferredAddressType***  
(선택 사항) Pod Identity Agent 엔드포인트 통신에 사용할 기본 설정 IP 주소 유형을 지정합니다. 필드는 EKS Pod Identity 기능을 사용할 때만 적용되고 서비스 계정에 IAM 역할을 사용할 때는 무시됩니다. 값은 대/소문자를 구분하지 않습니다. 유효값은 다음과 같습니다.  
+ `"ipv4"`, `"IPv4"`" 또는 `"IPV4"` - Pod Identity Agent IPv4 엔드포인트 강제 사용
+ `"ipv6"`, `"IPv6"` 또는 `"IPV6"` - Pod Identity Agent IPv6 엔드포인트 강제 사용
+ 지정되지 않음 - 자동 엔드포인트 선택 사용, IPv4 엔드포인트를 먼저 시도하고 IPv4 실패 시 IPv6 엔드포인트로 폴백

**객체**  
탑재할 보안 암호의 YAML 선언을 포함하는 문자열입니다. YAML 다중 행 문자열 또는 파이프(\$1) 문자를 사용하는 것이 좋습니다.    
**objectName**  
필수 사항입니다. 가져올 파라미터 또는 보안 암호의 이름을 지정합니다. Parameter Store의 경우 파라미터의 [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters)으로 파라미터의 이름 또는 전체 ARN일 수 있습니다. Secrets Manager의 경우 파라미터의 [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters)로 보안 암호의 친숙한 이름 또는 전체 ARN일 수 있습니다.  
**objectType**  
`objectName`으로 Secrets Manager ARN을 사용하지 않는 경우에 필요합니다. Parameter Store에는 `ssmparameter`을 사용합니다. Secrets Manager의 경우 `secretsmanager`를 사용합니다.  
**objectAlias**  
(선택 사항) Amazon EKS 포드에 있는 보안 암호의 파일 이름입니다. 이 필드를 지정하지 않은 경우 `objectName`이 파일 이름으로 나타납니다.  
**objectVersion**  
(선택 사항) 파라미터의 버전 ID입니다. 파라미터를 업데이트할 때마다 버전 ID를 업데이트해야 하므로 권장하지 않습니다. 기본적으로 가장 최신 버전이 사용됩니다. `failoverRegion`을(를) 포함하는 경우 이 필드는 기본 `objectVersion`을(를) 나타냅니다.  
**objectVersionLabel**  
(선택 사항) 버전의 별칭입니다. 기본값은 가장 최근 버전 `AWSCURRENT`입니다. `failoverRegion`을(를) 포함하는 경우 이 필드는 기본 `objectVersionLabel`을(를) 나타냅니다.  
**jmesPath**  
(선택 사항) Amazon EKS에 탑재할 파일에 대한 파라미터의 키 맵입니다. 이 필드를 사용하려면 파라미터 값이 JSON 형식이어야 합니다.  
다음 예제에서는 JSON 인코딩 파라미터의 형태를 보여줍니다.  

```
{
    "username" : "myusername",
    "password" : "mypassword"
}
```
키는 `username` 및 `password`입니다. `username`에 연결된 값은 `myusername`이며, `password`에 연결된 값은 `mypassword`입니다.  
이 필드를 사용하는 경우 `path` 및 `objectAlias` 하위 필드를 포함해야 합니다.    
**경로**  
파라미터 값의 JSON에 있는 키-값 쌍의 키입니다. 필드에 하이픈이 포함된 경우 작은 따옴표를 사용하여 하이픈을 이스케이프 처리합니다. 예: `path: '"hyphenated-path"'`  
**objectAlias**  
Amazon EKS 포드에 탑재할 파일 이름입니다. 필드에 하이픈이 포함된 경우 작은 따옴표를 사용하여 하이픈을 이스케이프 처리합니다. 예: `objectAlias: '"hyphenated-alias"'`  
**`failoverObject`**  
(선택 사항) 이 필드를 지정하는 경우 ASCP는 기본 `objectName`에 지정된 파라미터와 `failoverObject` `objectName` 하위 필드에 지정된 파라미터를 모두 검색하려고 시도합니다. 둘 중 하나에서 예를 들어 인증 문제에 대해 `4xx` 오류를 반환하는 경우 ASCP는 어느 파라미터도 탑재하지 않습니다. 기본 `objectName`에서 파라미터가 성공적으로 검색되면 ASCP는 해당 파라미터 값을 탑재합니다. 기본 `objectName`에서는 파라미터가 성공적으로 검색되지 않고 장애 조치 `objectName`에서 성공적으로 검색되는 경우 ASCP는 해당 파라미터 값을 탑재합니다. 이 필드를 포함하는 경우 필드 `objectAlias`도 포함해야 합니다. 이 필드 사용 방법의 예는 [다른 파라미터로 장애 조치](#failover-parameter) 섹션을 참조하세요.  
일반적으로 장애 조치 파라미터가 복제본이 아닌 경우 이 필드를 사용합니다. 복제본을 지정하는 방법에 대한 예는 [다중 리전 파라미터 장애 조치](#multi-region-failover) 섹션을 참조하세요.    
**objectName**  
장애 조치 파라미터의 이름 또는 전체 ARN입니다. ARN을 사용하는 경우 ARN의 리전이 필드 `failoverRegion`와(과) 일치해야 합니다.  
**objectVersion**  
(선택 사항) 파라미터의 버전 ID입니다. 기본 `objectVersion`와(과) 일치해야 합니다. 파라미터를 업데이트할 때마다 버전 ID를 업데이트해야 하므로 권장하지 않습니다. 기본적으로 가장 최신 버전이 사용됩니다.  
**objectVersionLabel**  
(선택 사항) 버전의 별칭입니다. 기본값은 가장 최근 버전 `AWSCURRENT`입니다.

### Amazon EKS 포드에 파라미터를 탑재하기 위한 기본 SecretProviderClass 구성을 생성합니다.
<a name="create-SecretProviderClass-config"></a>

------
#### [ Pod Identity ]

동일한 Amazon EKS 클러스터에서 파라미터를 사용하는 SecretProviderClass:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameter-store
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "MyParameter"
        objectType: "ssmparameter"
    usePodIdentity: "true"
```

------
#### [ IRSA ]

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: deployment-aws-parameter
spec:
  provider: aws
  parameters:
    objects: |
        - objectName: "MyParameter"
          objectType: "ssmparameter"
```

------

### SecretProviderClass 사용
<a name="ascp-scenarios-secretproviderclass"></a>

다음 예제를 사용하여 다양한 시나리오에 대한 `SecretProviderClass` 구성을 생성합니다.

#### 예: 이름 또는 ARN으로 파라미터 탑재
<a name="mount-by-name-arn"></a>

이 예제에서는 세 가지 유형의 파라미터를 탑재하는 방법을 보여줍니다.
+ 전체 ARN으로 지정된 파라미터
+ 이름으로 지정된 파라미터
+ 보안 암호의 파라미터 버전

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter2-d4e5f6"
      - objectName: "MyParameter3"
        objectType: "ssmparameter"
      - objectName: "MyParameter4"
        objectType: "ssmparameter"
        objectVersionLabel: "AWSCURRENT"
```

#### 예: 파라미터에서 키-값 페어 탑재
<a name="mount-key-value-pairs"></a>

이 예제는 JSON 형식 파라미터에서 특정 키-값 쌍을 탑재하는 방법을 보여줍니다.

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter-a1b2c3"
        jmesPath: 
            - path: username
              objectAlias: dbusername
            - path: password
              objectAlias: dbpassword
```

#### 예: 장애 조치 구성 예제
<a name="failover-examples"></a>

이 예제에서는 파라미터에 대한 장애 조치 구성 방법을 보여줍니다.

##### 다중 리전 파라미터 장애 조치
<a name="multi-region-failover"></a>

이 예제에서는 여러 리전에 복제된 파라미터에 대한 자동 장애 조치 구성 방법을 보여줍니다.

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "MyParameter"
```

##### 다른 파라미터로 장애 조치
<a name="failover-parameter"></a>

이 예제에서는 (복제본이 아닌) 다른 파라미터로의 장애 조치 구성 방법을 보여줍니다.

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "arn:aws:ssm:us-east-1:777788889999:parameter:MyParameter-a1b2c3"
        objectAlias: "MyMountedParameter"
        failoverObject: 
          - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyFailoverParameter-d4e5f6"
```

## 추가 리소스
<a name="additional-resources"></a>

Amazon EKS에서 ASCP 사용에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [Amazon EKS에서 Pod Identity 사용](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [GitHub의 AWS Secrets Store CSI 드라이버](https://github.com/aws/secrets-store-csi-driver-provider-aws)