

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 매니페스트를 사용하여 추가 검색 기능 활성화
<a name="appconfig-agent-how-to-use-additional-features"></a>

AWS AppConfig 에이전트는 애플리케이션에 대한 구성을 검색하는 데 도움이 되는 다음과 같은 추가 기능을 제공합니다.
+ [여러 계정에서 구성을 검색하도록 AWS AppConfig 에이전트 구성](appconfig-agent-how-to-use-additional-features-multi-account.md): 기본 또는 *검색* AWS 계정 에서 AWS AppConfig 에이전트를 사용하여 여러 공급업체 계정에서 구성 데이터를 검색합니다.
+ [구성 복사본을 디스크에 쓰도록 AWS AppConfig 에이전트 구성](appconfig-agent-how-to-use-additional-features-write-to-disk.md): AWS AppConfig Agent를 사용하여 구성 데이터를 디스크에 기록합니다. 이 기능을 사용하면 디스크에서 구성 데이터를 읽는 애플리케이션을 사용하는 고객이 AWS AppConfig와 연동할 수 있습니다.

## 에이전트 매니페스트 이해
<a name="appconfig-agent-how-to-use-additional-features-about-manifests"></a>

이러한 AWS AppConfig 에이전트 기능을 활성화하려면 매니페스트를 생성합니다. 매니페스트는 에이전트가 수행할 수 있는 작업을 제어하기 위해 제공하는 구성 데이터 세트입니다. 매니페스트는 JSON으로 작성됩니다. 여기에는 배포한 다양한 구성에 해당하는 최상위 키 세트가 포함되어 있습니다 AWS AppConfig.

매니페스트에는 여러 구성이 포함될 수 있습니다. 또한 매니페스트의 각 구성은 지정된 구성에 사용할 하나 이상의 에이전트 기능을 식별할 수 있습니다. 매니페스트의 콘텐츠는 다음 형식을 사용합니다.

```
{
    "application_name:environment_name:configuration_name": {
        "agent_feature_to_enable_1": {
            "feature-setting-key": "feature-setting-value"
        },
        "agent_feature_to_enable_2": {
            "feature-setting-key": "feature-setting-value"
        }
    }
}
```

다음은 두 가지 구성이 있는 매니페스트의 JSON 예제입니다. 첫 번째 구성(*MyApp*)은 AWS AppConfig 에이전트 기능을 사용하지 않습니다. 두 번째 구성(*My2ndApp*)은 *디스크에 구성 복사본 쓰기*와 *다중 계정 검색* 기능을 사용합니다.

```
{
        "MyApp:Test:MyAllowListConfiguration": {},
        
        "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
            "credentials": {
                "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
                "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
                "roleSessionName": "AwsAppConfigAgent",
                "credentialsDuration": "2h"
            },
            "writeTo": {
                "path": "/tmp/aws-appconfig/my-2nd-app/beta/my-enable-payments-feature-flag-configuration.json"
            }
        }
    }
```

**에이전트 매니페스트를 제공하는 방법**  
매니페스트를 AWS AppConfig 에이전트가 읽을 수 있는 위치에 파일로 저장할 수 있습니다. 또는 매니페스트를 AWS AppConfig 구성으로 저장하고 에이전트가 이를 가리키도록 할 수 있습니다. 에이전트 매니페스트를 제공하려면 다음 값 중 하나로 `MANIFEST` 환경 변수를 설정해야 합니다.


****  

| 매니페스트 위치 | 환경 변수 값 | 사용 사례: | 
| --- | --- | --- | 
|  파일  |  file:/path/to/agent-manifest.json  |  매니페스트가 자주 변경되지 않는 경우 이 방법을 사용합니다.  | 
|  AWS AppConfig 구성  |  *application-name*:*environment-name*:*configuration-name*  |  동적 업데이트에는 이 방법을 사용합니다. 다른 AWS AppConfig 구성을 저장하는 것과 동일한 방법으로에 저장된 매니페스트를 업데이트하고 구성 AWS AppConfig 으로 배포할 수 있습니다.  | 
|  환경 변수  |  매니페스트 콘텐츠(JSON)  |  매니페스트가 자주 변경되지 않는 경우 이 방법을 사용합니다. 이 방법은 파일을 노출하는 것보다 환경 변수를 설정하는 것이 더 쉬운 컨테이너 환경에서 유용합니다.  | 

 AWS AppConfig 에이전트에 대한 변수 설정에 대한 자세한 내용은 사용 사례에 해당하는 주제를 참조하세요.
