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를 사용하여 요청에 서명합니다.
SSM(SystemCenter Session Manager) 콘솔이 닫힌 경우 재접속 후에 IAM 자격을 다시 입력해 줍니다.
sed 's/us-west-2/ap-northeast-2/' /home/ssm-user/signSigV4.py
cd /home/ssm-user/
python3 ./lattice_sigv4_sample/signSigV4.py https://${reservation_svc_dns} POST
python3 ./lattice_sigv4_sample/signSigV4.py https://${reservation_svc_dns} GET
아래와 같은 결과를 확인 할 수 있습니다.
$ python3 signSigV4.py https://reservation-09bb2a1b2bc13ecc9.7d67968.vpc-lattice-svcs.us-west-2.on.aws POST
<html>
<head>
<title>Hello From Lattice Reservations!</title>
<style>
html, body {
margin: 0; padding: 0;
font-family: arial; font-weight: 700; font-size: 3em;
text-align: center;
}
</style>
</head>
<body>
<p>Hello From Lattice Reservations!</p>
</body>
</html>
sh-4.2$ python3 signSigV4.py https://reservation-09bb2a1b2bc13ecc9.7d67968.vpc-lattice-svcs.us-west-2.on.aws GET
<html>
<head>
<title>Hello From Lattice Reservations!</title>
<style>
html, body {
margin: 0; padding: 0;
font-family: arial; font-weight: 700; font-size: 3em;
text-align: center;
}
</style>
</head>
<body>
<p>Hello From Lattice Reservations!</p>
</body>
</html>
GET만 허용하거나 POST만 허용하도록 인증 정책을 수정하면 더 자세히 알아볼 수 있습니다. 예를 들어 아래 인증 정책은 Python 프로그램의 POST만 허용합니다.