타사 리소스를 위한 레코딩 구성 - AWS Config

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

타사 리소스를 위한 레코딩 구성

타사 리소스 또는 사용자 지정 리소스 유형 (예 GitHub: 온프레미스 서버, SAAS 모니터링 도구, 버전 제어 시스템) 에 대한 구성을 기록합니다. 타사 리소스의 구성 데이터를 AWS Config에 게시하고 AWS Config 콘솔 및 API를 사용하여 리소스 인벤토리 및 구성 기록을 보고 모니터링할 수 있습니다. 이제 AWS Config를 사용하여 모든 리소스를 관리하고 AWS Config 규칙을 사용하여 모범 사례의 준수에 대한 리소스 구성을 평가할 수 있습니다. 모범 사례, 내부 정책 및 규제 정책에 대해 이러한 타사 리소스를 평가하기 위해 AWS Config 규칙 또는 적합성 팩을 만들 수도 있습니다.

참고

모든 리소스 유형을 AWS Config 기록하도록 구성한 경우, 이를 통해 관리 (생성, 업데이트 또는 삭제) 되는 타사 리소스가 구성 AWS Config 항목으로 자동 AWS CloudFormation 추적됩니다.

전제 조건: 타사 리소스 또는 사용자 지정 리소스 유형은 AWS CloudFormation을 사용하여 등록해야 합니다.

1단계: 개발 환경 설정

AWS CloudFormation AWS CLI 설치 및 구성 AWS CLI를 사용하여 사용자 지정 리소스를 모델링하고 등록할 수 있습니다. 자세한 내용은 사용자 지정 리소스 CloudFormation 명령줄 인터페이스란? 을 참조하십시오. .

2단계: 리소스 모델링

리소스 유형의 구성을 준수하고 검증하는 리소스 공급자 스키마를 만듭니다.

  1. init 명령을 사용하여 리소스 공급자 프로젝트를 만들고 필요한 파일을 생성합니다.

    $ cfn init Initializing new project
  2. init 명령은 리소스 이름을 지정하는 등 프로젝트 설정을 안내하는 마법사를 시작합니다. 이 연습에서는 MyCustomNamespace::Testing::WordPress를 지정합니다.

    Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
  3. 리소스의 패키지 이름을 입력합니다.

    Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress Initialized a new project in /workplace/user/custom-testing-wordpress
    참고

    프로젝트 종속성이 올바르게 해결되도록 하려면 Maven 지원을 통해 생성된 프로젝트를 IDE로 가져올 수 있습니다.

    예를 들어 IntelliJ IDEA를 사용하는 경우 다음 작업을 수행해야 합니다.

    • [파일] 메뉴에서 [새로 만들기] 를 선택한 다음 [기존 소스의 프로젝트] 를 선택합니다.

    • 프로젝트 디렉터리로 이동합니다.

    • 프로젝트 가져오기 대화 상자에서 외부 모델에서 프로젝트 가져오기를 선택한 다음 Maven을 선택합니다.

    • [다음] 을 선택하고 원하는 기본값을 그대로 사용하여 프로젝트 가져오기를 완료합니다.

  4. 리소스에 대한 스키마가 포함된 mycustomnamespace-testing-wordpress.json 파일을 엽니다. 다음 스키마를 복사하여 mycustomnamespace-testing-wordpress.json에 붙여 넣습니다.

    { "typeName": "MyCustomNamespace::Testing::WordPress", "description": "An example resource that creates a website based on WordPress 5.2.2.", "properties": { "Name": { "description": "A name associated with the website.", "type": "string", "pattern": "^[a-zA-Z0-9]{1,219}\\Z", "minLength": 1, "maxLength": 219 }, "SubnetId": { "description": "A subnet in which to host the website.", "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z", "type": "string" }, "InstanceId": { "description": "The ID of the instance that backs the WordPress site.", "type": "string" }, "PublicIp": { "description": "The public IP for the WordPress site.", "type": "string" } }, "required": [ "Name", "SubnetId" ], "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ], "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ], "additionalProperties": false }
  5. 스키마를 검증합니다.

    $ cfn validate
  6. 리소스 공급자 패키지에 자동 생성된 파일을 업데이트하여 리소스 공급자 스키마 업데이트를 확인합니다. 리소스 공급자 프로젝트가 시작되면 AWS CLI은 리소스 공급자에 대한 지원 파일 및 코드를 생성합니다. 업데이트된 스키마를 보려면 코드를 다시 생성합니다.

    $ cfn generate
    참고

    Maven을 사용하는 경우 빌드 프로세스의 일부로 코드가 컴파일되기 전에 generate 명령이 자동으로 실행됩니다. 따라서 변경 내용이 생성된 코드와 동기화되지 않습니다.

    CloudFormation CLI는 Maven/시스템이 찾을 수 있는 위치에 있어야 한다는 점에 유의하십시오. 자세한 내용은 확장 개발을 위한 환경 설정을 참조하십시오.

전체 프로세스에 대한 자세한 내용은 에서 사용할 리소스 공급자 모델링을 참조하십시오AWS CloudFormation.

3단계: 아티팩트 생성

다음 명령을 실행하여 에 대한 아티팩트를 생성합니다. cfn submit

$ mvn package

4단계: 리소스 등록

AWS Config에서는 리소스에 대한 구성 추적을 수행하는 데 리소스 공급자 핸들러가 필요하지 않습니다. 다음 명령을 실행하여 리소스를 등록합니다.

$ cfn submit

자세한 내용은 AWS CloudFormation 템플릿에서 사용할 리소스 공급자 등록을 참조하십시오.

5단계: 리소스 구성 게시

MyCustomNamespace: :테스트: WordPress :의 구성을 결정하십시오.

{ "Name": "MyWordPressSite", "SubnetId": "subnet-abcd0123", "InstanceId": "i-01234567", "PublicIp": "my-wordpress-site.com" }

AWS CloudFormation DescribeType에서 스키마 버전 ID를 결정합니다.

AWS Config에서 이 리소스 구성이 허용되는지 확인합니다. 규정 준수를 평가하기 위해 이 리소스를 사용하여 AWS Config 규칙을 작성할 수 있습니다. 자세한 내용은 AWSCLI를 사용한 타사 리소스의 구성 상태 기록 및 삭제를 참조하십시오.

선택 사항: 구성 기록을 자동화하려면 주기적 또는 변경 기반 구성 수집기를 구현합니다.