베하
비티시 보이즈 입니다!
오늘은 AWS의 인증프로토콜 awsSigv4와 애플리케이션에서의 인증 방식 JWT에 대해 알아보겠습니다!
AWS Signature Version 4 (SigV4)과 JSON Web Token (JWT)은 둘 다 인증 및 인가를 위한 프로토콜이지만, 목적과 사용 방식에서 차이가 있습니다.
AWS SigV4는 AWS 서비스와 상호 작용할 때 사용됩니다. 이 프로토콜은 AWS 자격 증명을 사용하여 요청 서명을 생성하고, 이 서명을 사용하여 AWS API에 대한 인증 및 인가를 수행합니다. 이는 일반적으로 서버 간 통신 또는 AWS CLI나 SDK를 사용하여 AWS 리소스를 관리할 때 사용됩니다.
그래서 AWS CLI를 이용하거나, Boto3 SDK를 이용하여 애플리케이션에서 AWS와 연동할 때 사용되는 인증 프로토콜이 바로 AWS SIgV4입니다!
다음은 SigV4의 동작 방식입니다.
1. 애플리케이션이 AWS 서비스에 요청 보내기 전에, 요청에 대한 서명(필수 정보)을 생성합니다.
2. AWS SigV4는 요청에 대한 서명을 생성하기 위해, AWS 자격 증명을 사용합니다. AWS 자격 증명은 AWS 계정 소유자나 관리자를 인증합니다.
3. 서명을 생성하려면, 요청의 일부인 권한 부여 정책, 서명 키, 액세스 키 및 일부 메타 데이터를 사용하여 서명 문자열을 생성해야 합니다.
4. 서명을 생성한 후, 이것은 요청의 헤더나 쿼리 문자열 매개 변수 중 하나로 추가됩니다.
5. 요청을 AWS 서비스에 보내면, 서비스는 요청에 대한 서명을 검증합니다.
6. 서명이 유효하고 권한이 부여된 경우, AWS 서비스는 요청을 처리합니다.
7. 만약 유효한 서명이 없거나 권한 부여 정책을 위반한 요청인 경우, AWS 서비스는 요청을 거부합니다.
그리고 IT하는분들은 많이 들어보셨을 JWT는 클라이언트와 서버 간의 웹 애플리케이션을 보호하기 위한 것 입니다.
JWT는 클라이언트에서 발급되며, 인증 서버에서 검증되게 됩니다.
JWT는 일반적으로 웹 애플리케이션 에서 로그인, 지원에 대한 접근 등에 사용되게 됩니다.
다음은 JWT의 동작 방식입니다.
1. 사용자가 로그인을 시도하면, 서버는 해당 사용자의 인증 정보를 확인하고, JWT를 생성합니다.
J2. WT는 세 가지 문자열로 구성되어 있습니다. 그 중 첫 번째 문자열은 Header, 두 번째 문자열은 Payload, 세 번째 문자열은 Signature 입니다.
3. Header에는 JWT가 어떤 알고리즘으로 서명되었는지와 타입이 포함되어 있습니다.
4. Payload에는 사용자의 정보와 애플리케이션에서 사용되는 추가 정보(예를 들어, 권한)가 포함됩니다.
5. 마지막으로 Signature에는 Header와 Payload를 조합하여 생성된 서명이 포함됩니다.
6. JWT를 사용하여 클라이언트는 서버에 요청을 보낼 때마다, HTTP 요청 헤더에 JWT를 포함시킵니다.
7. 서버는 JWT를 받아서 위조 여부와 유효기간을 확인한 후, 사용자에 대한 인증 및 인가를 수행합니다.
8. 만약 JWT가 위조되었거나 유효기간이 만료되었다면, 서버는 해당 요청에 대한 처리를 거부합니다.
비슷한점도 있고 다른점도 있는 두가지의 인증 방식 JWT, AWS SigV4에 대해 알아봤습니다!
이미지 출처 :
https://towardsaws.com/aws-sigv4-in-3-mins-c324d20f19cf
https://blog.miniorange.com/what-is-jwt-json-web-token-how-does-jwt-authentication-work/
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
AWS IAM과 리소스 기반 정책의 비교 (0) | 2023.08.18 |
---|---|
[AWS] RDS snapshot 공유 (0) | 2023.08.18 |
[AWS] AWS CodeArtifact (0) | 2023.08.18 |
[AWS] Amazon Linux AMI 시리즈 (0) | 2023.08.18 |
[AWS] AWS EKS Node Drain (0) | 2023.08.17 |
댓글