ITPE metacog/Cloud metacog

[AWS SAP] Lambda function 보안성 확보와 부적절한 접근 방지

잘 배우고, 잘 익히기 2021. 4. 4. 09:59

Req)

보안감사를 서비스팀의 애플리케이션에 대해 진행하는 동안 솔루션즈 아키텍트는 RDS DB에 대한 username/password와 IAM 사용자 자격 증명(user credentials)이 AWS Lambda function 코드에서 볼 수 있다는 것을 발견합니다. 

Lambda function은 usrename/passwd를 DB쿼리에 사용하고 있고, IAM credentials를 AWS서비스 호출용으로 개별 관리 계정에서 사용하고 있습니다. 

솔루션즈 아키텍트는 그 credentials가 부적절한 접근 권한을 Lambda 코드를 보는 아무나에게나 부여할 수 있다는 것이 걱정됩니다. 관리 계정과 서비스팀의 계정은 분리된 OUs(Organizations organizational units)에 속해 있습니다. 

어떤 변화의 조합으로 솔루션 아키텍트가 그 솔루션의 보안을 향상시킬 수 있을까요?

 

Sol) AWS Secrets Manager, SCP 

요구사항 솔루션
Lambda function 코드 상에 RDS DB 보안 취약점 방지 

AWS Secrets Manager 사용
 - AWS Secrets Manager에 저장된 credentials을 Lambda가사용하도록 설정
 - 저장된 자격증명에 대해 automatic rotation을 활성화
부적절한 접근 권한 방지 
- 관리 계정과 서비스팀의 계정은 분리된 OUs
SCP 사용
 - 관리계정 OU상에서 SCP 사용: IAM유저가 서비스팀 계정의 자원 접근 차단

참고 : Secrets Manager

Secrets Manager는 코드의 암호를 포함해 하드 코딩된 자격 증명을 Secrets Manager에서 프로그래밍 방식으로 보안 암호를 검색하도록 하는 API 호출로 바꿀 수 있습니다. 이렇게 하면 보안 암호가 코드에 더 이상 존재하지 않기 때문에 코드를 검사하는 누군가에 의해 보안 암호가 손상되지 않도록 방지할 수 있습니다. 또한 사용자가 지정된 일정에 따라 Secrets Manager가 자동으로 보안 암호를 교체하도록 구성할 수 있습니다. 따라서 단기 보안 암호로 장기 보안 암호를 교체할 수 있어 손상 위험이 크게 줄어듭니다.

 

참고 : SCP 

SCP를 사용하면 AWS Organizations 멤버 계정이 있는 개별 AWS 계정 또는 조직 단위(OU) 내의 계정 그룹에 대해 AWS 서비스에 대한 액세스를 허용하거나 거부할 수 있습니다.