AWS 자격증이 실무에서 쓰이나요? : AWS SA-Professional (SAP) Certification 3
Written by Minhyeok Cha
오랜만에 자격증 풀이 글로 뵙습니다. 거두절미하고 바로 문제 확인해보겠습니다.
문제 1.
회사에는 많은 AWS 계정이 있으며 AWS Organizations를 사용하여 모든 계정을 관리합니다. 솔루션 설계자는 회사가 여러 계정에서 공통 네트워크를 공유하는 데 사용할 수 있는 솔루션을 구현해야 합니다.
회사의 인프라 팀에는 VPC가 있는 전용 인프라 계정이 있습니다. 인프라 팀은 이 계정을 사용하여 네트워크를 관리해야 합니다. 개인 계정은 자신의 네트워크를 관리할 수 없습니다. 그러나 개별 계정은 서브넷 내에서 AWS 리소스를 생성할 수 있어야 합니다.
솔루션 설계자는 이러한 요구 사항을 충족하기 위해 어떤 작업 조합을 수행해야 합니까? (2개를 선택하세요.)
ⓐ 인프라 계정에 전송 게이트웨이를 생성합니다.
ⓑ AWS Organizations 마스터 계정에서 리소스 공유를 활성화합니다.
ⓒ AWS Organizations의 조직 내 각 AWS 계정에 VPC를 생성합니다. 인프라 계정의 VPC와 동일한 CIDR 범위 및 서브넷을 공유하도록 VPC를 구성합니다. 각 개별 계정의 VPC를 인프라 계정의 VPC와 피어링합니다.
ⓓ 인프라 계정의 AWS Resource Access Manager에서 리소스 공유를 생성합니다. 공유 네트워크를 사용할 특정 AWS Organizations OU를 선택합니다. 리소스 공유와 연결할 각 서브넷을 선택합니다.
ⓔ 인프라 계정의 AWS Resource Access Manager에서 리소스 공유를 생성합니다. 공유 네트워크를 사용할 특정 AWS Organizations OU를 선택합니다. 리소스 공유와 연결할 각 접두사 목록을 선택합니다.
풀이
이 문제는 여러 AWS 계정을 어떻게 관리하고 싶은지에 대한 니즈가 담겨있는 문제입니다.
위 사진을 예시로 임의의 계정 2개와 1개의 인프라 전용 계정이 있습니다. 이때 문제의 니즈는 다음과 같습니다.
이 계정을 사용하여 네트워크를 관리해야 합니다. 개인 계정은 자신의 네트워크를 관리할 수 없습니다.
개별 계정은 서브넷 내에서 AWS 리소스를 생성할 수 있어야 합니다.
인프라 계정 자체에서는 네트워크 관리가 불가능하도록 설계되어 있기에 계정 1, 2에 대해 VPC 서브넷 리소스를 관리할 수 있도록 권한을 공유하는 것이 목적임을 알 수 있습니다.
A의 보기는 Transit Gateway를 생성하는 것인데 문제의 아키텍처를 보는 바와 같이 VPC는 한 계정에 하나만을 언급하고 있습니다. TG는 아시다시피 여러 개의 VPC를 묶어 사용되는 서비스이다 보니 A는 이 문제에는 적합하지 않습니다.
C는 각 계정에 동일한 환경을 구축하는 것은 공유하기 위한 작업이 아니기 때문에 패스입니다.
E는 문제의 니즈를 확인하면 접두사 목록이 아닌 서브넷을 공유하고 싶다고 나와 있기에 같은 문구인 D가 정답입니다.
그러므로 남은 B, D가 정답이며 AWS Resource Access Manager(RAM)에서 해결할 수 있는 부분입니다.
정답 : B, D
💡 B. AWS Organizations 마스터 계정에서 리소스 공유를 활성화합니다.
💡 D. 인프라 계정의 AWS Resource Access Manager에서 리소스 공유를 생성합니다. 공유 네트워크를 사용할 특정 AWS Organizations OU를 선택합니다. 리소스 공유와 연결할 각 서브넷을 선택합니다.
문제 2.
회사에서는 타사 SaaS(Software-as-a-Service) 애플리케이션을 사용하려고 합니다. 타사 SaaS 애플리케이션은 여러 API 호출을 통해 사용됩니다. 타사 SaaS 애플리케이션도 VPC 내부의 AWS에서 실행됩니다.
회사는 VPC 내부에서 타사 SaaS 애플리케이션을 사용합니다. 회사에는 인터넷을 통과하지 않는 개인 연결의 사용을 의무화하는 내부 보안 정책이 있습니다. 회사 VPC에서 실행되는 리소스는 회사 VPC 외부에서 액세스할 수 없습니다. 모든 권한은 최소 권한의 원칙을 준수해야 합니다.
이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
ⓐ AWS PrivateLink 인터페이스 VPC 엔드포인트를 생성합니다. 이 끝점을 타사 SaaS 애플리케이션이 제공하는 끝점 서비스에 연결합니다. 엔드포인트에 대한 액세스를 제한하려면 보안 그룹을 생성하십시오. 보안 그룹을 엔드포인트와 연결합니다.
ⓑ 타사 SaaS 애플리케이션과 회사 VPC 간에 AWS Site-to-Site VPN 연결을 생성합니다. VPN 터널 전반에 걸쳐 액세스를 제한하도록 네트워크 ACL을 구성합니다.
ⓒ 피어링 연결에 필요한 경로를 추가하여 타사 SaaS 애플리케이션과 회사 VPUpdate 라우팅 테이블 간에 VPC 피어링 연결을 생성합니다.
ⓓ AWS PrivateLink 엔드포인트 서비스를 생성합니다. 타사 SaaS 공급자에게 이 엔드포인트 서비스에 대한 인터페이스 VPC 엔드포인트를 생성하도록 요청하세요. 타사 SaaS 공급자의 특정 계정에 엔드포인트 서비스에 대한 권한을 부여합니다.
풀이
문제에 보면 “인터넷을 통과하지 않는” 이 들어가 있기 때문에 PrivateLink가 들어가는 문제라 B, C는 제외하고 들어가겠습니다.
2번 문제는 자세히 보면 관점이 제공자가 아닌 소비자 시점에서의 컨설팅하므로 정답은 A입니다. D의 엔드포인드 서비스에 대한 계정 권한 부여는 제공자가 해야 할 부분입니다.
정답 : A
위 풀이 과정대로 사용자와 제공자를 만들어야 하니 다음과 같은 아키텍처를 구성해 봤습니다.
이때 타사 SaaS 애플리케이션을 갖고 있는 Provider VPC 측에서 먼저 엔드포인트 서비스를 만들어야 합니다.
💡엔드포인트 서비스를 만들기 전에 이는 network, gateway LB를 지원합니다.
로드밸런서의 헬스체크는 정상으로 떠야지 아래 사진에 출력이 되며 본문은 사전에 NLB를 만들어 두어 진행했기 때문에 생성 과정은 패스하겠습니다.
1. 제공자 계정 - 엔드포인트 서비스 생성
2. 제공자 계정 - 소비자 IAM ARN 추가
3. 소비자 계정 - 제공자 계정에서 만든 엔드포인트 서비스 이름 기입 후 연결 요청 보내기
4. 제공자 계정 - 연결 요청 수락
5. 소비자 계정 - 상태를 확인
문제 3
보안 엔지니어는 기존 애플리케이션이 Amazon S3의 암호화된 파일에서 MySQL용 Amazon RDS 데이터베이스에 대한 자격 증명을 검색한다는 사실을 확인했습니다. 애플리케이션의 다음 버전에서 보안 엔지니어는 보안을 강화하기 위해 다음과 같은 애플리케이션 설계 변경을 구현하려고 합니다.
데이터베이스는 안전한 AWS 관리형 서비스에 저장된 무작위로 생성된 강력한 암호를 사용해야 합니다.
애플리케이션 리소스는 AWS CloudFormation을 통해 배포되어야 합니다.
애플리케이션은 90일마다 데이터베이스에 대한 자격 증명을 교체해야 합니다.
솔루션 설계자는 애플리케이션을 배포하기 위해 CloudFormation 템플릿을 생성합니다.
CloudFormation 템플릿에 지정된 리소스는 최소한의 운영 오버헤드로 보안 엔지니어의 요구 사항을 충족합니까?
ⓐAWS Secrets Manager를 사용하여 데이터베이스 비밀번호를 비밀 리소스로 생성합니다. 데이터베이스 암호를 교체하기 위한 AWS Lambda 함수 리소스를 생성합니다. 90일마다 데이터베이스 암호를 교체하려면 Secrets Manager RotationSchedule 리소스를 지정합니다.
ⓑ AWS Systems Manager Parameter Store를 사용하여 SecureString 매개변수 유형으로 데이터베이스 비밀번호를 생성합니다. 데이터베이스 암호를 교체하기 위한 AWS Lambda 함수 리소스를 생성합니다. 90일마다 데이터베이스 암호를 교체하려면 Parameter Store RotationSchedule 리소스를 지정하십시오.
ⓒ AWS Secrets Manager를 사용하여 데이터베이스 비밀번호를 비밀 리소스로 생성합니다. 데이터베이스 암호를 교체하기 위한 AWS Lambda 함수 리소스를 생성합니다. 90일마다 Lambda 함수 암호 교체를 트리거하는 Amazon EventBridge 예약 규칙 리소스를 생성합니다.
ⓓ AWS Systems Manager Parameter Store를 사용하여 SecureString 매개변수 유형으로 데이터베이스 비밀번호를 생성합니다. 90일마다 데이터베이스 암호를 자동으로 교체하도록 AWS AppSync DataSource 리소스를 지정합니다.
풀이
이 문제는 AWS의 암호화 키-벨류에 대한 매니지드 서비스를 찾고 있는 문제입니다. 보기를 보시면 AWS Secrets Manager과 AWS Systems Manager Parameter Store가 있으며 마찬가지로 둘 다 키-벨류를 보관하는 서비스입니다.
각 서비스에 대해 알아야 문제를 풀 수 있지만 여타 다른 문제와 동일하게 문제의 고객 니즈를 먼저 확인해 보면
데이터베이스는 안전한 AWS 관리형 서비스에 저장된 무작위로 생성된 강력한 암호를 사용해야 합니다.
애플리케이션 리소스는 AWS CloudFormation을 통해 배포되어야 합니다.
애플리케이션은 90일마다 데이터베이스에 대한 자격 증명을 교체해야 합니다.
솔루션 설계자는 애플리케이션을 배포하기 위해 CloudFormation 템플릿을 생성합니다.
여기서 주기적으로 자격 증명을 교체하는 기능은 AWS Secrets Manager의 기능이며 추가로 Cloudformation에서도 지원하지 않는 리소스를 사용하고 있기 떄문에 B, D는 제외입니다.
💡 Parameter Store RotationSchedule 리소스는 존재하지 않으며 문서 확인 결과 AWS Secrets Manager에서 "RotationSchedule"를 확인할 수 있습니다.
💡 AWS CloudFormation은 현재 매개변수 유형 생성을 지원하지 않습니다.
그렇다면 남은 A와 C에서 확인해야 하는데 이 부분도 결국 교체 주기를 어떻게 트리거하는지에 대한 문제인데 굳이 Amazon EventBridge를 사용하지 않아도 자체 교체 기능이 있기 때문에 정답은 A가 되겠습니다.
정답 : A
AWS Secrets Manager의 교체 주기
💡 요즘 IaC메타에는 범용성이 좋아야 하기 때문에 CloudFormation은 잘 사용하지 않습니다. 그러나 AWS 시험에 기습 CloudFormation 문제가 나올 경우를 대비하여 넣어봤습니다.
마무리
오늘 풀어본 AWS SA 자격증 문제가 여러분에게 도움이 되었길 바랍니다. 문제 풀이에 대해 궁금하다거나 틀린 부분이 있는 경우, 혹은 추가적인 질문이 있다면 언제든지 partner@smileshark.kr로 연락 주시기 바랍니다.
Comments