설명
EC2의 애플리케이션이 AWS API를 호출해야 한다면 IAM 역할의 임시 자격 증명을 사용하는 것이 장기 키를 서버에 저장하는 것보다 관리하기 쉽습니다. CloudFormation의 IamInstanceProfile은 역할이 포함된 인스턴스 프로파일을 연결합니다. AWS API 접근이 필요 없는 인스턴스에 불필요한 권한을 부여할 필요는 없습니다.
잠재적 영향
필요한 자격 증명 경로가 없으면 API 호출이 실패하거나 애플리케이션이 장기 키에 의존할 수 있습니다. 서버에 보관한 키가 유출되면 해당 키의 권한이 악용될 수 있습니다.
해결 방법
EC2가 사용할 수 있는 신뢰 정책과 최소 권한 정책을 갖춘 역할을 만들고 인스턴스 프로파일로 연결하세요. 애플리케이션이 역할 자격 증명을 사용하는지 확인한 뒤 불필요한 장기 키를 제거하고 폐기하세요.
예시
AMI ID는 실제 리전에 있는 승인된 이미지로 바꾸세요. AppRole은 EC2 신뢰 정책과 필요한 권한을 갖춘 별도 역할 선언을 가리킵니다. 역할 정의는 생략했습니다.
변경 전
yaml
Resources:
AppServer:
Type: AWS::EC2::Instance
Properties:
InstanceType: t3.micro
ImageId: ami-1234567890abcdef0
인스턴스 프로파일을 연결하지 않은 구성입니다.
변경 후
yaml
Resources:
AppServer:
Type: AWS::EC2::Instance
Properties:
InstanceType: t3.micro
ImageId: ami-1234567890abcdef0
IamInstanceProfile: !Ref AppInstanceProfile
AppInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Roles:
- !Ref AppRole
프로파일을 통해 역할을 연결합니다. 애플리케이션이 사용하는 자격 증명 경로와 실제 API 권한도 확인하세요.