IT/AWS

[AWS Data Engineering] 4장 데이터 카탈로그화, 보안 및 거버넌스

vulter3653 2023. 2. 1. 01:24

<Data Engineering with AWS>의 4장 내용을 번역 및 요약 정리한 내용입니다.

 

https://www.amazon.com/Data-Engineering-AWS-Gareth-Eagar/dp/1800560419

 

Data Engineering with AWS: Learn how to design and build cloud-based data transformation pipelines using AWS: 9781800560413: Com

Gareth has worked in the IT industry for over 25 years, starting in South Africa, working in the United Kingdom for a few years, and is now based in the United States. In 2017, Gareth started working at Amazon Web Services (AWS) as a Solution Architect, wo

www.amazon.com


데이터를 다룰때, 아무리 좋은 데이터 파이프라인, 데이터 변환, 데이터 분석 툴이 갖춰졌다고 하더라도 데이터가 안전하게 유지되지 않는다면 가치가 떨어지게 됩니다. 또한 데이터가 카탈로그화 되어 있지 않다면 데이터를 사용하기 어렵습니다.

 

따라 이번에는 데이터 보안 및 거버넌스, 데이터 카탈로그화에 대해서 알아보도록 하겠습니다. 이번에 진행되는 주제는 다음과 같습니다. 

 

1.올바른 데이터 보안 및 거버넌스 얻기

2.데이터 늪을 피하기 위한 데이터 카탈로그화

3.AWS Glue/Lake Formation 데이터 카탈로그

4.데이터 암호화 및 보안 모니터링을 위한 AWS 서비스

5.자격 증명 및 권한 관리를 위한 AWS 서비스

1. 올바른 데이터 보안 및 거버넌스 얻기

데이터 보안 : 

조직이 데이터를 안전하게 저장하고 권한이 없는 사용자의 접속을 방지하기 위해 데이터를 보호하는 방법

 

데이터 거버넌스 :

1. 특정 데이터 세트에 대한 접근 권한이 필요한 사람만 해당 접근 권한을 갖도록 하는 것

2. 조직이 승인된 방식으로만 개인에 대한 데이터를 사용 및 처리하고 조직이 법에서 요구하는 대로 데이터 공개를 제공하도록 보장하는 데 사용

 

중요한 이유 : 

1. 법률을 준수 하지 않으면 조직에 벌금 등의 큰 비용이 발생할 수 있습니다.

2. 데이터 유출이 발생시, 조직의 명성과 브랜드에 큰 손상을 입힙니다. 고객의 신뢰를 잃으면 다시 신뢰를 얻기 매우 어렵기에 이는 조직에 중요합니다.

3. 점점 관련 법률이 늘어나고 있는데 이러한 법률을 준수하지 않으면 데이터 위반이 없더라도 처벌을 받을 수 있습니다.

 

1.1 일반적인 데이터 규제 요구 사항

데이터 보호에 대한 각 국가의 법률 :

●유럽 ​​연합의 일반 데이터 보호 규정(GDPR)

●기존 CCPA(California Consumer Privacy Act)와 미국 캘리포니아에서 최근 통과된 CPRA(California Privacy Rights Act)

●인도의 개인 데이터 보호법(PDP Bill)

●남아프리카공화국의 개인정보보호법(POPIA)

 

일반적으로 이러한 법률에는

1. 개인이 회사에 자신에 대한 어떤 데이터를 보유하고 있는지 알 권리를 포함합니다.

2. 조직이 보유한 개인 정보의 적절한 보호 보장 처리 중인 데이터에 대한 엄격한 통제를 시행합니다.

3. 때때로 조직 시스템에서 데이터 삭제를 요청할 수 있는 개인의 권리.

또한 위의 법률 외에도 특정 규정이 많은 특정 산업에는 더 많은 규정이 적용됨

● 개인의 의료 및 의료 데이터를 저장하는 조직에 적용되는 HIPAA(건강 보험 양도 및 책임에 관한 법률)

신용 카드 데이터를 저장하고 처리하는 조직에 적용되는 PCI DSS(결제 카드 산업 데이터 보안 표준)

 

