4. AWS SigV4

Update : 2024.06.07

AWS SigV4를 사용하여 VPC Lattice 서비스에 대한 Request에 서명하여 Service에 프로그래밍 방식으로 액세스할 수 있습니다. 이 단계에서는 AWS SigV4를 사용하여 superappsvcnetwork의 예약 서비스에 대한 요청에 서명하는 샘플 Python 코드를 사용하여 이를 수행하는 방법을 살펴보겠습니다.

Step1. Access 정책 구성

"VPC Lattice" - "Services" 의 reservation 은 선택합니다.

"reservation service" 의 "Access" - "Edit access settings"를 선택합니다.

Access 설정 편집 화면에서 "AWS IAM"을 선택한 다음 정책 템플릿 적용 DropDown에서 "Allow only authenticated access"을 선택한 다음 "Save Change"를 클릭합니다. 동일한 화면에서 정책을 검토할 수 있습니다. “StringNotEqualsIgnoreCase”를 “aws PrincipalType” “anonymous”와 일치시키는 조건문을 사용하여 인증되지 않은 액세스 요청을 거부합니다.

Step2. 시험 구성

LatticeWorkshop InstanceClient1 또는 LatticeWorkshop InstanceClient2에 로그인하고 Python 샘플코드를 실행합니다. 이 프로그램은 2개의 인수를 사용합니다.

  • 호출되는 서비스의 URL

  • HTTP Methon (GET 또는 POST)

이후 다음 botocore 라이브러리로 AWS SigV4를 사용하여 요청에 서명합니다.

  • "reservation-service-dns-name"은 1.사전준비 단계 에서 복사해 둔 reservation 서비스의 도메인 이름 변경합니다.

SSM(SystemCenter Session Manager) 콘솔이 닫힌 경우 재접속 후에 IAM 자격을 다시 입력해 줍니다.

InstanceClient1 또는 2 콘솔에서 아래와 같은 명령어를 수행합니다.

아래와 같은 결과를 확인 할 수 있습니다.

GET만 허용하거나 POST만 허용하도록 인증 정책을 수정하면 더 자세히 알아볼 수 있습니다. 예를 들어 아래 인증 정책은 Python 프로그램의 POST만 허용합니다.

더 상세한 Auth Policy는 User Guide - Auth Policyarrow-up-right 를 참조하십시요.

마지막 업데이트