SSM Agent를 통한 루트 수준 명령에 대한 액세스 제한
AWS Systems Manager 에이전트(SSM Agent)는 루트 권한(Linux) 또는 SYSTEM 권한(Windows Server)을 사용하여 하이브리드 및 멀티클라우드 환경에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스와 기타 시스템 유형에서 실행됩니다. 이 경우 시스템 액세스 권한이 최고 수준이기 때문에 SSM Agent로 명령을 보낼 권한이 부여된 신뢰할 수 있는 엔터티는 모두 루트 권한이나 시스템 권한을 가지고 있습니다. (AWS에서 AWS의 작업을 수행하고 리소스에 액세스할 수 있는 신뢰할 수 있는 엔터티를 보안 주체라고 합니다. 보안 주체는 AWS 계정 루트 사용자, 사용자 또는 역할일 수 있습니다.)
보안 주체가 SSM Agent에 권한이 부여된 Systems Manager 명령을 보내기 위해서는 이 수준의 액세스 권한이 필요하지만 SSM Agent의 잠재적 취약성을 이용함으로써 이 보안 주체가 악성 코드를 실행하게 될 가능성도 있습니다.
특히 SendCommand 및 StartSession 명령을 실행하는 권한은 신중하게 제한해야 합니다. 처음에는 해당 조직에서 엄선된 보안 주체에게만 각 명령에 대한 권한을 부여하는 것이 좋습니다. 단, 보안 주체가 명령을 실행할 수 있는 관리형 노드를 제한함으로써 보안 태세를 더욱 강화할 것을 권장합니다. 그러려면 해당 보안 주체에게 IAM 정책을 할당하면 됩니다. 해당 사용자가 특정한 태그 또는 태그 조합이 지정된 관리형 노드에서만 명령을 실행할 수 있도록 제한하는 조건을 IAM 정책에 포함시킬 수 있습니다.
예를 들면, 테스트용과 프로덕션용으로 하나씩 2개의 서버 플릿이 있을 수 있습니다. 하급 엔지니어에게 적용되는 IAM 정책에서는 ssm:resourceTag/testServer
태그가 있는 인스턴스에서만 명령을 실행할 수 있게 지정합니다. 그러나 모든 인스턴스에 액세스할 수 있는 소수의 상급 엔지니어 그룹에는 ssm:resourceTag/testServer
및 ssm:resourceTag/productionServer
태그가 둘 다 있는 인스턴스에 대한 액세스 권한을 부여합니다.
이 방식을 이용하면 하급 엔지니어가 프로덕션 인스턴스에서 명령을 실행하려고 해도 이들에게 할당된 IAM 정책이 ssm:resourceTag/productionServer
태그가 있는 인스턴스에 대한 명시적 액세스 권한을 부여하지 않기 때문에 액세스가 거부될 것입니다.
자세한 내용 및 예제는 다음 항목을 참조하십시오.