AWS에서 실행되는 분석 워크로드에 대한 규정 준수 감사에 참여해야 하는 경우 AWS 규정 준수 보고서에 대한 온디맨드 액세스를 위한 셀프 서비스 포털인 AWS Artifact(https://aws.amazon.com/artifact/) 서비스에서 가능합니다.

1.2 데이터 보호에서의 핵심적인 개념

1.2.1. 개인 식별 정보(PII)

개인 식별 정보(PII)는 정보 자체가 개인을 식별할 수 있거나 다른 연결 가능한 정보와 결합하여 개인을 식별할 수 있는 정보를 의미합니다. 이름, 주민등록번호, IP 주소, 사진 또는 동영상과 같은 정보가 포함됩니다. 또한 개인의 특정 측면(예: 의학적 상태, 위치 또는 정치적 소속)에 대한 정보를 제공하는 데이터도 포함합니다.

1.2.2. 개인 정보

개인 정보는 개인 식별 정보의 정의와 유사하지만 그보다 더 넓은 것으로 간주됩니다.

 

유럽 연한의 GDPR에서의 개인 정보는 다음과 같이 정의됩니다.

 

"식별되거나 식별 가능한 자연인("데이터 주체")과 관련된 모든 정보; 식별 가능한 자연인은 특히 이름, 식별 번호, 위치와 같은 식별자를 참조하여 직간접적으로 식별될 수 있는 사람입니다. 데이터, 온라인 식별자 또는 해당 자연인의 신체적, 생리적, 유전적, 정신적, 경제적, 문화적 또는 사회적 정체성에 특정한 하나 이상의 요인에 대한 것입니다."

 

GDPR, 4조, 정의(https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1374-1-1).

 

1.2.3. 데이터 암호화

데이터를 인식할 수 없고 사용할 수 없게 만드는 방식으로 키를 사용하여 데이터를 인코딩하는 수학적 기법 입니다.

두 가지 유형의 중요한 암호화가 있으며 두 가지 모두 모든 데이터 및 시스템에 사용해야 합니다.

 

● 전송 중 데이터 암호화 :

데이터가 인터넷과 같은 장치 및 네트워크 시스템 간에 이동할 때 전송 중 데이터를 가로채지 못하게 데이터를 암호화하는 프로세스 입니다. 일반적으로 전송 계층 보안 (TLS, Transport Layer Security) 프로토콜 을 사용합니다.

 

● 저장 데이터 암호화 :

하드디스크와 같은 저장 매체에 기록된 데이터를 암호화하는 것 입니다. 일반적으로 전송 중인 데이터보다는 안전하지만, 해커들은 전송 중인 데이터보다 저장된 데이터의 가치가 높다고 여기기에 저장 데이터의 암호화가 필요합니다. 

1.2.4. 데이터 익명화

데이터 익명화는 개인 데이터가 비가역적으로 비식별화되는 방식으로 변경되어 개인 식별 정보 데이터를 식별할 수 없게 만드는 방법 입니다.

 

데이터 익명화 방법:

1. 개인 식별 정보 데이터를 무작위로 생성된 데이터로 교체

2. 몇 가지 속성을 제외한 나머지 속성을 삭제

1.2.5. 가명화된 데이터/토큰화

가명화된 데이터는 개인 데이터가 식별되지 않는 방식으로 변경된 데이터입니다. 이는 익명화된 데이터의 개념과 유사하지만 가명화된 데이터의 경우 원본 개인 식별 정보에 계속 접근할 수 있다는 큰 차이점이 있습니다.

 

데이터를 가명화 하는 방법으로는 크게 세 가지가 있습니다. 

 

1. 토큰화 (전체 이름을 임의로 생성된 토큰으로 변경) :

개인 식별 정보 데이터를 대체하는 고유한 무작위 토큰을 생성하도록 하는 방법입니다. 토큰화의 이점은 생성된 토큰이 무작위이며 원래 값에 대한 참조를 포함하지 않으며 토큰에서 원래 값을 찾아낼 방법이 없다는 것입니다. 하지만 토큰화가 이루어진 토큰에는 모든 개인 식별 정보 데이터가 포함되어 있기에 토큰을 적절하게 따라 보호되는 것이 중요합니다.

 

2. 교환 (전체 이름을 다른 이름으로 변경) 

 

3. 해싱(이름을 나타내는 해시로 변경) :

해싱은 여러 알고리즘을 사용하여 원래 값의 해시를 생성하는 방법입니다. 이렇게 생성된 해시는 특정 알고리즘에서만 항상 동일한 해시 값을 다시 반환시켜줍니다. 하지만 현재 대부분의 개인 정보는 해시 함수를 통해 이뤄지고 있기에 "해시 함수의 모든 입력값에 대한 결과를 표"로 정리한 레인보우 테이블을 통해 쉽게 식별이 가능해집니다. 따라 개인 식별 정보 데이터를 비식별화하는 가장 안전하지 않은 방법으로 간주됩니다.

 

1.2.6. 인증

인증은 청구된 ID가 해당 ID인지 확인하는 프로세스입니다. 인증은 사용자가 접근할 수 있는 대상을 지정하지 않지만 사용자가 말하는 해당 사용자의 신원을 확인하려고 시도합니다. 사용자의 비밀번호가 도용되었을 수도 있으며, 동일한 비밀번호가 있는 경우 누군가가 사칭하는데 사용이 가능할 수도 있는 듯 인증 시스템이 완벽하지는 않습니다. 그렇기에 멀티 팩터 인증(MFA)을 활성화하여, 로그인할 때 입력해야 하는 휴대폰 또는 물리적 MFA 디바이스에서 코드를 수신하고 ID를 추가하는 과정을 거쳐 안전하게 관리가 필요합니다.

 

연합 ID는 인증과 관련된 개념으로 사용자 인증에 대한 책임을 다른 시스템에서 수행하는 것을 의미합니다.  이러한 개념은 아래의 AWS IAM 시스템과 연관되어 있습니다.

1.2.7. 권한 부여

권한 부여는 검증된 ID를 기반으로 리소스에 대한 접근 권한을 부여하는 프로세스입니다.

(e.g. Google 계정에 로그인할 때, 해당 ID의 이메일에 접근할 수 있는 권한이 부여됩니다.)

 

데이터 분석 시스템의 경우, 인증을 통해 신원을 확인한 후에는 특정 데이터 세트에 액세스할 수 있는 권한을 부여하는 프로세스가 필요합니다.

(e.g. 데이터 레이크 관리자는 데이터 레이크의 적합 영역에 있는 데이터에 대한 액세스 권한을 부여할 수 있지만 원시 영역의 데이터에 대한 액세스 권한은 부여하지 않습니다.)

 

1.2.8. 전체 종합

데이터 보호 및 거버넌스 권한을 얻는 것은 저절로 이루어지지 않습니다. 데이터를 보호하고 관리하는 프로세스를 계획하고 신중하게 실행하는 것이 중요합니다. 따라 다음과 같은 과정을 거칩니다.

 

데이터 수집 후 첫 번째 처리 단계로 개인 식별 정보 데이터가 토큰으로 대체되는지, 토큰화 시스템이 안전한지 확인합니다.

● 잘 알려지고 신뢰할 수 있는 암호화 알고리즘으로 유휴 상태의 모든 데이터를 암호화하고 모든 연결이 안전한 암호화 터널을 사용하도록 합니다.(e.g. 시스템 간의 모든 통신에 TLS 프로토콜 사용).

● 분석 시스템에 대한 사용자 인증이 Active Directory와 같은 중앙 회사 ID 공급자를 통해 수행되는 통합 ID 구현를 구현합니다. (e.g. 사용자가 회사를 떠나고 Active Directory 계정이 종료되면 AWS의 분석 시스템에 대한 액세스가 종료되는 등)

● 사용자가 작업을 수행하는 데 필요한 최소 수준의 권한만 부여할 수 있는 최소 권한 액세스를 구현합니다.

 

데이터 엔지니어와 조직의 보안 및 거버넌스 팀은 협력하여, 분석 데이터를 처리하고 보호하는 방법에 대한 법적 요구 사항을 이해하고 분석 시스템 및 데이터에 대한 보안 정책을 정기적으로 검토하거나 감사하는 과정이 필요합니다.

2. 데이터 늪을 피하기 위한 데이터 카탈로그화

데이터를 올바르게 보호하고 현지 규정에서 요구하는 대로 처리하더라도 사용자가 분석 데이터 세트를 쉽게 찾고 해당 데이터 세트에 대해 이해하지 못하면 문제가 발생할 수 있습니다. 

 

데이터 레이크의 경우에는 아름다운 호수와 같이 깔끔한 형태로 사용하기 좋은 저장소라면, 데이터 늪의 경우에는 사용하기 힘든 형태로 데이터가 조각조각난 형태의 신뢰할 수 없는 데이터가 모인 저장소입니다. 하지만 주의하지 않으면 데이터 레이크가 데이터 늪으로 쉽게 변하게 됩니다. 따라 데이터 레이크가 데이터 늪으로 변하기 않게 하기 위한 주의가 필요합니다.

2.1 데이터 늪을 피하는 방법

신중한 사전 조치로 계획, 올바른 도구 및 정책을 사용하면 데이터 늪을 피하고 사용자에게 잘 구조화되고 탐색하기 쉬운 데이터 레이크를 제공할 수 있습니다.

 

데이터 늪을 피하는 것은 이론상 두 가지 중요한 사항으로 쉽게 할 수 있습니다.

 

● 데이터 레이크에 있는 모든 데이터 세트의 검색 가능한 레코드를 유지하는 데 사용할 수 있는 데이터 카탈로그

● 유용한 메타데이터가 데이터 카탈로그의 모든 항목에 추가되도록 하는 정책

 

보기에는 간단할 수 있지만, 구현 세부 사항이 중요하며 현실에서는 상황이 항상 단순하지 않습니다. 따라 모든 데이터 세트가 카탈로그화되고 정의된 메타데이터 세트가 항상 해당 데이터 세트와 함께 캡처되도록 잘 구성된 정책이 조직 내에 필요합니다.

2.1.1 데이터 카탈로그

데이터 카탈로그를 사용하면 비즈니스 사용자가 자신에게 유용할 수 있는 데이터 세트를 쉽게 찾고 메타데이터를 통해 데이터 세트 주변의 컨텍스트를 더 잘 이해할 수 있습니다.

대체로 데이터 카탈로그에는 비즈니스 카탈로그기술 카탈로그의 두 가지 유형이 있습니다.

 

기술 카탈로그 :

기술 카탈로그는 데이터 레이크의 데이터 파일을 데이터베이스 및 테이블 형식의 해당 파일의 논리적 표현에 매핑하는 카탈로그를 말합니다.  잘 알려진 기술 카탈로그로는 Hive Metastore가 있으며, 이는 Hive 테이블에 대한 테이블 스키마, 위치 및 파티션 정보 등의 기술 메타데이터를 저장하는 카탈로그입니다. 


기술 카탈로그를 사용하면 분석 서비스에서 데이터 세트의 스키마(e.g. 데이터 세트를 구성하는 파일의 물리적 위치, 데이터 세트의 열 및 각 열의 데이터 유형)를 이해할 수 있으며, 분석 서비스가 데이터에 대해 쿼리를 실행할 수 있게 됩니다.

 

비즈니스 카탈로그 :

기술 카탈로그와 달리 일부는 주로 비즈니스 카탈로그로 설계되었습니다. 비즈니스 카탈로그는 캡처할 데이터 세트에 대한 비즈니스 메타데이터를 활성화하고 검색하기 쉬운 카탈로그를 제공하는 데 중점을 둡니다.

 

비즈니스 카탈로그를 사용하여 다음에 대한 세부 정보를 캡처할 수 있습니다.

● 데이터세트의 소유자
● 데이터와 관련된 비즈니스 단위
● 데이터를 가져온 소스 시스템
● 데이터의 기밀성 분류(중요 정보, 기밀 정보, 개인 식별 정보 등)
● 데이터 업데이트 빈도(매시간, 매일 또는 매주)
● 이 데이터세트가 다른 데이터세트와 어떻게 관련되어 있는지 

많은 카탈로그 도구는 비즈니스 및 기술 카탈로그의 측면을 모두 제공합니다. 하지만 일반적으로 양쪽 측면 모두에 중점을 두기 보다는 한쪽 측면에 중점을 두는 특징이 있습니다.

 

예를 들어 Glue 데이터 카탈로그기본 물리적 파일 및 파티션에 대한 정보를 캡처하는 기술 카탈로그인 Hive Metastore 호환 카탈로그입니다. 그러나 Glue 카탈로그는 테이블에 대한 키/값을 캡처할 수 있으며 이를 사용하여 데이터 소유자, 테이블에 PII 데이터가 포함되어 있는지 여부 등을 기록할 수 있는 비즈니스 카탈로그의 측면을 모두 제공합니다.

 

또한 추가로 AWS는 Collibra Data Catalog 및 Informatica Enterprise Data Catalog 역시 지원합니다.

 

2.1.2 메타데이터 캡처를 위한 조직 정책

카탈로그는 데이터에 대한 기술 및 비즈니스 메타데이터를 캡처하는 기능을 제공하지만 각 데이터 세트에 대한 올바른 세부 정보가 캡처되도록 정책을 시행하는 것은 조직의 책임입니다.

기술 데이터가 데이터 카탈로그에 캡처되었지만 비즈니스 데이터 캡처를 시행하는 정책이 없는 경우 여전히 데이터 늪에 빠질 수 있습니다. 또한 데이터 카탈로그에 기술 데이터는 있지만 비즈니스 컨텍스트가 없는 수백 개의 데이터 세트가 있는 경우에도 사용자가 데이터에서 가치를 얻기가 어렵습니다.

 

그렇기에 정책을 통해 궁극적으로 사용자가 데이터 세트를 찾기 위해 검색할 수 있는 카탈로그를 갖고 사용자가 메타데이터를 검사하여 데이터의 비즈니스 컨텍스트를 이해할 수 있도록 해야 합니다.

 

3. AWS Glue/Lake Fomation 데이터 카탈로그화

 AWS Glue 카탈로그는 위의 카탈로그에서 말했듯이 키/값 태그를 사용하여 일부 비즈니스 속성을 캡처할 수 있는 기술 데이터 카탈로그입니다. 또한 AWS Lake Formation 서비스 역시 동일한 카탈로그에 대한 인터페이스를 지원합니다.

 

하지만 AWS Lake Formation 은 AWS Glue 보다 추가적인 기능을 제공해주는 차이점이 있습니다. 추가로 지원해주는 기능은 다음과 같습니다.

  • 열 수준에서 키/값 속성을 추가하는 기능 (AWS Glue를 사용하면 테이블 수준에서만 속성을 추가할 수 있음)
  • 데이터베이스, 테이블 및 열 수준에서 액세스 권한을 구성하는 기능

데이터 카탈로그는 데이터 레이크의 데이터로 작업하기 위해 다양한 분석 도구에서 참조할 수 있습니다. 

 

예를 들어 Amazon Athena의 경우, 데이터 카탈로그를 참조하여 사용자가 카탈로그의 데이터베이스 및 테이블에 대해 쿼리를 실행할 수 있도록 합니다. Athena는 카탈로그를 사용하여 데이터 레이크에서 데이터를 쿼리하는 데 필요한 다음 정보를 가져옵니다.

  • 기본 데이터 파일이 저장되는 Amazon S3 위치
  • 기본 파일의 파일 형식 유형을 나타내는 메타데이터(예: CSV 또는 Parquet)
  • 기본 데이터를 직렬화하는 데 사용해야 하는 직렬화 라이브러리의 세부 정보
  • 데이터 세트의 각 열에 대한 데이터 유형에 대한 정보를 제공하는 메타데이터
  • 데이터 세트에 사용되는 파티션에 대한 정보

데이터 엔지니어는 데이터 레이크에 추가된 모든 데이터 세트가 카탈로그화되고 적절한 메타데이터가 추가되도록 자동화를 구현하는 데 도움을 주는 것입니다.

 

따라 데이터 엔지니어는 새 데이터가 데이터 카탈로그에 자동으로 추가되도록 Glue 크롤러를 사용하여 새 데이터가 수집된 후 실행되는 워크플로 구축을 고려해야 하며, 새로운 데이터 엔지니어링 작업을 프로덕션으로 구매하는 경우 Glue API가 새 데이터의 세부 정보로 데이터 카탈로그를 업데이트하는 데 사용되는지 확인하기 위해 검사를 수행해야 합니다.

 

또한 자동화된 방법을 사용하여 새 데이터가 생성될 때마다 관련 메타데이터가 카탈로그에 추가되도록 해야 합니다.

 

메타데이터의 예시는 다음과 같습니다.

  • 데이터 소스
  • 데이터 소유자
  • 데이터 민감도 (공개 데이터, 일반 데이터, 민감 데이터, 기밀 데이터 , 개인 식별 데이터 등) 
  • 데이터 레이크 영역  (raw zone, transformed zone, enriched zone)
  • 비용 할당 태그(사업부 이름, 부서 등)

이러한 유형의 자동화를 적용하면 데이터 레이크가 데이터 늪이 되는 일 없이 데이터 레이크를 계속 구축할 수 있습니다.

4. 데이터 암호화 및 보안 모니터링을 위한 AWS 서비스

4.1 AWS Key Management Service (KMS)

AWS KMS 서비스는 AWS 에코시스템의 핵심 서비스로, 사용자가 여러 AWS 서비스에서 데이터 암호화를 쉽게 관리할 수 있도록 합니다.

 

대표적으로 다음과 같은 AWS 서비스에서 사용이 가능합니다.

  • Amazon AppFlow
  • Amazon Athena
  • Amazon EMR
  • Amazon Kinesis Data Streams/Kinesis Firehose/Kinesis Video Streams
  • Amazon Managed Streaming for Kafka (MSK)
  • Amazon Managed Workflows for Apache Airflow (MWAA)
  • Amazon Redshift
  • Amazon S3
  • AWS Data Migration Service (DMS)
  • AWS Glue/Glue DataBrew
  • AWS Lambda

호환되는 서비스의 전체 목록은 https://aws.amazon.com/kms/features/#AWS_Service_Integration에서 확인할 수 있습니다 .

 

기능 | AWS Key Management Service(KMS) | Amazon Web Services(AWS)

 

aws.amazon.com

 

데이터 암호화 및 암호 해독을 위해 키를 사용할 수 있는 권한을 사용자에게 부여할 수 있으며, AWS KMS 키의 모든 사용은 AWS CloudTrail 서비스에 기록됩니다. 이를 통해 조직은 데이터 암호화 및 암호 해독을 위한 키 사용을 쉽게 파악할 수 있게 됩니다.

 

또한 KMS 키를 삭제하면 해당 키로 암호화된 모든 데이터가 사실상 손실되며 암호를 해독할 수 없기 때문에, KMS 키를 신중하게 보호하고 KMS 키가 실수로 삭제되지 않도록 보호 조치를 취하는 것이 중요합니다.

 

그렇기에 KMS 키 삭제를 예약하고 키가 삭제되기 전에 7~30일의 대기 기간을 지정하는 것 역시 필요하며, 이 대기 기간 동안에는 키를 사용할 수 없고 누군가 키를 사용하려고 시도하면 알리도록 CloudWatch 경보를 구성할 수도 있습니다.

 

AWS Organizations를 사용하여 조직의 구성원으로 여러 AWS 계정을 관리하는 경우, Service Control Policy (SCP)을 생성하여 관리자를 포함한 모든 사용자가 하위 계정에서 KMS 키를 삭제하지 못하도록 하는 것도 가능합니다.

4.2 Amazon Macie

Amazon Macie 는 패턴 매칭 알고리즘으로 기계 학습을 사용하여 중요한 데이터를 검색하고 보호하는 관리형 서비스입니다. Amazon Macie는 Amazon S3 버킷에서 개인 식별 정보 데이터(e.g  이름, 주소, 신용 카드 번호 등)와 같은 민감한 데이터를 식별하고 토큰화를 하도록 이러한 민감한 데이터의 대해 관리자에게 경고하도록 구성할 수도 있습니다.

4.3 Amazon GuardDuty

Amazon GuardDuty 는 기계 학습을 사용하여 AWS 계정을 모니터링하고 악의적인 활동 및 무단 동작에 대한 사전 경고를 제공하는 지능형 위협 탐지 서비스입니다.  이는 AWS에서 데이터 분석과는 직접적인 관련이 없지만 AWS 계정을 보호하는데 큰 도움을 줍니다.

 

AWS GuardDuty는 다음을 포함하여 여러 AWS 생성 로그를 분석합니다.

  • CloudTrail S3 데이터 이벤트 (S3 객체에서 수행된 모든 작업의 ​​기록)
  • CloudTrail 관리 이벤트 (계정 내 모든 AWS API 사용 기록)
  • VPC 흐름 로그 (AWS VPC 내의 모든 네트워크 트래픽 기록)
  • DNS 로그 (계정 내 모든 DNS 요청 기록)

이러한 로그를 지속적으로 분석하여 비정상적인 액세스 패턴 또는 데이터 액세스를 식별하여, 잠재적인 문제를 사전에 경고하고 위협에 대한 대응을 자동화해줍니다.

5. 자격 증명 및 권한 관리를 위한 AWS 서비스

5.1 AWS Identity and Access Management (IAM) 서비스

AWS IAM 은AWS Console,AWSCLI (command-line interface) 및 AWSAPI (application programming interface) 호출 에 대한 인증 및 권한 부여를 모두 제공하는 서비스이며, Active Directory 또는 Okta와 같은 다른 디렉터리를 지원니다. 

 

AWS IAM 서비스에 대한 중요한 기본 개념에 대해 알아보겠습니다.

5.1.1 AWS IAM 자격 증명

  • AWS 계정 루트 사용자 : AWS 계정 루트 사용자는 AWS Management 콘솔에 로그인할 수 있으며 계정의 모든 리소스에 대한 전체 액세스 권한을 가집니다. 그렇기에 작업이 아닌 일상적인 용도로 사용하는 것이 바람직합니다.
  • IAM 사용자 : IAM 사용자는 루트 사용자가 생성하고 AWS 콘솔에 로그인하거나 CLI 명령을 실행하거나 API를 호출하는 데 사용할 수 있는 자격 증명입니다. IAM 사용자에게는 콘솔 액세스에 사용되는 ID와 비밀번호가 있으며 CLI나 API의 자격 증명을 인증하는데 연결된 액세스 키가 최대 2개까지 가능합니다.  그리고 IAM 정책을 IAM 사용자와 직접 연결할 수도 있지만 IAM 사용자 그룹의 일부로 만드는 것는 권장합니다.
  • IAM 사용자 그룹 : IAM 그룹은 여러 IAM 사용자와 연결할 수 있는 권한을 제공하는 데 사용됩니다. IAM 정책을 통해 IAM 그룹에 권한을 제공하면 해당 그룹의 모든 구성원이 해당 권한을 상속받습니다.
  • IAM 역할 : IAM 역할은 IAM 사용자와 유사합니다. 이는 IAM 사용자와는 달리 ID나 비밀번호가 없으며 직접 로그인하거나 IAM 역할로 식별할 수 없습니다. IAM 역할은 특정 AWS 리소스에 대한 권한을 제공하는데 사용됩니다.

AWS 리소스에 대한 액세스 권한을 부여하기 위해 IAM 정책 을 통해 IAM 사용자, IAM 그룹 또는 IAM 역할에 연결하여 특정 AWS 리소스에 대한 액세스 권한을 부여하거나 거부하고 혹은 제어할 수도 있습니다.

 

5.1.2 AWS IAM 자격 증명 기반 정책

자격 증명 기반 정책은 AWS 리소스에 대한 액세스 세부 정보를 지정하는 JSON 문서입니다. 이러한 정책은 AWS Management Console 내에서 구성하거나 직접 생성할 수 있습니다.

 

자격 증명 기반 정책에는 세가지 유형이 존재합니다.

  • AWS 관리형 정책 : AWS에서 생성 및 관리하고 일반적인 사용 사례에 대한 권한을 제공하는 정책입니다. 예를 들어 AdministratorAccess 관리형 정책은 AWS의 모든 서비스 및 리소스에 대한 전체 액세스 권한을 제공하는 반면 DatabaseAdministrator 정책은 AWS에서 데이터베이스를 설정, 구성 및 유지 관리할 수 있는 권한을 제공합니다.
  • 고객 관리형 정책 : AWS 리소스를 보다 정확하게 제어하기 위해 생성하고 관리하기 위해 사용하는 정책입니다. 예를 들어 정책을 생성하고 특정 S3 버킷 목록에 대한 액세스를 제공하고 해당 액세스가 하루 중 특정 시간 동안 또는 특정 IP 주소에 대해서만 유효하도록 제한하는 특정 IAM 사용자/그룹/역할에 연결할 수 있습니다.
  • 인라인 정책 : 특정 사용자, 그룹 또는 역할에 대해 직접 작성된 정책입니다. 이러한 정책은 사용자, 그룹 또는 역할에 직접 연결되므로 하나의 특정 엔터티에만 적용됩니다.

이에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서에서 확인 가능합니다. ( https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

 

What is IAM? - AWS Identity and Access Management

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

5.2 AWS Lake Formation을 사용하여 데이터 레이크 접근 관리

AWS Lake Formation은 데이터 레이크 설정 및 관리를 간소화하는 서비스입니다. Lake Formation 서비스과 IAM 서비스에서 다른 큰 부분은 JSON 기반 정책 문서를 통해 세분화된 액세스를 관리할 필요 없이 데이터 레이크 데이터베이스 및 테이블에 대한 접근 관리를 하는 기능입니다.

 

Lake Formation을 사용하면 데이터 레이크 관리자가 권한 관리를 위해 부여 및 취소라는 익숙한 개념을 사용하여 데이터 레이크 데이터베이스, 테이블 및 열에 대한 세분화된 권한을 부여할 수 있습니다. 

 

Lake Formation 권한 관리는 데이터 레이크 리소스에 대한 세분화된 액세스를 관리하는 데 유용한 또 다른 권한 계층이지만 IAM 권한과 함께 작동가능하며 IAM 권한을 대체하지 않습니다. 그렇기에 사용 방법으로는 IAM 정책에서 사용자에게 광범위한 권한을 적용한 다음 Lake Formation으로 세분화된 권한을 적용하는 것을 권장하고 있습니다.

5.2.1 Lake Formation 이전의 권한 관리

Lake Formation 출시 이전에는 모든 데이터 레이크 권한은 JSON으로 작성된 IAM 정책 문서를 사용하여 Amazon S3 수준에서 관리되었습니다. 이러한 정책은 다음과 같은 리소스의 액세스를 제어합니다.

  • Glue 데이터 카탈로그의 데이터 카탈로그 개체 (예: Glue 데이터베이스 및 테이블에 액세스할 수 있는 권한)
  • Amazon S3의 기본 물리적 스토리지 (예: Amazon S3 버킷의 Parquet 또는 CSV 파일)
  • 분석 서비스 (예: Amazon Athena 또는 AWS Glue)에 대한 액세스

예를 들어 IAM 정책은 카탈로그 개체를 읽을 수 있는 기능과 테이블을 검색할 수 있는 기능을 포함하여 여러 Glue 권한을 제공합니다. 그러나 정책의 리소스 섹션은 이러한 권한을 사용자가 액세스해야 하는 특정 데이터베이스 및 테이블로 제한합니다. 

 

S3 데이터에 권한을 제공하는 섹션 역시 정책에 따로 존재합니다. 그렇기에 사용자가 Glue 데이터 카탈로그에서 액세스해야 하는 각 테이블에 대해 카탈로그 객체에 대한 Glue 데이터 카탈로그 권한과 기본 파일에 대한 Amazon S3 권한이 모두 필요합니다.

 

또한 사용자가 Amazon Athena 서비스에 액세스할 수 있는 권한 역시 따로 지정해야 합니다.

5.2.2 AWS Lake Formation을 사용한 권한 관리

AWS Lake Formation을 사용하면 권한 관리가 변경되어 IAM 정책에서 Glue 카탈로그 객체에 대한 광범위한 액세스를 제공할 수 있고 세분화된 액세스는 AWS Lake Formation 권한을 통해 제어됩니다.

 

또한 Lake Formation을 사용하면 Lake Formation 서비스가 S3 데이터에 액세스하기 위해 호환되는 분석 서비스에 임시 자격 증명을 제공할 수 있으므로 데이터 레이크 사용자에게 기본 S3 객체에 대한 직접적인 권한을 부여할 필요가 없습니다.

하지만 Lake Formation 권한 액세스는 작성 시점에 다음 AWS 서비스를 포함하는 호환되는 분석 서비스에서만 작동한다는 점에 유의해야 합니다.

 

● Amazon Athena

● Amazon QuickSight

● Amazon EMR에서 실행되는 Apache Spark

● Amazon Redshift Spectrum

● AWS Glue

 

이러한 호환 서비스를 사용하는 경우 AWS Lake Formation은 데이터 레이크에 대한 권한을 관리하는 더 간단한 방법입니다. 하지만 모든 분석 엔진에 대한 서비스에 호환되지 않기에 모든 분석 엔진에 액세스 권한을 부여할 수 있는 IAM 정책 역시 필요합니다.