여러 도커 컨테이너에 대한 IAM 보안 자격 증명 관리


11

일반 EC2 환경에서 다른 AWS 리소스에 대한 액세스 관리는 IAM 역할 및 자격 증명 (인스턴스 메타 데이터에서 자동으로 가져 오기)을 통해 매우 간단합니다. CloudFormation을 사용하면 인스턴스에 특정 애플리케이션 역할을 할당 할 때 즉시 역할을 생성 할 수 있습니다.

Docker로 마이그레이션하고 M 머신과 N 애플리케이션이 실행되는 M-to-N 배포를 원하는 경우 애플리케이션 별 AWS 리소스에 대한 액세스를 제한하려면 어떻게해야합니까? 인스턴스 메타 데이터는 호스트의 모든 사람이 액세스 할 수 있으므로 모든 응용 프로그램이 동일한 배포 환경에서 다른 모든 응용 프로그램의 데이터를 보거나 수정할 수있게해야합니다.

이러한 환경에서 실행되는 응용 프로그램 컨테이너에 보안 자격 증명을 제공하는 모범 사례는 무엇입니까?

답변:


5

이 프로젝트가 있습니다 : https://github.com/dump247/docker-ec2-metadata

인스턴스 메타 데이터 엔드 포인트에 대한 프록시 역할을하여 컨테이너에 특정한 역할을 리턴합니다. 전에는 사용하지 않았지만 설명하는 사용 사례를 해결하는 것 같습니다.


1

EC2가있는 AWS에서 역할 및 보안 그룹을 사용하여 최소 권한을 적용하는 것은 (아직 언급하지 않더라도) 특히 CloudFormation을 사용할 때 호스팅 애플리케이션에 안전한 환경을 제공하는 모범 사례입니다. 그러나 다중 테넌트 Docker 환경을 계층화하면 문제가 발생하기 시작합니다.

최소 권한을 적용하면서도 역할의 이점을 계속 누리려면 가장 좋은 대답은 다중 테넌트 접근 방식을 사용하지 않는 것입니다. 기본적으로 EC2 인스턴스와 애플리케이션간에 일대일 매핑을 사용하지만 클러스터 / ASG를 계속 사용할 수 있습니다. Docker는 여전히 응용 프로그램을 관리하고 배포하는 데 사용할 수있는 매우 유용하고 강력한 도구이지만 현재 컨테이너가 아닌 EC2 인스턴스에 역할이 적용됩니다. 이는 현재 각 애플리케이션마다 별도의 VM을 사용한다는 의미입니다.

다중 테넌트 역할이 역할보다 중요한 경우 역할을 사용하지 않고 다른 방법을 사용하여 AWS 자격 증명을 애플리케이션에 배포하는 것이 정답입니다.

불행히도 이러한 솔루션 중 어느 것도 바람직하지 않으며, 컨테이너의 인기가 높아짐에 따라 앞으로이 특정 문제가 AWS에서 해결 될 것으로 기대합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.