
현재 우리 환경에서는 ec2 인스턴스를 사용하고 있습니다.
자격 증명이 소스 코드에 노출되는 것을 방지하기 위해 우리는 IAM 역할을 사용하여 사용자, 애플리케이션 또는 서비스에 대한 액세스 권한을 위임합니다.
그러나 우리 환경에는 여러 온프레미스 인스턴스도 있습니다. EC2와 마찬가지로 IAM 역할도 사용할 수 있나요?
IAM 역할을 사용하여 온프레미스 인스턴스를 등록하는 CodeDeploy 지원을 알고 있지만 이런 방식으로 자격 증명을 얻기 위해 IAM 역할을 관리하는 것은 코드 배포 에이전트입니다.
그래서 내 질문은 다음과 같습니다.
CodeDeploy로 배포된 온프레미스 인스턴스의 애플리케이션은 어떻게 자격 증명을 얻습니까? 예를 들어 S3에서 객체를 가져옵니다...
EC2에서처럼 자격 증명을 얻기 위해 로컬 시스템과 애플리케이션에서도 IAM을 사용할 수 있습니까?
답변1
IAM 역할 자체를 수행할 수는 없지만 정확히 동일한 정책을 사용자에게 연결한 다음 해당 사용자에 대한 액세스 키 세트를 생성할 수 있습니다. 여기에서 AWS CLI 또는 기타 도구에 키를 제공하면 동일한 권한을 갖게 됩니다.
사용할 키에 대한 정책의 IP 범위를 화이트리스트에 추가하여 정책이 위반되는 경우(코드 유출/공개 git 커밋 등) 스택 외부에서 사용할 수 없도록 하는 것이 좋습니다.
답변2
IAM 서비스 역할은 IAM 서비스에만 적용됩니다!!
장기 IAM 사용자 액세스/비밀 키를 기반으로 임시 자격 증명을 얻는 옵션이 있습니다. 일반적인 용도는 회사 네트워크 내부의 분산 애플리케이션을 대신하여 임시 보안 자격 증명을 가져오는 프록시 애플리케이션입니다.
https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html
최대 36시간 동안 유효합니다. 자격 증명을 생성하고 그에 따라 로컬 시스템에 배포하도록 자동화할 수 있습니다.