추가 검색 기능 - AWS AppConfig

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

추가 검색 기능

AWS AppConfig 에이전트는 애플리케이션의 구성을 검색하는 데 도움이 되는 다음과 같은 추가 기능을 제공합니다.

  • 다중 계정 검색: 기본 또는 AWS 계정 검색에서 AWS AppConfig 에이전트를 사용하여 여러 공급업체 계정에서 구성 데이터를 검색하십시오.

  • 구성 사본을 디스크에 쓰기: AWS AppConfig 에이전트를 사용하여 구성 데이터를 디스크에 기록합니다. 이 기능을 사용하면 디스크에서 구성 데이터를 읽는 애플리케이션을 보유한 고객이 통합할 수 AWS AppConfig있습니다.

에이전트 매니페스트에 대한 정보

이러한 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: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 환경 변수를 설정해야 합니다.

매니페스트 위치 환경 변수 값 사용 사례

파일

파일: /경로/to/agent-manifest.json

매니페스트가 자주 변경되지 않을 경우 이 방법을 사용하세요.

AWS AppConfig 구성

애플리케이션 이름: 환경 이름: 구성 이름

동적 업데이트에는 이 방법을 사용합니다. 다른 AWS AppConfig 구성을 저장하는 것과 동일한 방식으로 AWS AppConfig 구성으로 저장된 매니페스트를 업데이트하고 배포할 수 있습니다.

환경 변수

매니페스트 콘텐츠 (JSON)

매니페스트가 자주 변경되지 않을 경우 이 방법을 사용하세요. 이 방법은 파일을 노출하는 것보다 환경 변수를 설정하는 것이 더 쉬운 컨테이너 환경에서 유용합니다.

AWS AppConfig 에이전트의 변수 설정에 대한 자세한 내용은 사용 사례의 관련 주제를 참조하십시오.

다중 계정 검색

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

매니페스트의 “자격 증명” 섹션에 이러한 세부 정보를 입력합니다. “자격 증명” 섹션은 다음 형식을 사용합니다.

{ "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:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AWSAppConfigAgent", "credentialsDuration": "2h" } } }

구성을 검색하기 전에 에이전트는 매니페스트에서 구성에 대한 자격 증명 세부 정보를 읽은 다음 해당 구성에 지정된 IAM 역할을 맡습니다. 단일 매니페스트에서 여러 구성에 대해 서로 다른 자격 증명 재정의 세트를 지정할 수 있습니다. 다음 다이어그램은 AWS AppConfig 에이전트가 계정 A (검색 계정) 에서 실행되는 동안 계정 B와 C (공급업체 계정) 에 지정된 별도의 역할을 맡은 다음 GetLatest구성 API 작업을 호출하여 해당 계정에서 실행되는 구성 데이터를 검색하는 방법을 보여줍니다. AWS AppConfig

AWS AppConfig 에이전트가 서로 다른 곳에서 IAM 역할을 사용하는 방식 AWS 계정

공급업체 계정에서 구성 데이터를 검색할 수 있는 권한을 구성합니다.

AWS AppConfig 검색 계정에서 실행되는 에이전트는 공급업체 계정에서 구성 데이터를 검색할 수 있는 권한이 필요합니다. 각 공급업체 계정에서 AWS Identity and Access Management (IAM) 역할을 생성하여 에이전트에게 권한을 부여합니다. AWS AppConfig 검색 계정의 에이전트는 이 역할을 맡아 공급업체 계정으로부터 데이터를 가져옵니다. 이 섹션의 절차를 완료하여 IAM 권한 정책, IAM 역할을 생성하고 매니페스트에 에이전트 재정의를 추가하세요.

시작하기 전 준비 사항

IAM에서 권한 정책과 역할을 생성하기 전에 다음 정보를 수집하십시오.

  • 각 AWS 계정 ID의 ID. 검색 계정은 구성 데이터를 받기 위해 다른 계정을 호출하는 계정입니다. 공급업체 계정은 검색 계정에 구성 데이터를 제공하는 계정입니다.

  • 검색 AWS AppConfig 계정에서 사용하는 IAM 역할의 이름. 에서 기본적으로 AWS AppConfig사용하는 역할 목록은 다음과 같습니다.

    • Amazon Elastic Compute Cloud (Amazon EC2) 의 AWS AppConfig 경우 인스턴스 역할을 사용합니다.

    • 의 경우 AWS Lambda, Lambda 실행 역할을 AWS AppConfig 사용합니다.

    • 아마존 Elastic Container Service (Amazon ECS) 및 아마존 Elastic Kubernetes 서비스 (Amazon EKS) 의 경우 컨테이너 역할을 사용합니다. AWS AppConfig

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