+ [AWS AppConfig 에이전트 Lambda 확장 구성](appconfig-integration-lambda-extensions-config.md)
+ [Amazon EC2에서 AWS AppConfig 에이전트 사용](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring)
+ [Amazon ECS 및 Amazon EKS에서 AWS AppConfig 에이전트 사용](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring)

# 여러 계정에서 구성을 검색하도록 AWS AppConfig 에이전트 구성
<a name="appconfig-agent-how-to-use-additional-features-multi-account"></a>

 AWS AppConfig 에이전트 매니페스트에 자격 증명 재정의를 입력하여 여러 AWS 계정 에서 구성을 검색하도록 AWS AppConfig 에이전트를 구성할 수 있습니다. *자격 증명 재정*의에는 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름(ARN), 역할 ID, 세션 이름 및 에이전트가 역할을 수임할 수 있는 기간이 포함됩니다.

매니페스트의 ‘credentials’ 섹션에 이러한 세부 정보를 입력합니다. ‘credentials’ 섹션에서는 다음 형식을 사용합니다.

```
{
    "application_name:environment_name:configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::account_ID:role/roleName",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

다음 예를 참고하세요

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AWSAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

구성을 검색하기 전에 에이전트는 매니페스트에서 구성에 대한 자격 증명 세부 정보를 읽은 다음 해당 구성에 지정된 IAM 역할을 수임합니다. 단일 매니페스트에서 구성마다 서로 다른 자격 증명 재정의 집합을 지정할 수 있습니다. 다음 다이어그램은 AWS AppConfig 에이전트가 계정 A(검색 계정)에서 실행되는 동안 계정 B와 C(공급자 계정)에 지정된 별도의 역할을 수임한 다음 [GetLatestConfiguration](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html) API 작업을 호출하여 해당 계정에서 실행 중인 구성 데이터를 검색하는 AWS AppConfig 방법을 보여줍니다.

![\[AWS AppConfig 에이전트가 별도의에서 IAM 역할을 사용하는 방법 AWS 계정.\]](http://docs.aws.amazon.com/ko_kr/appconfig/latest/userguide/images/agent multi-account.png)


## 공급업체 계정에서 구성 데이터를 검색하는 권한 구성
<a name="appconfig-agent-how-to-use-additional-features-multi-account-permission"></a>

AWS AppConfig 검색 계정에서 실행되는 에이전트는 공급업체 계정에서 구성 데이터를 검색할 수 있는 권한이 필요합니다. 각 공급업체 계정에서 AWS Identity and Access Management (IAM) 역할을 생성하여 에이전트 권한을 부여합니다. 검색 계정의 AWS AppConfig 에이전트는 공급업체 계정에서 데이터를 가져오기 위해이 역할을 수임합니다. 이 단원의 절차에 따라 IAM 권한 정책, IAM 역할을 생성하고 매니페스트에 에이전트 재정의를 추가할 수 있습니다.

**시작하기 전 준비 사항**  
IAM에서 권한 정책과 역할을 생성하기 전에 다음 정보를 수집합니다.
+ 각의 IDs AWS 계정. *검색* 계정은 구성 데이터를 위해 다른 계정을 직접적으로 호출하는 계정입니다. *공급업체* 계정은 구성 데이터를 검색 계정에 제공하는 계정입니다.
+ 검색 계정 AWS AppConfig 에서가 사용하는 IAM 역할의 이름입니다. 다음은 AWS AppConfig기본적으로에서 사용하는 역할 목록입니다.
  + Amazon Elastic Compute Cloud(Amazon EC2)의 경우 인스턴스 역할을 AWS AppConfig 사용합니다.
  + 의 경우 Lambda 실행 역할을 AWS Lambda AWS AppConfig 사용합니다.
  + Amazon Elastic Container Service(Amazon ECS) 및 Amazon Elastic Kubernetes Service(Amazon EKS)의 경우는 컨테이너 역할을 AWS AppConfig 사용합니다.

  `ROLE_ARN` 환경 변수를 지정하여 다른 IAM 역할을 사용하도록 AWS AppConfig 에이전트를 구성한 경우 해당 이름을 기록해 둡니다.

**권한 정책 생성**  
다음 절차에 따라 IAM 콘솔을 사용하여 권한 정책을 생성할 수 있습니다. 검색 계정에 대한 구성 데이터를 벤딩 AWS 계정 할 각의 절차를 완료합니다.

**IAM 정책을 만들려면**

1. 공급업체 계정의 AWS Management Console 에 로그인합니다.

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택한 후 **정책 생성**을 선택합니다.

1. **JSON** 옵션을 선택합니다.

1. **정책 편집기**에서 기본 JSON을 다음 정책 설명으로 바꿉니다. 각 *예제 리소스 자리 표시자*를 공급업체 계정 세부 정보로 업데이트합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "appconfig:StartConfigurationSession",
                   "appconfig:GetLatestConfiguration"
               ],
               "Resource": "arn:aws:appconfig:us-east-1:111122223333:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID"
           }
       ]
   }
   ```

