IAM Roles Anywhere는 Public Key Infrastructure(PKI)에서 발급한 X.509 인증서를 사용하여 AWS 외부 워크로드(ex. 온프렘 서버)에 임시 AWS 자격 증명을 사용하도록 지원하는 서비스이다.
- AWS 외부에서 실행되는 워크로드가 AWS 리소스에 액세스할 수 있도록 허용한다.
- IAM 역할 및 정책을 사용하여 AWS 리소스에 액세스한다.
- AWS 외부 워크로드에서 AWS에 액세스하는 부담을 줄인다.
공식 문서: https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html
왜 IAM Roles Anywhere를 사용해야 하는가?
- 보안 (Secure): 임시 AWS 자격 증명을 획득한다. 장기 자격 증명 사용 방식에서 벗어난다.
- 운영 비용 및 복잡성 감소 (Reduce ops cost and complexity): 추가 비용이 없으며, 기존 워크로드의 리팩토링이 필요하지 않다.
- 어디서나 AWS 서비스 사용 (Use AWS Services, anywhere): 온프레미스, 하이브리드 클라우드 환경 등 다양한 위치에서 사용 가능하다.
IAM Roles Anywhere 사용 사례

IAM Roles Anywhere 작동 방식
- Trust Anchor 생성: 발급 또는 루트 Certificate Authority(CA)를 업로드하여 AWS와 신뢰 관계를 설정한다.
- 역할 구성: IAM Roles Anywhere를 신뢰하도록 IAM 역할을 생성하거나 기존 역할을 수정한다.
- IAM Roles Anywhere 사용: 워크로드가 X.509 인증서를 사용하여 임시 자격 증명을 요청한다.
IAM Roles Anywhere가 PKI를 사용하는 방식
- CA는 워크로드에 X.509 인증서와 개인 키를 발급한다.
- 워크로드의 Credential Helper는 이 개인 키를 사용하여 AWS 요청에 서명
- IAM Roles Anywhere는 Trust Anchor로 등록된 CA의 인증서를 통해 이 서명을 검증하여 임시 자격 증명을 발급한다.
IAM Roles Anywhere 실제 동작
- 워크로드가 필요한 정보(Role ARN, Profile ARN, End-entity certificate, Trust Anchor)를 IAM Roles Anywhere로 전송
- IAM Roles Anywhere는 설정된 Trust Anchor와 Profile을 검증
- AWS STS를 통해 임시 자격 증명을 받아 워크로드에 반환
- 워크로드는 임시자격증명을 사용해 AWS 서비스에 접근한다.
IAM Roles Anywhere 구성 방법
1. AWS CA & Certificate 구성 (비용 발생) or Self-signed CA & Certificate 구성 (테스트 또는 내부용)
2.Trust Anchor 생성: 준비된 CA 인증서를 AWS에 업로드한다.
2-1. AWS Console -> IAM -> Roles -> Roles Anywhere -> 'Manage' -> 'Create a trust anchor'
2-2. Trust Anchor 이름 입력 -> AWS CA, Self-signed CA 둘 중 선택 -> 'Create a trust anchor'
3. Profile 생성: Trust Anchor와 연결될 IAM Role 등을 지정하는 Profile을 생성한다.
3-1. AWS Console -> IAM -> Roles -> Roles Anywhere -> 'Manage' -> 'Create a profile'
3-2. Profile 이름 입력 -> Role 선택 -> 'Create a profile'
4. CLI 설정: 'aws_signing_helper' 유틸리티를 사용하여 워크로드 환경의 CLI를 설정한다.
4-1. 원하는 서버에 aws_signing_helper 설치 및 인증서, private key 위치시키기
4-2. /home/${username}/.aws/ 경로에 config 설정
[profile ${profile_name}]
credential_process = /home/${username}/.aws/aws_signing_helper credential-process --certificate /home/${username}/.aws/${certificate} --private-key /home/${username}/.aws/${private_key_decrypted} --trust-anchor-arn ${trust_anchor_arn} --profile-arn ${profile_arn} --role-arn ${role_arn}
5. 확인 및 사용: 설정된 워크로드에서 AWS CLI 또는 SDK를 통해 IAM Roles Anywhere를 사용하여 AWS 리소스에 접근한다.
$ /home/${username}/.aws/aws_signing_helper credential-process --certificate /home/${username}/.aws/${certificate} --private-key /home/${username}/.aws/${private_key_decrypted} --trust-anchor-arn ${trust_anchor_arn} --profile-arn ${profile_arn} --role-arn ${role_arn}
커맨드 입력시 임시 토큰과 끝에 "Expiration": "날짜시간" 나오는 것을 확인한다. CLI 사용시 profile name으로 사용하면 된다. (ex. aws --profile ${profile_name} s3 ls ...)
'Cloud' 카테고리의 다른 글
| Istio 서비스 메쉬, kiali 대시보드 기초 실습 (0) | 2026.04.01 |
|---|---|
| AWS Cross-Account CloudWatch 메트릭 수집 (0) | 2026.02.25 |
| AWS IRSA 개념과 적용 방법 (0) | 2025.12.03 |