권한 정책 생성

다음 절차를 사용하여 IAM 콘솔을 사용하여 권한 정책을 생성합니다. 검색 계정의 구성 데이터를 AWS 계정 제공하는 각 절차를 완료하십시오.

IAM 정책을 만들려면
  1. 공급업체 계정으로 AWS Management Console 로그인합니다.

  2. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

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

  4. JSON 옵션을 선택합니다.

  5. 정책 편집기에서 기본 JSON을 다음 정책 설명으로 대체합니다. 각 예제 리소스 플레이스홀더를 공급업체 계정 세부 정보로 업데이트하세요.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:partition:appconfig:region:vendor_account_ID:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID" } ] }

    다음은 그 예입니다.

    { "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" } ] }
  6. 다음을 선택합니다.

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

  8. (선택 사항) [Add tags] 에서 하나 이상의 태그-키 값 쌍을 추가하여 이 정책에 대한 액세스를 구성, 추적 또는 제어합니다.

  9. 정책 생성(Create policy)을 선택합니다. 시스템에서 정책 페이지로 돌아갑니다.

  10. 검색 계정의 구성 데이터를 제공할 각 AWS 계정 계정에서 이 절차를 반복합니다.

IAM 역할 생성

다음 절차를 사용하여 IAM 콘솔을 사용하여 IAM 역할을 생성합니다. 검색 계정의 구성 데이터를 AWS 계정 제공하는 각 절차를 완료하십시오.

IAM 역할을 생성하려면
  1. 공급업체 계정으로 AWS Management Console 로그인합니다.

  2. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  3. 탐색 창에서 역할을 선택한 다음 정책 생성을 선택합니다.

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

  5. AWS 계정섹션에서 기타를 선택합니다 AWS 계정.

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

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

  8. 다음을 선택합니다.

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

  10. 다음을 선택합니다.

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

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

  13. 1단계: 신뢰할 수 있는 엔티티 선택에서 편집을 선택합니다. 기본 JSON 신뢰 정책을 다음 정책으로 대체합니다. 각 예제 리소스 플레이스홀더를 검색 계정의 정보로 업데이트하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::retrieval_account_ID:role/appconfig_role_in_retrieval_account" }, "Action": "sts:AssumeRole" } ] }
  14. (선택 사항) Tags(태그)에서 이 역할에 대한 액세스를 구성, 추적 또는 제어할 태그-키 값 페어를 하나 이상 추가합니다.

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

  16. 방금 생성한 역할을 검색하세요. 이를 선택합니다. 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: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 에이전트를 구성할 수 있습니다. 이 기능을 사용하면 디스크에서 구성 데이터를 읽는 애플리케이션을 사용하는 고객이 통합할 수 AWS AppConfig있습니다.

이 기능은 구성 백업 기능으로 사용하도록 설계되지 않았습니다. AWS AppConfig 에이전트는 디스크에 복사된 구성 파일을 읽지 않습니다. 구성을 디스크에 백업하려면 Amazon EC2에서 에이전트 사용 또는 Amazon ECS BACKUP_DIRECTORY 및 Amazon EKS에서 AWS AppConfigAWS AppConfig 에이전트 사용에 대한 및 PRELOAD_BACKUP 환경 변수를 참조하십시오.

주의

이 기능에 대한 다음과 같은 중요 정보를 참고하십시오.

  • 디스크에 저장된 구성은 일반 텍스트로 저장되며 사람이 읽을 수 있습니다. 민감한 데이터가 포함된 구성에는 이 기능을 활성화하지 마십시오.

  • 이 기능은 로컬 디스크에 기록합니다. 파일 시스템 권한에는 최소 권한 원칙을 사용하십시오. 자세한 정보는 최소 권한 액세스 구현을 참조하세요.

쓰기 구성을 활성화하려면 디스크에 구성을 복사하십시오.
  1. 매니페스트를 편집합니다.

  2. 디스크에 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" } } }
  3. 변경 내용을 저장합니다. configuation.json 파일은 새 구성 데이터가 배포될 때마다 업데이트됩니다.

디스크에 구성 복사본 쓰기가 제대로 작동하는지 확인합니다.

AWS AppConfig 에이전트 로그를 검토하여 구성 사본이 디스크에 기록되고 있는지 확인할 수 있습니다. “정보 작성 구성 '애플리케이션: 환경: 구성' to file_path”라는 구문이 있는 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