2. 서비스 네트워크 보호
Update : 2024.01.10
인증된 사용자만 허용하도록 서비스 네트워크에 인증된 사용자만 허용하는 인증 정책을 적용하여 서비스 네트워크에 대한 접근을 안전하게 보호하는 방법을 살펴보겠습니다.

1.Service Network 보호
Step1. Service network 구성
"VPC Lattice" -"Services Networks"를 클릭한 다음 오른쪽 창의 서비스 네트워크 "superappsvcnetwork"를 클릭합니다.

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

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

AWS IAM 선택
Apply policy template : Allow only authenticated access
Step2. 구성 시험
LatticeWorkshop InstanceClient1 또는 LatticeWorkshop InstanceClient2에 로그인하고 다음 명령을 실행하여 Reservation 서비스, Parking 서비스에 인증되지 않은 요청을 보냅니다.
curl https://${reservation_svc_dns}
curl http://${parking_svc_dns}/rates
curl http://${parking_svc_dns}/payments
아래와 같은 메세지가 출력되면서, 오류가 발생할 것입니다.
AccessDeniedException: User: anonymous is not authorized to perform: vpc-lattice-svcs:Invoke on resource: arn:aws:vpc-lattice:us-west-2:197153502150:service/svc-09bb2a1b2bc13ecc9/ because no network-based policy allows the vpc-lattice-svcs:Invoke action
AccessDeniedException: User: anonymous is not authorized to perform: vpc-lattice-svcs:Invoke on resource: arn:aws:vpc-lattice:us-west-2:197153502150:service/svc-0dcc67d057e4a5626/rates because no network-based policy allows the vpc-lattice-svcs:Invoke action
"1.사전준비" 에서 설정한 자격증명으로 다시 접근을 시도해 봅니다.
curl https://${reservation_svc_dns} --aws-sigv4 "aws:amz:ap-northeast-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
curl http://${parking_svc_dns}/rates --aws-sigv4 "aws:amz:ap-northeast-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
curl http://${parking_svc_dns}/payments --aws-sigv4 "aws:amz:ap-northeast-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
아래와 같은 결과 값을 정상적으로 출력합니다.
$ curl https://reservation-09bb2a1b2bc13ecc9.7d67968.vpc-lattice-svcs.us-west-2.on.aws --aws-sigv4 "aws:amz:us-west-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
<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>
$ curl http://parking-0dcc67d057e4a5626.7d67968.vpc-lattice-svcs.us-west-2.on.aws/rates --aws-sigv4 "aws:amz:us-west-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
Hello from "rates"
$ curl http://parking-0dcc67d057e4a5626.7d67968.vpc-lattice-svcs.us-west-2.on.aws/payments --aws-sigv4 "aws:amz:us-west-2:vpc-lattice-svcs" --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" --header "x-amz-security-token:$AWS_SESSION_TOKEN" --header "x-amz-content-sha256:UNSIGNED-PAYLOAD"
Hello from "payments"
Last updated