반응형
우리가 AWS Cli 명령어 등을 통해서 내 AWS 리소스에 접속해서 명령어를 날리는 것에는 여러 방법이 있다.
그 중 첫번째가 AWS의 IAM 사용자를 만든 후 Access Key, Secret Key를 통해서 해당 사용자를 서버에 등록한 후에 사용하는 방법이다.
두번째 방법으로는 EC2에 Role을 부여하여 Role에 부여된 정책을 토대로 명령을 내리는 방법이 있다
각 방법에는 어떤 장, 단점이 있으며 어떤 방법을 권장할까? 한번 확인 해 보자
✅ IAM 사용자를 선택해야 하는 경우
- 로컬 개발 환경이나 EC2 외부(온프레미스, 개인 PC)에서 AWS 리소스에 접근해야 하는 경우
- 개별 사용자가 AWS CLI, SDK, Terraform 등을 사용해야 하는 경우
- CI/CD 파이프라인에서 AWS 작업이 필요하고, EC2가 아닌 환경에서 실행되는 경우
✅ EC2 IAM Role을 선택해야 하는 경우
- EC2 내부에서 실행되는 애플리케이션이 AWS 리소스에 접근해야 하는 경우
- Access Key를 저장하는 것이 보안상 위험할 수 있는 경우
- EC2에 배포된 애플리케이션이 AWS SDK를 사용하여 S3, DynamoDB 등에 접근해야 하는 경우
- EC2 기반의 Jenkins, 배치 서버, 마이크로서비스에서 AWS API를 호출해야 하는 경우
위와 같이 개별 사용자가 CLI, SDK, Terraform 등을 사용하는 경우에는 IAM 사용자를 써야 하지만
그렇지 않은 경우 즉 애플리케이션이 AWS 리소스를 접속하는 경우에는 EC2 IAM Role을 사용하는 것이 좋다.
아무래도 Accesskey와 Secret Key가 노출될 수 있는 위험이 있기에 IAM 사용자를 쓰는 것은 지양해야 한다.
AWS를 사용하다 보면 이러한 역할, 보안 문제에 많이 직면하게 되는데 최대한 조심해서 사용하는 것이 안정적인 서비스를 유지하기 위해서도 필요하다.
반응형
'[AWS 기타]' 카테고리의 다른 글
[AWS] AWS Public IP 유료화 및 IPv4의 고갈 (0) | 2025.04.17 |
---|---|
[AWS] Elastic Load Balancing(ELB) 의 Draining Time이란? (0) | 2025.04.16 |
[AWS] Amazon Linux 3 부팅 디스크 용량 감소하는 방법 (0) | 2024.11.14 |
[AWS] VPC간 보안그룹 공유 기능 (0) | 2024.11.11 |
Amazon Linux 2023 시스템 로그 확인법 (0) | 2024.10.30 |