AWS 정책
클라우드 구성 거버넌스 참조용으로 AWS 정책이 나열되어 있습니다.
| 정책 세트 | 정책 이름 | 자원 유형 | 설명 |
|---|---|---|---|
| AWS IAM 사용자 활동 정책 | 조건 작성기 | IAM 사용자에 대해 암호가 활성화되어 있는지 확인하는 정책입니다 AWS . 이 정책을 AWS 사용하려면 IAM 사용자 계정에 다음 권한이 있어야 합니다.
|
|
| AWS S3 적용 버킷 암호화 | 조건 작성기 | S3 버킷이 암호화되었는지 확인하는 정책입니다 AWS . | |
| AWS 샘플 플로우 정책 | 통합 허브 플로우 | 플로우 기반 정책을 설명하는 정책입니다 통합 허브 . | |
| AWS VM 하드웨어 유형 | 조건 작성기 | 배포된 EC2 VM이 승인된 하드웨어 유형만 사용하고 있는지 확인하는 정책입니다. | |
| AWS VM IPAddress | 스크립트 | EC2 VM의 IP 주소가 기록과 일치하는지 확인하는 정책입니다.구성 관리 데이터베이스(CMDB) | |
| AWS VM 모니터링 상태 | 조건 작성기 | EC2 VM에 대해 세부적인 모니터링을 사용할 수 있는지 확인하는 정책입니다. | |
| AWS: IAM 보안 | 콘솔 암호가 있는 모든 IAM 사용자에 대해 멀티 팩터 인증(MFA)이 활성화되어 있는지 확인(자동) | IAM 사용자 |
다단계 인증(MFA)은 기존 자격 증명을 넘어 인증 보증 계층을 추가합니다. MFA를 활성화하면 사용자가 AWS 콘솔에 로그인할 때 사용자 이름과 암호, 물리적 또는 가상 MFA 토큰의 인증 코드를 입력하라는 메시지가 표시됩니다. 콘솔 암호가 있는 모든 계정에 대해 MFA를 사용하도록 설정하는 것이 좋습니다. MFA를 활성화하면 인증 주체가 시간에 민감한 키를 표시하고 자격 증명에 대한 지식이 있는 디바이스를 소유해야 하므로 콘솔 액세스에 대한 보안이 강화됩니다. |
| 45일 이상 사용하지 않은 자격 증명은 비활성화해야 합니다(자동). | IAM 사용자 |
AWS IAM 사용자는 암호 또는 액세스 키와 같은 다양한 유형의 자격 증명을 사용하여 AWS 리소스에 액세스할 수 있습니다. 45일 이상 사용하지 않은 자격 증명은 모두 비활성화하거나 제거하는 것이 좋습니다 불필요한 자격 증명을 사용하지 않도록 설정하거나 제거하면 손상되거나 중단된 계정과 연결된 자격 증명을 사용할 수 있는 기회가 줄어듭니다. |
|
| 단일 IAM 사용자에 대해 사용할 수 있는 활성 액세스 키가 하나만 있는지 확인(자동화됨) | IAM 사용자 |
접근 키는 IAM 사용자 또는 AWS 계정 'root' 사용자에 대한 장기 자격 증명입니다. 액세스 키를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 서명할 수 있습니다(직접 또는 AWS SDK 사용) 접근 키는 IAM 사용자 또는 AWS 계정 'root' 사용자에 대한 장기 자격 증명입니다. 액세스 키를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 방식 요청에 서명할 수 있습니다. 계정을 보호하는 가장 좋은 방법 중 하나는 사용자가 여러 액세스 키를 가질 수 없도록 하는 것입니다. |
|
| 접근 키가 90일 이하로 순환되도록 보장(자동) | IAM 사용자 |
액세스 키는 액세스 키 ID와 보안 액세스 키로 구성되며, AWS에 대한 프로그래밍 방식 요청에 서명하는 데 사용됩니다. AWS 사용자가 AWS 명령줄 인터페이스(AWS CLI), Windows PowerShell용 도구, AWS SDK에서 프로그래밍 방식으로 AWS를 호출하거나 개별 AWS 서비스의 API를 사용하여 직접 HTTP 호출을 수행하려면 자체 액세스 키가 필요합니다. 모든 액세스 키는 정기적으로 교체하는 것이 좋습니다. 액세스 키를 순환하면 손상되거나 해지된 계정과 연결된 액세스 키를 사용할 수 있는 기회가 줄어듭니다. 분실, 균열 또는 도난 당했을 수 있는 이전 키로 데이터에 액세스할 수 없도록 접근 키를 순환해야 합니다. |
|
| IAM 사용자가 그룹을 통해서만 권한을 받도록 보장(자동) | IAM 사용자 |
IAM 사용자에게는 IAM 정책을 통해 서비스, 함수 및 데이터에 대한 액세스 권한이 부여됩니다. 사용자에 대한 정책을 정의하는 방법에는 세 가지가 있습니다.
세 번째 구현만 권장됩니다. 그룹을 통해서만 IAM 정책을 할당하면 권한 관리가 조직의 기능 역할과 일치하는 유연한 단일 계층으로 통합됩니다. 권한 관리를 통합하면 과도한 권한이 발생할 가능성이 줄어듭니다. |
|
| 전체 "*:*" 관리 권한을 허용하는 IAM 정책이 첨부되지 않았는지 확인(자동) | IAM 사용자 |
IAM 정책은 사용자, 그룹 또는 역할에 권한을 부여하는 수단입니다. 최소 권한, 즉 작업을 수행하는 데 필요한 권한만 부여하는 표준 보안 권장 사항으로 권장됩니다. 사용자가 수행해야 할 작업을 결정한 다음 사용자가 전체 관리 권한을 허용하는 대신 해당 작업만 수행할 수 있도록 하는 정책을 작성합니다. 너무 관대한 권한으로 시작한 다음 나중에 강화하는 것보다 최소 권한 집합으로 시작하고 필요에 따라 추가 권한을 부여하는 것이 더 안전합니다. 사용자가 수행해야 하는 최소 권한 집합으로 제한하는 대신 전체 관리 권한을 제공하면 리소스가 원치 않는 작업에 노출될 수 있습니다. "Resource": "" 위에 "Effect": "Allow" with "Action": "" 문이 있는 IAM 정책은 제거해야 합니다. |
|
| AWS Support를 통해 인시던트를 관리할 수 있는 지원 역할이 생성되었는지 확인(자동) | IAM 사용자 |
AWS는 인시던트 알림 및 응답뿐만 아니라 기술 지원 및 고객 서비스에도 사용할 수 있는 지원 센터를 제공합니다. 권한 있는 사용자가 AWS Support를 통해 인시던트를 관리할 수 있도록 IAM 역할을 생성합니다. 액세스 제어에 대한 최소 권한을 구현하면 IAM 역할에 AWS Support를 통해 인시던트를 관리하기 위해 지원 센터 액세스를 허용하는 적절한 IAM 정책이 필요합니다. |
|
| AWS IAM에 저장되어 있는 만료된 모든 SSL/TLS 인증서가 제거되었는지 확인합니다(자동). | IAM 사용자 |
AWS에서 웹 사이트 또는 애플리케이션에 대한 HTTPS 연결을 활성화하려면 SSL/TLS 서버 인증서가 필요합니다. ACM 또는 IAM을 사용하여 서버 인증서를 저장하고 배포할 수 있습니다. ACM에서 지원하지 않는 리전에서 HTTPS 연결을 지원해야 하는 경우에만 IAM을 인증서 관리자로 사용합니다. IAM은 프라이빗 키를 안전하게 암호화하고 암호화된 버전을 IAM SSL 인증서 스토리지에 저장합니다. IAM은 모든 리전에서 서버 인증서 배포를 지원하지만, AWS에서 사용하려면 외부 공급자로부터 인증서를 받아야 합니다. ACM 인증서를 IAM에 업로드할 수 없습니다. 또한 IAM 콘솔에서 인증서를 관리할 수 없습니다. 만료된 SSL/TLS 인증서를 제거하면 잘못된 인증서가 AWS ELB(Elastic Load Balancer)와 같은 리소스에 실수로 배포되어 ELB 뒤에 있는 애플리케이션/웹 사이트의 신뢰성이 손상될 위험이 없습니다. 베스트 프랙티스는 만료된 인증서를 삭제하는 것이 좋습니다. |
|
| IAM 액세스 분석기가 모든 지역에 대해 활성화되어 있는지 확인(자동) | AWS::AccessAnalyzer::분석기 |
각 리전의 모든 리소스에 대한 IAM 정책에 대해 IAM 액세스 분석기를 활성화합니다. IAM Access Analyzer는 AWS reinvent 2019에서 소개된 기술입니다. IAM에서 분석기가 활성화되면 액세스 가능한 리소스를 보여주는 스캔 결과가 콘솔에 표시됩니다. 스캔에는 KMS 키 및 IAM 역할과 같이 다른 계정 및 연동 사용자가 액세스할 수 있는 리소스가 표시됩니다. 따라서 결과를 통해 의도하지 않은 사용자가 허용되는지 여부를 결정할 수 있으므로 관리자가 최소 권한 액세스를 더 쉽게 모니터링할 수 있습니다. Access Analyzer는 동일한 AWS 리전의 리소스에 적용된 정책만 분석합니다. AWS IAM Access Analyzer는 외부 엔터티와 공유되는 Amazon S3 버킷 또는 IAM 역할과 같은 조직 및 계정의 리소스를 식별하는 데 도움이 됩니다. 이를 통해 자원 및 데이터에 대한 의도하지 않은 액세스를 식별할 수 있습니다. Access Analyzer는 논리 기반 추론을 사용하여 AWS 환경의 리소스 기반 정책을 분석하여 외부 보안 주체와 공유되는 리소스를 식별합니다. IAM Access Analyzer는 S3 버킷, IAM 역할, KMS(Key Management Service) 키, AWS Lambda 함수, Amazon SQS(Simple Queue Service) 대기열에 대한 모든 정책을 지속적으로 모니터링합니다. |
|
| "루트" 사용자 계정 접근 키가 없는지 확인(자동) | IAM 사용자 |
"루트" 사용자 계정은 AWS 계정에서 가장 권한이 있는 사용자입니다. AWS 접근 키는 지정된 AWS 계정에 대한 프로그래밍 방식 액세스를 제공합니다. '루트' 사용자 계정과 연결된 모든 접근 키를 제거하는 것이 좋습니다. '루트' 사용자 계정과 연결된 접근 키를 제거하면 계정이 손상될 수 있는 벡터가 제한됩니다. 또한 '루트' 접근 키를 제거하면 권한이 가장 낮은 역할 기반 계정을 만들고 사용하도록 장려됩니다. |
|
| "루트" 사용자 계정에 대해 MFA가 활성화되어 있는지 확인(자동) | IAM 사용자 |
"루트" 사용자 계정은 AWS 계정에서 가장 권한이 있는 사용자입니다. 다단계 인증(MFA)은 사용자 이름과 암호에 추가 보호 계층을 추가합니다. MFA를 활성화하면 사용자가 AWS 웹 사이트에 로그인할 때 사용자 이름 및 암호와 AWS MFA 디바이스의 인증 코드를 입력하라는 메시지가 표시됩니다. MFA를 활성화하면 인증 주체가 시간에 민감한 키를 내보내는 디바이스를 소유하고 자격 증명에 대해 알고 있어야 하므로 콘솔 액세스에 대한 보안이 강화됩니다. |
|
| "루트" 사용자 계정에 대해 하드웨어 MFA가 활성화되어 있는지 확인(자동) | IAM 사용자 |
"루트" 사용자 계정은 AWS 계정에서 가장 권한이 있는 사용자입니다. MFA는 사용자 이름과 암호 위에 추가 보호 계층을 추가합니다. MFA를 활성화하면 사용자가 AWS 웹 사이트에 로그인할 때 사용자 이름과 암호, AWS MFA 디바이스의 인증 코드를 입력하라는 메시지가 표시됩니다. 수준 2의 경우 하드웨어 MFA로 '루트' 사용자 계정을 보호하는 것이 좋습니다. 하드웨어 MFA는 가상 MFA보다 공격 표면이 작습니다. 예를 들어, 하드웨어 MFA는 가상 MFA가 상주하는 모바일 스마트폰에서 발생하는 공격 표면의 영향을 받지 않습니다. |
|
| 관리 및 일상적인 작업에 '루트' 사용자 사용 제거(자동) | IAM 사용자 |
AWS 계정을 만들면 비활성화하거나 삭제할 수 없는 "루트 사용자"가 생성됩니다. 해당 사용자는 AWS 계정의 모든 리소스에 무제한으로 액세스하고 제어할 수 있습니다. 일상적인 작업에는 이 계정의 사용을 피하는 것이 좋습니다. '루트 사용자'는 모든 계정 자원에 무제한으로 접근하고 제어할 수 있습니다. 이를 사용하면 최소 권한 및 업무 분리 원칙에 위배되며 오류나 계정 손상으로 인해 불필요한 피해를 초래할 수 있습니다. |
|
| IAM 암호 정책에 최소 14자 이상이 필요한지 확인(자동) | IAM 사용자 |
암호 정책은 부분적으로 암호 복잡성 요구 사항을 적용하는 데 사용됩니다. IAM 암호 정책을 사용하여 암호가 지정된 길이 이상이 되도록 할 수 있습니다. 암호 정책에는 최소 암호 길이 14가 필요합니다. 암호 복잡성 정책을 설정하면 무차별 암호 대입 로그인 시도에 대한 계정 복원력이 향상됩니다. |
|
| IAM 암호 정책으로 암호 재사용이 방지되는지 확인(자동) | IAM 사용자 |
IAM 암호 정책은 동일한 사용자가 지정된 암호를 재사용하는 것을 방지할 수 있습니다. 암호 정책에서 암호 재사용을 방지하는 것이 좋습니다. 암호 재사용을 방지하면 무차별 암호 대입 로그인 시도에 대한 계정 복원력이 향상됩니다. |
|
| AWS: 데이터 보안 | S3 버킷이 "퍼블릭 액세스 차단(버킷 설정)"으로 구성되어 있는지 확인합니다. | AWS::S3::버킷 |
Amazon S3는 퍼블릭 액세스 차단(버킷 설정) 및 퍼블릭 액세스 차단(계정 설정)을 제공하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움이 됩니다. 기본적으로 S3 버킷 및 객체는 퍼블릭 액세스가 비활성화된 상태로 생성됩니다. 그러나 충분한 S3 권한이 있는 IAM 보안 주체는 버킷 및/또는 객체 수준에서 퍼블릭 액세스를 활성화할 수 있습니다. 활성화된 동안 퍼블릭 액세스 차단(버킷 설정)은 개별 버킷과 해당 포함된 객체에 공개적으로 액세스할 수 없도록 합니다. 마찬가지로 퍼블릭 액세스 차단(계정 설정)은 모든 버킷과 포함된 객체가 전체 계정에서 공개적으로 액세스되지 않도록 합니다. Amazon S3 퍼블릭 액세스 차단(버킷 설정)은 해당 버킷에 포함된 데이터가 우발적이거나 악의적으로 공개적으로 노출되는 것을 방지합니다. Amazon S3 퍼블릭 액세스 차단(계정 설정)은 각 AWS 계정의 모든 버킷에 포함된 데이터가 우발적이거나 악의적으로 공개적으로 노출되는 것을 방지합니다. 모든 또는 일부 버킷에 대한 공개 액세스를 차단하는 것이 데이터 민감도, 최소 권한 및 사용 사례를 기반으로 해야 하는 조직의 결정인지 여부입니다. |
| AWS: CloudTrail 로깅 | S3 버킷에 대해 쓰기 이벤트에 대한 객체 수준 로깅이 활성화되어 있는지 확인(자동) | AWS::S3::버킷 |
GetObject, DeleteObject 및 PutObject와 같은 S3 객체 수준 API 작업을 데이터 이벤트라고 합니다. 기본적으로 CloudTrail 추적은 데이터 이벤트를 로깅하지 않으므로 다음을 수행하는 것이 좋습니다. S3 버킷에 대해 객체 수준 로깅을 활성화합니다. 근거: 객체 수준 로깅을 사용하도록 설정하면 조직 내의 데이터 규정 준수 요구 사항을 충족하고, 포괄적인 보안 분석을 수행하고, 특정 사용자 패턴을 모니터링하는 데 도움이 됩니다. AWS 계정의 동작을 수행하거나 Amazon CloudWatch Events를 사용하여 S3 버킷 내의 객체 수준 API 활동에 대해 즉각적인 조치를 취할 수 있습니다. |
| AWS: CloudTrail 로깅 | S3 버킷에 대해 읽기 이벤트에 대한 객체 수준 로깅이 활성화되어 있는지 확인(자동) | AWS::S3::버킷 |
GetObject, DeleteObject 및 PutObject와 같은 S3 객체 수준 API 작업을 데이터 이벤트라고 합니다. 기본적으로 CloudTrail 추적은 데이터 이벤트를 로깅하지 않으므로 다음을 수행하는 것이 좋습니다. S3 버킷에 대해 객체 수준 로깅을 활성화합니다. 근거: 객체 수준 로깅을 사용하도록 설정하면 조직 내의 데이터 규정 준수 요구 사항을 충족하고, 포괄적인 보안 분석을 수행하고, 특정 사용자 패턴을 모니터링하는 데 도움이 됩니다. AWS 계정의 동작을 수행하거나 Amazon CloudWatch Events를 사용하여 객체 수준 API 활동에 대해 즉각적인 조치를 취할 수 있습니다. |
| AWS: 네트워크 보안 | 0.0.0.0/0에서 원격 서버 관리 포트로의 수신을 허용하는 네트워크 ACL이 없는지 확인(자동) | AWS::EC2::NetworkAcl |
NACL(네트워크 액세스 제어 목록) 기능은 AWS 리소스로의 수신 및 송신 네트워크 트래픽에 대한 상태 비저장 필터링을 제공합니다. NACL은 포트 22에 대한 SSH 및 포트 3389에 대한 RDP와 같은 원격 서버 관리 포트에 대한 무제한 수신 액세스를 허용하지 않는 것이 좋습니다. 22 및 3389와 같은 원격 서버 관리 포트에 대한 공용 액세스는 리소스 공격 표면을 증가시키고 리소스 손상 위험을 불필요하게 높입니다. |
| AWS: 네트워크 보안 | 0.0.0.0/0에서 원격 서버 관리 포트로의 수신을 허용하는 보안 그룹이 없는지 확인(자동) | AWS::EC2::SecurityGroup |
보안 그룹은 AWS 리소스에 대한 수신 및 송신 네트워크 트래픽에 대한 상태 저장 필터링을 제공합니다. 포트 22에 대한 SSH 및 포트 3389에 대한 RDP와 같은 원격 서버 관리 포트에 대한 무제한 수신 액세스를 허용하는 보안 그룹은 없는 것이 좋습니다 22 및 3389와 같은 원격 서버 관리 포트에 대한 공용 액세스는 리소스 공격 표면을 증가시키고 리소스 손상 위험을 불필요하게 높입니다. |