이전 CloudFront API 버전을 사용하고 있는지 확인하려면 어떻게 해야하나요?

2분 분량
0

CloudFront의 대체 도메인 이름(CNAME) 검증 프로세스를 지원하지 않는 이전 Amazon CloudFront API 버전을 사용하고 있는지 알고 싶습니다. 그리고 이러한 API를 호출하는 애플리케이션을 사전에 업데이트하고 싶습니다.

해결 방법

AWS CloudTrail 로그 및 Amazon Athena 쿼리를 사용하여 CNAME 검증 프로세스를 지원하지 않는 이전 CloudFront API 버전을 사용하고 있는지 확인합니다.

1.    미국 동부(버지니아 북부)(us-east-1)에서 사용자 계정에 대해 CloudTrail 로깅을 활성화합니다.

참고: 이미 미국 동부(버지니아 북부)에서 CloudTrail 로깅을 활성화했고, 로그 교체를 설정하지 않은 경우 현재 로그의 하위 세트를 새 접두사로 복사할 수 있습니다. 그러면 전체 데이터 세트가 아닌, 로그의 하위 세트에서 Athena 쿼리를 실행할 수 있습니다. Athena 쿼리는 스캔한 데이터의 각 GB를 기준으로 요금이 청구됩니다. 즉, 비용을 줄이려면 지난 30일간의 로그만 검토하는 것이 가장 좋습니다.

2.    CloudTrail 로그가 Amazon Simple Storage Service(Amazon S3) 버킷에 기록된 후에 로그에 대한 테이블을 생성합니다.

3.    Athena 콘솔을 열고 [새 쿼리 1] 상자에 다음 쿼리를 추가하고 [쿼리 실행]을 선택합니다.

중요: $databaseName.$tableName을 데이터베이스 및 테이블의 이름으로 대체합니다.

SELECT apiversion, count() AS Total
FROM "default"."cloudtrail_logs_cloudtrail_awslogs_317431709534_6l2vpmtr_isengard_do_not_delete"
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd')
GROUP BY apiversion
ORDER BY Total Desc;

쿼리는 이전 CloudFront API를 사용하는 API 호출 수를 반환합니다. 쿼리에서 결과를 반환하지 않으면 계정은 이전 API 버전을 사용하는 것이 아닙니다.

이전 쿼리에서 결과를 반환한 경우 다음 추가 쿼리를 실행하여 각 개별 API 호출에 대한 자세한 정보를 확보합니다.

중요: $databaseName.$tableName을 데이터베이스 및 테이블의 이름으로 대체합니다.

SELECT useridentity.arn, sourceipaddress, eventname, useragent,eventtime
FROM "default"."cloudtrail_logs_cloudtrail_awslogs_317431709534_6l2vpmtr_isengard_do_not_delete"
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd');

이 쿼리는 AWS Identity and Access Management(IAM) ID, 소스 IP 주소, API 호출(이벤트), API 호출에 연결된 사용자 에이전트를 반환합니다. 이 정보를 사용하여 새 CloudFront API 버전으로 업데이트해야 하는 애플리케이션을 확인합니다.


AWS 공식
AWS 공식업데이트됨 일 년 전