본문 바로가기
AWS

DevOps Day 31 (4.18) AWS_보안

by Jackykim 2023. 4. 20.

보안
AWS Certificate Manager : AWS 서비스 연결된 내부 리소스에 사용할 공인 사설 SSL/TLS(Secure Sockets Layer/전송 계층 보안) 인증서를 손쉽게 프로비저닝, 관리 배포할 있도록 지원하는 서비스입니다. 사이트의 자격 증명과 프라이빗 네트워크상에서 리소스의 자격 증명을 설정하는 사용됩니다.

 

ACM 사용 :
1. 사용할 TLS/SSL 인증서를 AWS 계정으로 요청하거나 가져옵니다.
2.
도메인 이름 시스템(DNS) 또는 이메일 검증을 통해 요청된 인증서의 도메인 소유권을 검증하여 인증서 발급을 완료합니다.
3. Elastic Load Balancing(ELB), Amazon CloudFront
등과 같은 다양한 AWS 서비스에서 새로 발급되거나 가져온 인증서를 사용합니다.

 

IAM
IAM 서비스는 AWS 내에서 자격 증명(Authentication)에 대해 지원하고 제어합니다. 대표적으로 User와 User Group 설정을 통해 AWS 계정에 대한 리소스 접근과 관리 권한을 다른 사람에게 부여하고, Role 설정을 통해 AWS 서비스 간 접근 권한을 부여할 수 있습니다.

 

IAM 이란?
AWS 계정을 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 단일 로그인 ID로 시작합니다. 이 자격 증명은 AWS 계정 루트 사용자라고 하며, 계정을 생성할 때 사용한 이메일 주소와 암호로 로그인하여 액세스합니다.

 

IAM 기능 :
AWS
계정에 대한 공유 액세스 : 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 있는 권한을 다른 사람에게 부여할 있습니다.

세분화된 권한 : 리소스에 따라 여러 사람에게 다양한 권한을 부여할 있습니다.

 

Amazon EC2에서 실행되는 애플리케이션을 위한 보안 AWS 리소스 액세스 : EC2 인스턴스에서 실행되는 애플리케이션의 경우 IAM 기능을 사용하여 자격 증명을 안전하게 제공할 있습니다. 이러한 자격 증명은 애플리케이션에 다른 AWS 리소스에 액세스할 있는 권한을 제공합니다.

 

멀티 팩터 인증(MFA) : 보안 강화를 위해 계정과 개별 사용자에게 2팩터 인증을 추가할 있습니다. MFA 사용할 경우 계정 소유자나 사용자가 계정 작업을 위해 암호나 액세스 키뿐 아니라 특별히 구성된 디바이스의 코드도 제공해야 합니다.

 

아이덴티티 페더레이션 : 기업 네트워크나 인터넷 자격 증명 공급자와 같은 다른 곳에 이미 암호가 있는 사용자에게 AWS 계정에 대한 임시 액세스 권한을 부여할 있습니다.

 

PCI DSS 준수 : IAM에서는 판매자 또는 서비스 공급자에 의한 신용카드 데이터의 처리, 저장 전송을 지원하며, Payment Card Industry(PCI) Data Security Standard(DSS) 준수를 검증받았습니다.

 

무료 사용 : AWS Identity and Access Management(IAM) AWS Security Token Service(AWS STS) 추가 비용 없이 AWS 계정에 제공되는 기능입니다.

 

IAM 액세스
AWS Management Console :
콘솔은 IAM AWS 리소스를 관리하기 위한 브라우저 기반 인터페이스입니다.

 

AWS 명령줄 도구 : AWS 명령줄 도구를 통해 시스템 명령줄에서 명령을 실행하여 IAM AWS 작업을 수행할 있습니다.

 

IAM 쿼리 API : 서비스로 직접 HTTPS 요청을 실행할 있는 IAM 쿼리 API 사용하여 프로그래밍 방식으로 IAM AWS 액세스할 있습니다.

 

IAM 자격 증명 :
IAM
사용자는 : 단일 개인 또는 애플리케이션에 대한 특정 권한을 가지고 있는 AWS 계정 자격 증명입니다.

IAM 사용자 그룹 : IAM 사용자 컬렉션을 지정하는 자격 증명입니다. 귀하는 그룹을 사용하여 로그인할 없습니다. 그룹을 사용하여 여러 사용자의 권한을 번에 지정할 있습니다.

 

