AWS EC2 사용자 데이터 암호화
사용자의 암호를 포함하는 입력을 받아 EC2 인스턴스에 전달하는 사용 사례가 있습니다. Ec2 인스턴스에서 URL에 도달했습니다.http://169.254.169.254/latest/user-data/ 사용자 데이터를 얻고 적절한 암호를 설정하십시오.
문제는 사용자 데이터가 AWS CLI 도구에 표시된다는 것입니다.
aws ec2 describe-instance-attribute --instance-id --attribute userData --output text --query "UserData.Value" | base64 --decode
이는 엄청난 보안 위험을 초래합니다.
민감한 / 비밀 데이터를 보내는 가장 좋은 방법은 무엇입니까?
로컬 인스턴스에 프라이빗 키를 생성하고 EC2에 퍼블릭 키를 생성하는 키 쌍을 생성 해 보았습니다. PowerShell을 사용하여 암호화 / 복호화하고 EC2에서 다시 가져 오는 올바른 방법은 무엇입니까?
답변
제안 된 접근 방식은 외부 소스에 비밀을 저장하는 것입니다.
AWS에는 Secrets Manager 라는 비밀 을 저장하는 서비스가 있습니다. 이 서비스를 사용하면 인스턴스가 사용자 데이터에서 액세스해야하는 비밀이 포함 된 비밀을 만들 수 있습니다. 그런 다음 AWS CLI를 통해 보안 값을 얻을 수있는 권한이있는 IAM 역할을 인스턴스에 부여합니다 .
또는 AWS SSM Parameter Store 서비스를 사용하여 암호를 SecureString 유형 으로 저장할 수도 있습니다. 이는 AWS CLI를 통해 비밀 을 검색 한 다음 스크립트에서 사용하는 비밀 관리자와 유사하게 작동 합니다.
AWS 솔루션에 암호를 저장하지 않으려는 경우 유사한 기능을 제공하는 Hashicorp Vault 와 같은 타사 솔루션도 있습니다.