Amazon SNS 보안 모범 사례 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SNS 보안 모범 사례

AWS 는 Amazon 에 대한 다양한 보안 기능을 제공합니다SNS. 사용자 고유의 보안 정책 맥락에서 이러한 보안 기능을 검토합니다.

참고

이러한 보안 기능에 대한 지침은 일반적인 사용 사례 및 구현에 적용됩니다. 특정 사용 사례, 아키텍처 및 위협 모델의 맥락에서 이러한 모범 사례를 검토하는 것이 좋습니다.

예방적 모범 사례

다음은 Amazon 에 대한 예방 보안 모범 사례입니다SNS.

주제에 공개적으로 액세스할 수 없도록 보장

인터넷의 누군가가 Amazon SNS 주제를 읽거나 쓸 수 있도록 명시적으로 요구하지 않는 한, 주제에 공개적으로 액세스할 수 없도록 해야 합니다(전 세계 모든 사람 또는 인증된 AWS 사용자가 액세스할 수 있음).

  • Principal""로 설정된 정책을 생성하지 마세요.

  • 와일드카드(*)를 사용하지 마세요. 대신에 특정 사용자 또는 사용자의 이름을 지정합니다.

최소 권한 액세스 구현

권한을 부여하면 권한을 받는 사람, 권한 대상 주제, 이러한 주제에 대해 허용하려는 특정 API 작업을 결정합니다. 최소 권한 원칙을 구현하는 것은 보안 위험을 줄이는 데 중요합니다. 또한 실수나 고의에 의한 부정적인 영향을 줄이는 데 도움이 됩니다.

최소 권한 부여에 대한 표준 보안 권고 사항을 따릅니다. 즉, 특정 작업을 수행하는 데 필요한 권한만 부여합니다. 사용자 액세스와 관련된 보안 정책 조합을 사용하여 최소 권한을 구현할 수 있습니다.

Amazon은 게시자-구독자 모델을 SNS 사용하므로 세 가지 유형의 사용자 계정 액세스가 필요합니다.

  • 관리자 – 주제를 생성, 수정 및 삭제할 수 있습니다. 또한 관리자는 주제 정책도 제어합니다.

  • 게시자 – 주제에 메시지를 보낼 수 있습니다.

  • 구독자 – 주제를 구독할 수 있습니다.

자세한 정보는 다음 섹션을 참조하세요.

Amazon SNS 액세스가 필요한 애플리케이션 및 AWS 서비스에 IAM 역할 사용

Amazon 과 같은 애플리케이션 또는 AWS 서비스가 Amazon SNS 주제에 EC2액세스하려면 요청에 유효한 AWS 보안 인증을 AWS API 사용해야 합니다. 이러한 자격 증명은 자동으로 교체되지 않으므로 자격 AWS 증명을 애플리케이션 또는 EC2 인스턴스에 직접 저장해서는 안 됩니다.

IAM 역할을 사용하여 Amazon 에 액세스해야 하는 애플리케이션 또는 서비스의 임시 보안 인증을 관리해야 합니다SNS. 역할을 사용하는 경우 와 같은 EC2 인스턴스 또는 AWS 서비스에 장기 보안 인증 정보(예: 사용자 이름, 암호 및 액세스 키)를 배포할 필요가 없습니다 AWS Lambda. 대신 역할은 애플리케이션이 다른 AWS 리소스에 호출할 때 사용할 수 있는 임시 권한을 제공합니다.

자세한 내용은 IAM 사용 설명서IAM 역할역할에 대한 일반적인 시나리오: 사용자, 애플리케이션 및 서비스를 참조하세요.

서버 측 암호화 구현

데이터 유출 문제를 완화하려면 메시지를 저장하는 위치와 다른 위치에 저장된 키를 통해 메시지를 암호화하는 유휴 시 데이터 암호화를 사용합니다. 서버 측 암호화(SSE)는 저장 데이터 암호화를 제공합니다. Amazon은 데이터를 저장할 때 메시지 수준에서 데이터를 SNS 암호화하고 액세스할 때 메시지를 복호화합니다. SSE 는 에서 관리되는 키를 사용합니다 AWS Key Management Service. 요청을 인증하고 액세스 권한이 있는 경우 주제의 암호화 여부와 관계없이 액세스 방식에는 차이가 없습니다.

자세한 정보는 저장 중 암호화키 관리에서 확인하세요.

전송 중인 데이터의 암호화 강제 시행

전송 중에 를 사용하여 암호화되지 않은 메시지를 게시하는 것은 가능하지만 권장되지는 않습니다HTTP. 그러나 주제를 를 사용하여 유휴 상태로 암호화 AWS KMS할 때는 유휴 상태 및 전송 중에 모두 암호화를 보장하기 HTTPS 위해 메시지를 게시하는 데 를 사용해야 합니다. 주제가 HTTP 메시지를 자동으로 거부하지는 않지만 보안 표준을 유지하려면 를 사용해야 HTTPS 합니다.

AWS 에서는 HTTPS 대신 를 사용할 것을 권장합니다HTTP. 를 사용하면 SNS 주제 자체가 암호화되지 않은 경우에도 전송 중에 HTTPS메시지가 자동으로 암호화됩니다. HTTPS가 없으면 네트워크 기반 공격자가 네트워크 트래픽을 도청하거나 와 같은 공격을 사용하여 조작할 수 있습니다 man-in-the-middle.

를 통해 암호화된 연결만 적용하려면 암호화되지 않은 SNS 주제에 연결된 IAM 정책에 aws:SecureTransport 조건을 HTTPS추가합니다. 이렇게 하면 메시지 게시자가 HTTPS 대신 를 사용해야 합니다HTTP. 다음 예제 정책을 가이드로 사용합니다.

{ "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPublishThroughSSLOnly", "Action": "SNS:Publish", "Effect": "Deny", "Resource": [ "arn:aws:sns:us-east-1:1234567890:test-topic" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }

VPC 엔드포인트를 사용하여 Amazon에 액세스하는 것을 고려하세요. SNS

상호 작용할 수 있어야 하는 주제가 있지만 이러한 주제가 인터넷에 절대 노출되어서는 안 되는 경우 엔드포인트VPC를 사용하여 특정 내의 호스트로만 주제 액세스를 제한합니다VPC. 주제 정책을 사용하여 특정 Amazon VPC 엔드포인트 또는 특정 의 주제에 대한 액세스를 제어할 수 있습니다VPCs.

Amazon SNS VPC 엔드포인트는 메시지에 대한 액세스를 제어하는 두 가지 방법을 제공합니다.

  • 특정 VPC 엔드포인트를 통해 허용되는 요청, 사용자 또는 그룹을 제어할 수 있습니다.

  • 주제 정책을 사용하여 주제에 액세스할 수 있는 VPCs 또는 VPC 엔드포인트를 제어할 수 있습니다.

자세한 내용은 엔드포인트 생성Amazon용 Amazon VPC 엔드포인트 정책 생성 SNS 단원을 참조하세요.

구독이 원시 http 엔드포인트에 전달되도록 구성되지 않았는지 확인합니다.

구독이 원시 http 엔드포인트에 전달되도록 구성하지 마세요. 항상 구독을 엔드포인트 도메인 이름으로 전달해야 합니다. 예를 들어, 엔드포인트에 전달하도록 구성된 구독 http://1.2.3.4/my-pathhttp://my.domain.name/my-path로 변경되어야 합니다.