매니페스트를 사용하여 추가 검색 기능 활성화 - 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 환경 변수를 설정해야 합니다.

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

파일

파일:/path/to/agent-manifest.json

매니페스트가 자주 변경되지 않는 경우 이 방법을 사용합니다.

AWS AppConfig 구성

application-name:environment-name:configuration-name

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

환경 변수

매니페스트 콘텐츠(JSON)

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

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

여러 계정에서 구성을 검색하도록 AWS AppConfig 에이전트 구성

AWS AppConfig 에이전트 매니페스트에 자격 증명 재정의를 입력하여 여러 AWS 계정 에서 구성을 검색하도록 AWS AppConfig 에이전트를 구성할 수 있습니다. 자격 증명 재정의에는 (ARN) 역할의 Amazon 리소스 이름 AWS Identity and Access Management (IAM), 역할 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(벤더 계정)에 지정된 별도의 역할을 수임한 다음 GetLatestConfiguration API 작업을 호출하여 해당 계정에서 실행되지 않는 AWS AppConfig 구성 데이터를 검색하는 방법을 보여줍니다.

AWS AppConfig 에이전트가 별도의 에서 IAM 역할을 사용하는 방법 AWS 계정.

공급업체 계정에서 구성 데이터를 검색하는 권한 구성

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 에서 에 로그인합니다.

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

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

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

  5. 정책 편집기 에서 기본값을 다음 정책 문JSON으로 바꿉니다. 각 업데이트 example resource placeholder 공급업체 계정 세부 정보를 포함합니다.

    { "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. Next(다음)를 선택합니다.

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

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

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

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

IAM 역할 생성

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

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

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

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

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

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

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

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

  8. Next(다음)를 선택합니다.

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

  10. Next(다음)를 선택합니다.

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

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

  13. 1단계: 신뢰할 수 있는 엔터티 선택에서 편집을 선택합니다. 기본 JSON 신뢰 정책을 다음 정책으로 바꿉니다. 각 업데이트 example resource placeholder 검색 계정의 정보를 포함합니다.

    { "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. 역할 생성(Create role)을 선택합니다. 그러면 역할 페이지로 돌아갑니다.

  16. 방금 생성한 역할을 검색합니다. 이를 선택합니다. ARN 섹션에서 를 복사합니다ARN. 다음 절차에서 이 정보를 지정합니다.

매니페스트에 자격 증명 재정의 추가

공급업체 계정에서 IAM 역할을 생성한 후 검색 계정에서 매니페스트를 업데이트합니다. 특히 보안 인증 블록과 공급업체 계정에서 구성 데이터를 검색하기 ARN 위한 IAM 역할을 추가합니다. 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::'에 대해 검색된 초기 데이터의 INFO 수준 로그YourEnvironmentNameYourConfigurationName는 성공적인 검색에 가장 적합한 지표입니다. 검색에 실패하는 경우 실패 이유를 나타내는 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.

이 기능은 구성 백업 기능으로 사용하도록 설계되지 않았습니다. AWS AppConfig 에이전트가 디스크에 복사된 구성 파일에서 읽지 않습니다. 구성을 디스크에 백업하려면 BACKUP_DIRECTORY Amazon에서 AWS AppConfig 에이전트 사용 또는 Amazon EC2Amazon에서 AWS AppConfig 에이전트 사용 에 대한 ECS EKSPRELOAD_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. 변경 내용을 저장합니다. 새 구성 데이터가 배포될 때마다 configuration.json 파일이 업데이트됩니다.

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

AWS AppConfig 에이전트 로그를 검토하여 구성의 복사본이 디스크에 기록되고 있는지 확인할 수 있습니다. “구성 작성”INFO이라는 문구가 있는 INFO 로그 항목application:environment:configuration' ~ file_path“는 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