AWS IAM 액세스키 대신
IAM Role을 사용해야 하는 이유

안녕하세요. 클라우드 보안 사고 뉴스를 보면 가장 흔하게 나오는 원인이 무엇인지 아시나요?

‍

해킹 기술이 뛰어나서? 방화벽을 뚫어서? 아닙니다.

‍

바로 개발자가 실수로 Github에 올린 소스코드에 AWS Access Key가 그대로 적혀 있어서 털리는 경우가 압도적으로 많습니다.

‍

오늘은 AWS를 다루는 개발자/엔지니어라면 반드시 지켜야 할 제1원칙, “IAM User의 키를 쓰지 말고, IAM Role을 써야 하는 이유”를 정리해 드립니다.

‍

1. IAM User (액세스 키) : "집 열쇠"

IAM User를 생성하면 우리는 보통 AKIA...로 시작하는 Access Key ID와 Secret Access Key를 발급받습니다. 이것은 마치 **'집 열쇠(물리적 키)'**와 같습니다.

‍

특징: 한 번 발급받으면 내가 버리거나(비활성화) 자물쇠를 바꾸기(Rotation) 전까지는 영원히 유효합니다.

위험성:

실수로 코드를 Github에 올리면? 전 세계 해커들이 내 AWS 계정으로 비트코인 채굴기를 돌리는 데 1분도 안 걸립니다.

서버에 텍스트 파일(~/.aws/credentials)로 저장해 둬도, 서버가 해킹당하면 키도 같이 털립니다.

❌ 절대 하지 말아야 할 코드 (Bad Practice)

import boto3 s3 = boto3.client( 's3', aws_access_key_id='AKIAIOSFODNN7EXAMPLE', aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' )

‍

이 코드는 "내 신용카드 번호와 비밀번호"를 포스트잇에 적어서 모니터에 붙여두는 것과 같습니다.

‍

2. IAM Role (임시 자격 증명) : "호텔 카드키"

IAM Role은 특정 '사람'이 아니라, '자격(Role)' 그 자체입니다. 그리고 이 자격을 증명하는 방식은 STS(Security Token Service)를 통한 임시 토큰입니다. 마치 ‘호텔 카드키’와 같습니다.

‍

특징:

비밀번호나 액세스 키가 영구적으로 존재하지 않습니다.

필요할 때만 잠시 권한을 빌리고, 일정 시간(예: 1시간)이 지나면 자동으로 만료되어 쓸 수 없게 됩니다.

‍

안전성:

토큰이 탈취되더라도 금방 만료되므로 피해를 최소화할 수 있습니다.

‍

자동 로테이션:‍

AWS 내부적으로 키를 계속 바꿔주므로 관리자가 신경 쓸 필요가 없습니다.

‍

3. 해결책: "코드에서 키를 지워라"

그럼 코드를 어떻게 짜야 할까요? 정답은 **"아무것도 안 적는 것"**입니다.

✅ 올바른 코드 (Best Practice)

import boto3 # 괄호 안에 아무것도 넣지 마세요! s3 = boto3.client('s3') s3.list_buckets()

‍

"아니, 키를 안 넣었는데 인증을 어떻게 해요?"

바로 실행 환경(Compute Resource)에 권한을 부여하는 것입니다.

‍

EC2: IAM Role을 만들어서 EC2 인스턴스에 연결(Instance Profile)합니다.

Lambda: Lambda 실행 역할(Execution Role)을 함수에 연결합니다.

EKS: Service Account에 IAM Role을 연결합니다 (IRSA).

‍

이렇게 하면 AWS SDK(boto3)가 알아서 "어? 나 지금 EC2 위에서 돌고 있네? 연결된 Role이 있나?" 하고 찾아본 뒤, **임시 보안 자격 증명(Temporary Security Credentials)**을 자동으로 받아옵니다.

‍

4. 요약: 언제 무엇을 써야 할까?

마치며

"가장 안전한 키 관리는, 관리할 키를 만들지 않는 것입니다."

혹시 지금 프로젝트 소스코드 어딘가에 AWS_ACCESS_KEY 변수가 하드코딩 되어 있지는 않나요?

지금 당장 지우세요. 그리고 그 자리에 IAM Role을 채워 넣으세요. 그것이 클라우드 보안의 첫걸음입니다.

  • IAM User (액세스 키) : "집 열쇠"

  • IAM Role (임시 자격 증명) : "호텔 카드키"

  • 해결책: "코드에서 키를 지워라"

  • 요약: 언제 무엇을 써야 할까?

관련 키워드
클라우드
관련 키워드
클라우드
관련 콘텐츠
Insight
클라우드
AWS
Azure
Red Hat
Insight
eBook
클라우드
운영 최적화
No items found.
eBook
Tech Guide
클라우드
운영 최적화
AWS
Tech Guide