------

   다음은 그 예입니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Action": [
               "appconfig:StartConfigurationSession",
               "appconfig:GetLatestConfiguration"
           ],
           "Resource": "arn:aws:appconfig:us-east-2:111122223333:application/abc123/environment/def456/configuration/hij789"
       }
      ]
   }
   ```

------

1. **다음**을 선택합니다.

1. **정책 이름** 필드에 이름을 입력합니다.

1. (선택 사항) **태그 추가**에서 태그-키 값 페어를 하나 이상 추가하여 이 정책에 대한 액세스를 구성, 추적 또는 제어합니다.

1. **정책 생성**을 선택합니다. 시스템에서 **정책** 페이지로 돌아갑니다.

1. 검색 계정에 대한 구성 데이터를 벤딩 AWS 계정 할 각에서이 절차를 반복합니다.

**IAM 역할 생성**  
다음 절차에 따라 IAM 콘솔을 사용하여 IAM 역할을 생성할 수 있습니다. 검색 계정에 대한 구성 데이터를 벤딩 AWS 계정 할 각의 절차를 완료합니다.

**IAM 역할을 생성하려면**

1. 공급업체 계정의 AWS Management Console 에 로그인합니다.

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 탐색 창에서 **역할**을 선택한 후 **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형**에서 **AWS 계정**를 선택합니다.

1. **AWS 계정** 섹션에서 **다른 AWS 계정**을 선택합니다.

1. **계정 ID** 필드에 검색 계정 ID를 입력합니다.

1. (선택 사항) 이 수임 역할에 대한 보안 모범 사례로 **외부 ID 필요**를 선택하고 문자열을 입력합니다.

1. **다음**을 선택합니다.

1. **권한 추가** 페이지의 **검색** 필드를 사용하여 이전 절차에서 생성한 정책을 찾습니다. 이름 옆의 확인란을 선택합니다.

1. **다음**을 선택합니다.

1. **역할 이름**에 이름을 입력합니다.

1. (선택 사항) **설명**에 설명을 입력합니다.

1. **1단계: 신뢰할 수 있는 엔터티 선택**에서 **편집**을 선택합니다. 기본 JSON 신뢰 정책을 다음 정책으로 바꿉니다. 각 *예제 리소스 자리 표시자*를 검색 계정의 정보로 업데이트합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/appconfig_role_in_retrieval_account"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. (선택 사항) **Tags**(태그)에서 이 역할에 대한 액세스를 구성, 추적 또는 제어할 태그-키 값 페어를 하나 이상 추가합니다.

1. **역할 생성**을 선택합니다. 그러면 **역할** 페이지로 돌아갑니다.

1. 방금 생성한 역할을 검색합니다. 이 값을 선택합니다. **ARN** 섹션에서 ARN을 복사합니다. 이 정보는 다음 절차에서 지정하게 됩니다.

**매니페스트에 자격 증명 재정의 추가**  
공급업체 계정에서 IAM 역할을 생성한 후에는 검색 계정에서 매니페스트를 업데이트합니다. 특히 공급업체 계정에서 구성 데이터를 검색할 수 있도록 자격 증명 블록과 IAM 역할 ARN을 추가합니다. JSON 형식은 다음과 같습니다.

```
{
    "vendor_application_name:vendor_environment_name:vendor_configuration_name": {
        "credentials": {
            "roleArn": "arn:partition:iam::vendor_account_ID:role/name_of_role_created_in_vendor_account",
            "roleExternalId": "string",
            "roleSessionName": "string",
            "credentialsDuration": "time_in_hours" 
        }
    }
}
```

다음 예를 참고하세요

```
{
    "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": {
        "credentials": {
            "roleArn": "arn:aws:us-west-1:iam::123456789012:role/MyTestRole",
            "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac",
            "roleSessionName": "AwsAppConfigAgent",
            "credentialsDuration": "2h" 
        }
    }
}
```

**다중 계정 검색이 작동하는지 확인**  
에이전트 로그를 검토하여 AWS AppConfig 에이전트가 여러 계정에서 구성 데이터를 검색할 수 있는지 확인할 수 있습니다. '`YourApplicationName`:`YourEnvironmentName`:`YourConfigurationName`'에 대해 검색된 초기 데이터의 `INFO` 수준 로그는 성공적인 검색에 가장 적합한 지표입니다. 검색에 실패하면 실패 이유를 나타내는 `ERROR` 수준 로그가 표시됩니다. 다음은 공급업체 계정에서 성공적으로 검색한 예입니다.

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MyTestApplication:MyTestEnvironment:MyDenyListConfiguration' in XX.Xms
```

