0. 개요
AWS STS(Security Token Service)는 임시 자격 증명을 발급하여 사용자가 제한된 시간 동안 특정 AWS 리소스에 접근할 수 있도록 하는 서비스입니다. 생소한 기능일 수 있지만 AWS 리소스 접근 시 활용 가능한 STS에 대해 알아보려 합니다.
1. AWS STS란?
AWS STS(Security Token Service)는 AWS 사용자가 필요할 때마다 한정된 시간 동안 유효한 자격 증명을 발급받아 리소스에 접근할 수 있도록 해주는 서비스입니다. IAM 사용자, 애플리케이션, 또는 외부 사용자 등 다양한 주체가 AWS 리소스에 접근할 수 있도록 지원합니다.
주요 특징
- 임시적 접근 허용: 영구 자격 증명 대신 일정 기간만 유효한 자격 증명을 발급받아 보안을 강화합니다.
- 동적 권한 관리: 필요할 때마다 권한을 부여하고, 사용이 끝나면 자격 증명이 만료되어 불필요한 접근을 막습니다.
2. AWS STS 사용 사례
STS는 다양한 상황에서 활용됩니다. 다음은 주요 사용 사례입니다.
- 임시 권한 부여
IAM 역할(Role)을 통해 권한을 제한적으로 부여할 수 있어 애플리케이션이 필요할 때만 특정 리소스에 접근하도록 할 수 있습니다. - 외부 애플리케이션의 제한된 접근
외부 서비스나 애플리케이션에 권한을 주기 위해 STS의 임시 자격 증명을 사용하면 계정 내 중요한 리소스를 안전하게 관리할 수 있습니다. - 멀티 팩터 인증(MFA) 사용
보안을 더욱 강화하기 위해 MFA를 요구할 때, STS를 통해 MFA를 통과한 사용자에게 임시 자격 증명을 발급하여 민감한 리소스에 접근할 수 있도록 할 수 있습니다. - 연합(Federation) 액세스 제공
SAML이나 웹 연합을 통해 외부 아이덴티티 제공자를 사용하는 사용자에게 임시 자격 증명을 발급하여 AWS 리소스에 접근하게 할 수 있습니다.
3. STS API 메서드 종류
AWS STS에서는 다양한 메서드를 통해 임시 자격 증명을 요청할 수 있습니다. 주요 메서드는 다음과 같습니다.
- AssumeRole
다른 AWS 계정이나 역할에 접근할 때 사용됩니다. AssumeRole은 특정 IAM 역할을 가정하여 임시 자격 증명을 발급합니다. 예를 들어, prod-access 역할을 가정해 프로덕션 환경에 접근할 수 있도록 설정할 수 있습니다. - GetSessionToken
AWS 계정 내 IAM 사용자가 멀티 팩터 인증(MFA)을 활성화한 후, 임시 자격 증명을 발급받을 수 있습니다. GetSessionToken은 API 호출 시 세션 토큰을 포함해야 유효한 요청으로 인정됩니다. - AssumeRoleWithSAML
SAML(Secure Assertion Markup Language)로 인증한 사용자에게 임시 자격 증명을 발급할 때 사용합니다. 주로 엔터프라이즈 환경에서 연합 인증을 사용할 때 유용합니다. - AssumeRoleWithWebIdentity
웹 애플리케이션이나 모바일 애플리케이션이 Facebook, Google, Amazon 같은 외부 인증 제공자를 통해 로그인한 사용자를 AWS에서 인증할 때 사용됩니다.
사용 예시 (AWS CLI)
aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name "session-name"
위 명령어를 통해 example-role 역할을 가정하여 임시 자격 증명을 발급받을 수 있습니다. 이를 통해 특정 IAM 역할에 부여된 권한으로 AWS 리소스에 접근할 수 있습니다.
4. AWS STS를 활용한 보안 강화 방법
STS의 임시 자격 증명은 보안을 강화하기 위한 주요 수단으로 활용됩니다. 다음은 STS 활용 시의 보안 모범 사례입니다.
- 최소 권한 원칙(Principle of Least Privilege)
필요한 권한만 부여하여 임시 자격 증명을 발급받도록 설정합니다. 권한이 불필요하게 부여되지 않도록 하여 보안 위험을 최소화합니다. - 짧은 세션 시간 설정
STS로 발급받은 임시 자격 증명의 유효 기간을 최대한 짧게 설정하여 보안을 강화합니다. 필요 시 새로 갱신하도록 설정하여 리소스에 대한 불필요한 접근을 방지합니다. - 멀티 팩터 인증(MFA) 설정
민감한 리소스에 접근할 때는 멀티 팩터 인증을 요구하도록 설정하여 인증 수준을 높일 수 있습니다.
5. AWS STS 와 Region
STS 는 리전 별로 활성화 설정이 가능합니다.
Console Home -> IAM -> Account Settings 이동 후,
하단으로 스크롤 하면 Endpoints 영역에 지역 별 STS 활성화 여부를 확인할 수 있습니다.
Global Endpoint 로 US East가 Always Active 된걸 볼 수 있는데 비용이나 IAM 관련 기능들은 글로벌 엔드포인트로 [미국 동부 (us-east-1)] 로 지정되어있기 때문에 항상 활성화 된 상태로 유지됩니다.
사용하지 않는 경우에는 비활성화를 해두는것도 좋은 방안이라 생각됩니다.
6. 결론
AWS STS(Security Token Service)는 안전한 AWS 리소스 접근을 위해 필수적인 서비스입니다. 필요할 때마다 임시 자격 증명을 발급하고, 권한을 제한하여 보안을 강화할 수 있습니다. IAM 역할, 외부 사용자 접근 제어, 연합 인증 등 다양한 상황에서 STS를 활용하여 보안을 강화할 수 있습니다.
'DEV > Cloud' 카테고리의 다른 글
[AWS] IAM, IAM Identity Center, AWS Organizations (0) | 2024.11.24 |
---|---|
[NCP] SSL VPN (1) | 2024.11.23 |
[AWS] AWS GuardDuty 알아보기. (1) | 2024.11.13 |
[AWS] RDS SSL/TLS Certificate 교체 이슈 (0) | 2024.08.19 |