IAM 역할 :
페더레이션 사용자 액세스 - 페더레이션 아이덴티티에 권한을 부여하려면 역할을 생성하고 해당 역할의 권한을 정의합니다. 페더레이션 아이덴티티가 인증되면 역할이 연결되고 역할에 정의된 권한이 부여됩니다.

 

임시 IAM 사용자 권한 - IAM 사용자 또는 역할은 IAM 역할을 수임하여 특정 작업에 대한 다양한 권한을 임시로 받을 수 있습니다.

 

크로스 계정 액세스 - IAM 역할을 사용하여 다른 계정의 사용자(신뢰할 수 있는 보안 주체)가 내 계정의 리소스에 액세스하도록 허용할 수 있습니다. 역할은 크로스 계정 액세스를 부여하는 기본적인 방법입니다.

 

교차 서비스 액세스 – 일부 AWS 서비스는 다른 AWS 서비스의 기능을 사용합니다.

 

Amazon EC2에서 실행 중인 애플리케이션 – IAM 역할을 사용하여 EC2 인스턴스에서 실행되고 AWS CLI 또는 AWS API 요청을 수행하는 애플리케이션의 임시 자격 증명을 관리할 수 있습니다.

 

IAM 사용자 및 보안 인증 :
콘솔 암호:
IAM 사용자가 입력해 AWS Management Console과 같은 상호 작용 세션으로 로그인할 수 있는 암호. IAM 사용자의 암호(콘솔 액세스)를 비활성화하면 사용자가 해당 로그인 보안 인증을 사용하여 AWS Management Console에 로그인하지 못합니다.

액세스 키: 프로그래밍 방식으로 AWS를 호출하는 데 사용됩니다. 그러나 IAM 사용자를 위한 액세스 키를 생성하기 전에 고려해야 할 더 안전한 대안이 있습니다.

 

CodeCommit에 사용할 SSH 키: CodeCommit를 사용한 인증에 사용할 수 있는 OpenSSH 형식의 SSH 퍼블릭 키

 

서버 인증서: 일부 AWS 서비스를 사용한 인증에 사용할 수 있는 SSL/TLS 인증서. 서버 인증서를 프로비저닝, 관리 및 배포할 때 AWS Certificate Manager(ACM)를 사용하는 것이 좋습니다.

 

IAM 정책 유형 :
아이덴티티 기반 정책
- 관리형 및 인라인 정책을 IAM 아이덴티티(사용자, 사용자가 속한 그룹 또는 역할)에 연결합니다. 자격 증명 기반 정책은 자격 증명에 권한을 부여합니다.

 

리소스 기반 정책 - 인라인 정책을 리소스에 연결합니다. 리소스 기반 정책의 가장 일반적인 예제는 Amazon S3 버킷 정책 및 IAM 역할 신뢰 정책입니다.

 

권한 경계 - 관리형 정책을 IAM 엔터티(사용자 또는 역할)에 대한 권한 경계로 사용합니다. 해당 정책은 자격 증명 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지만, 권한을 부여하지는 않습니다.

 

Organizations SCP - AWS Organizations 서비스 제어 정책(SCP)을 사용하여 조직 또는 조직 단위(OU)의 계정 멤버에 대한 최대 권한을 정의합니다. SCP는 자격 증명 기반 정책이나 리소스 기반 정책을 통해 계정 내 엔터티(사용자나 역할)에 부여하는 권한을 제한하지만, 권한을 부여하지는 않습니다.

 

액세스 제어 목록(ACL) - ACL을 사용하여 ACL이 연결된 리소스에 액세스할 수 있는 다른 계정의 보안 주체를 제어합니다. ACL는 리소스 기반 정책과 비슷합니다. 다만 JSON 정책 문서 구조를 사용하지 않은 유일한 정책 유형입니다. ACL은 동일 계정 내 엔터티에 권한을 부여할 수 없습니다.

 

세션 정책 - AWS CLI 또는 AWS API를 사용하여 역할이나 페더레이션 사용자를 수임할 때 고급 세션 정책을 전달합니다. 세션 정책은 역할이나 사용자의 자격 증명 기반 정책을 통해 세션에 부여하는 권한을 제한합니다.