# 구성 복사본을 디스크에 쓰도록 AWS AppConfig 에이전트 구성
<a name="appconfig-agent-how-to-use-additional-features-write-to-disk"></a>

구성 사본을 디스크에 일반 텍스트로 자동 저장하도록 AWS AppConfig Agent를 구성할 수 있습니다. 이 기능을 사용하면 디스크에서 구성 데이터를 읽는 애플리케이션을 사용하는 고객이 AWS AppConfig와 연동할 수 있습니다.

이 기능은 구성 백업 기능으로 사용하도록 설계되지 않았습니다. AWS AppConfig Agent는 디스크에 복사된 구성 파일에서 읽지 않습니다. 구성을 디스크에 백업하려면 Amazon [EC2에서 AWS AppConfig 에이전트 사용 또는 Amazon Amazon EC2](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-ec2.html#appconfig-integration-ec2-configuring) ECS `BACKUP_DIRECTORY` 및 Amazon EKS에서 에이전트 사용에 대한 및 `PRELOAD_BACKUP` 환경 변수를 참조하세요. [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-integration-containers-agent.html#appconfig-integration-containers-agent-configuring) 

**주의**  
이 태스크에 대한 다음 중요 정보를 참고하세요.  
디스크에 저장된 구성은 *일반 텍스트*로 저장되며 사람이 읽을 수 있습니다. 민감한 데이터가 포함된 구성에는 이 기능을 활성화하지 마세요.
이 기능은 로컬 디스크에 씁니다. 파일 시스템 권한에 최소 권한 원칙을 사용합니다. 자세한 내용은 [최소 권한 액세스 구현](appconfig-security.md#appconfig-security-least-privilege-access) 단원을 참조하십시오.

**디스크에 구성 복사본 쓰기를 활성화하려면**

1. 매니페스트를 편집합니다.

1. 디스크에 AWS AppConfig 쓸 구성을 선택하고 `writeTo` 요소를 추가합니다. 다음 예를 참고하세요

   ```
   {
       "application_name:environment_name:configuration_name": {
           "writeTo": {
               "path": "path_to_configuration_file"
           }
       }
   }
   ```

   다음 예를 참고하세요

   ```
   {
       "MyTestApp:MyTestEnvironment:MyNewConfiguration": {
           "writeTo": {
               "path": "/tmp/aws-appconfig/mobile-app/beta/enable-mobile-payments"
           }
       }
   }
   ```

1. 변경 내용을 저장합니다. configuration.json 파일은 새 구성 데이터가 배포될 때마다 업데이트됩니다.

**디스크에 구성 복사본 쓰기가 작동하는지 확인**  
 AWS AppConfig 에이전트 로그를 검토하여 구성 사본이 디스크에 기록되고 있는지 확인할 수 있습니다. "INFO write configuration '*application*:*environment*:*configuration*' to *file\$1path*"라는 문구가 있는 `INFO` 로그 항목은 AWS AppConfig 에이전트가 구성 복사본을 디스크에 쓴다는 것을 나타냅니다.

다음 예를 참고하세요

```
[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x
[appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772
[appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MobileApp:Beta:EnableMobilePayments' in XX.Xms
[appconfig agent] 2023/11/13 17:05:49 INFO wrote configuration 'MobileApp:Beta:EnableMobilePayments' to /tmp/configs/your-app/your-env/your-config.json
```