View a markdown version of this page

ElastiCache Amazon SNS 알림 관리 - Amazon ElastiCache

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

ElastiCache Amazon SNS 알림 관리

Amazon Simple Notification Service(Amazon SNS)를 사용하여 중요한 클러스터 이벤트에 대해 알림을 보내도록 ElastiCache를 구성할 수 있습니다. 이러한 예에서는 Amazon SNS 항목의 ARN(Amazon 리소스 이름)으로 클러스터를 구성하여 알림을 받습니다.

참고
  • 이 항목에서는 Amazon SNS에 가입했으며 Amazon SNS 주제를 설정 및 구독했다고 가정합니다. 이렇게 하는 방법에 대한 정보는 Amazon Simple Notification Service 개발자 안내서를 참조하세요.

  • 기본적으로 API modify-replication-group은 현재 지정된 그룹뿐만 아니라 리전의 모든 그룹에 영향을 줍니다. 리전의 특정 그룹을 다른 그룹과 다르게 구성하려면 --notification-topic-arn 옵션을 사용하여 해당 그룹에 대한 별도의 주제를 생성할 수 있습니다.

SNS 주제 액세스 정책 요구 사항

ElastiCache 알림에 대해 Amazon SNS 주제를 구성할 때 주제의 액세스 정책은가 아닌 aws:SourceOwner 조건 키를 사용해야 합니다aws:SourceAccount. 새로 생성된 Amazon SNS 주제는 ElastiCache가 이벤트 알림을 지원하지 않는 액세스 정책aws:SourceAccount에서 기본적으로 로 설정됩니다.

Amazon SNS 주제에서를 사용하는 경우 aws:SourceAccount ElastiCache는 주제에 알림을 게시할 수 없으며 주제 상태를 비활성으로 자동 설정합니다. 글로벌 데이터 스토어 장애 조치 및 기타 클러스터 작업은이 오류를 트리거할 수 있습니다.

ElastiCache 알림이 올바르게 작동하는지 확인하려면 Amazon SNS 주제 액세스 정책에 다음 문이 포함되어 있는지 확인합니다.

{ "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "AWS:SourceOwner": "account-id" } } } ] }

장애 조치 또는 기타 클러스터 작업 후 ElastiCache가 Amazon SNS 주제 상태를 비활성으로 표시하는 경우 주제의 액세스 정책을 확인하고를 aws:SourceAccount로 바꿉니다aws:SourceOwner. 그런 다음 ModifyReplicationGroup API 작업 또는 콘솔을 사용하여 클러스터에서 알림을 다시 활성화합니다.

이러한 조건 키에 대한 자세한 내용은 Amazon SNS 개발자 안내서aws:SourceAccount vs aws:SourceOwner를 참조하세요.

사전 조건

ElastiCache에 대한 Amazon SNS 알림을 구성하기 전에 다음 요구 사항을 확인합니다.

  • Amazon SNS 주제는 ElastiCache 클러스터와 동일한 AWS 리전에 있어야 합니다.

  • Amazon SNS 주제는 ElastiCache 클러스터와 동일한 AWS 계정이 소유해야 합니다.

  • Amazon SNS 주제는 고객 관리 AWS KMS 형 키로 암호화해서는 안 됩니다. ElastiCache는 고객 관리형 AWS KMS 키로 암호화된 Amazon SNS 주제에 대한 알림 게시를 지원하지 않습니다.

  • Amazon SNS 주제 액세스 정책(sns:SetTopicAttributes 또는 이에 상응하는 정책)을 수정할 권한이 있어야 합니다.

Amazon SNS 주제에 게시할 수 있는 ElastiCache 권한 부여

이벤트 알림을 받으려면 Amazon SNS 주제에 메시지를 게시할 수 있는 권한을 ElastiCache에 부여해야 합니다. 이렇게 하려면 elasticache.amazonaws.com 서비스 보안 주체가 메시지를 게시하도록 허용하는 리소스 기반 정책을 Amazon SNS 주제에 추가합니다.

다음 정책은 ElastiCache에 필요한 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "Service": "elasticache.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

다음 표에서는 정책 구성 요소를 설명합니다.

구성 요소 설명
위탁자 elasticache.amazonaws.com ElastiCache 서비스 보안 주체
작업 sns:Publish 최소 필수 권한
Resource 주제 ARN 특정 Amazon SNS 주제의 ARN
조건: aws:SourceAccount AWS 계정 ID 특정 AWS 계정에서 시작된 요청에 대한 액세스를 제한합니다.

권한 부여(콘솔)

ElastiCache에 Amazon SNS 주제에 게시할 수 있는 권한을 부여하려면(콘솔)
  1. https://console.aws.amazon.com/sns/ Amazon Simple Notification Service 콘솔을 엽니다.

  2. 탐색 창에서 주제를 선택합니다.

  3. 주제를 선택하고 편집을 선택합니다.

  4. 액세스 정책 섹션을 확장합니다.

  5. JSON 편집기에서 이전 정책 설명을 추가합니다.

  6. 변경 사항 저장을 선택합니다.

권한 부여(AWS CLI)

액세스 정책을 라는 파일에 저장sns-policy.json한 다음 다음 명령을 실행합니다.

Linux, macOS, Unix의 경우:

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --attribute-name Policy \ --attribute-value file://sns-policy.json \ --region region

Windows의 경우:

aws sns set-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --attribute-name Policy ^ --attribute-value file://sns-policy.json ^ --region region

정책이 올바르게 적용되었는지 확인하려면 다음 명령을 실행합니다.

Linux, macOS, Unix의 경우:

aws sns get-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --query 'Attributes.Policy' \ --output text \ --region region

Windows의 경우:

aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --query 'Attributes.Policy' ^ --output text ^ --region region

Amazon SNS 주제 추가

다음 섹션에서는 AWS 콘솔 AWS CLI, 또는 ElastiCache API를 사용하여 Amazon SNS 주제를 추가하는 방법을 보여줍니다.

Amazon SNS 주제 추가(콘솔)

다음 절차는 클러스터에 대해 Amazon SNS 주제를 추가하는 방법을 보여줍니다. Valkey 또는 Redis OSS를 사용하여 2단계에서 복제 그룹에 대한 Amazon SNS 주제를 추가할 때 클러스터를 선택하는 대신 복제 그룹을 선택합니다. 그런 다음 동일한 나머지 단계를 따릅니다.

참고

이 프로세스는 Amazon SNS 주제를 수정하는 데에도 사용할 수 있습니다.

클러스터에 대해 Amazon SNS 주제를 추가 또는 수정하려면(콘솔)
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/elasticache/ ElastiCache 콘솔을 엽니다.

  2. 클러스터에서 Amazon SNS 주제 ARN을 추가 또는 수정할 클러스터를 선택합니다.

  3. 수정을 선택합니다.

  4. 클러스터 수정SNS 알림에 대한 주제에서 추가하려는 SNS 주제를 선택하거나 수동 ARN 입력을 선택하고 Amazon SNS 주제의 ARN을 입력합니다.

  5. 수정을 선택합니다.

Amazon SNS 주제 추가(AWS CLI)

클러스터에 대한 Amazon SNS 주제를 추가하거나 수정하려면 AWS CLI 명령을 사용합니다modify-cache-cluster.

다음 코드 예제는 Amazon SNS 주제 arn을 my-cluster에 추가합니다.

Linux, macOS, Unix의 경우:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-arn arn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications

Windows의 경우:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-arn arn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications

자세한 내용은 modify-cache-cluster를 참조하세요.

Amazon SNS 주제 추가(ElastiCache API)

클러스터에 대해 Amazon SNS 주제를 추가 또는 수정하려면 다음 파라미터와 함께 ModifyCacheCluster 작업을 호출합니다.

  • CacheClusterId=my-cluster

  • TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications

https://elasticache.amazon.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

자세한 내용은 ModifyCacheCluster를 참조하세요.

Amazon SNS 알림 활성화 및 비활성화

클러스터에 대해 알림을 켜거나 끌 수 있습니다. 다음 절차는 Amazon SNS 알림을 비활성화하는 방법을 보여줍니다.

Amazon SNS 알림 활성화 및 비활성화(콘솔)

를 사용하여 Amazon SNS 알림을 비활성화하려면 AWS Management Console
  1. 에 로그인 AWS Management Console 하고 https://console.aws.amazon.com/elasticache/ ElastiCache 콘솔을 엽니다.

  2. Memcached를 실행 중인 클러스터의 목록을 보려면 탐색 창에서 Memcached를 선택합니다.

    Valkey 또는 Redis OSS를 실행 중인 클러스터의 목록을 보려면 탐색 창에서 Valkey 또는 Redis OSS를 선택합니다.

  3. 알림을 수정할 클러스터의 이름 왼쪽에 있는 확인란을 선택합니다.

  4. 수정을 선택합니다.

  5. 클러스터 수정SNS 알림에 대한 주제에서 알림 비활성화를 선택합니다.

  6. 수정을 선택합니다.

Amazon SNS 알림 활성화 및 비활성화(AWS CLI)

Amazon SNS 알림을 비활성화하려면 다음 파라미터와 함께 modify-cache-cluster 명령을 사용합니다.

Linux, macOS, Unix의 경우:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-status inactive

Windows의 경우:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-status inactive
참고

클러스터가 복제 그룹에 속하는 경우 CLI 명령 modify-replication-group을 사용하여 SNS 알림을 활성화하거나 비활성화해야 합니다.

Amazon SNS 알림 활성화 및 비활성화(ElastiCache API)

Amazon SNS 알림을 비활성화하려면 다음 파라미터와 함께 ModifyCacheCluster 작업을 호출합니다.

  • CacheClusterId=my-cluster

  • NotificationTopicStatus=inactive

이 호출은 다음과 비슷한 출력을 반환합니다.

https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicStatus=inactive &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

Amazon SNS 주제 정책에 대한 보안 모범 사례

Amazon SNS 주제 정책을 보호하려면 다음 모범 사례를 따르세요.

  • 교차 계정 혼동된 대리자 공격을 방지하려면 항상 aws:SourceAccount 조건 키를 포함합니다.

  • 개별 AWS 계정 IDs 대신 elasticache.amazonaws.com 서비스 보안 주체를 사용합니다.

  • 추가 조건 키 "Principal": {"AWS": "*"} 없이를 사용하지 마십시오.

  • 필요한 최소 권한만 부여합니다(sns:Publish만 해당).

  • Amazon SNS 주제 액세스 정책을 정기적으로 감사합니다.

알림이 작동하는지 확인

Amazon SNS 주제 정책을 구성하고 ElastiCache 클러스터에 주제를 추가한 후 알림이 작동하는지 확인합니다.

  1. 클러스터의 구성 변경과 같은 ElastiCache 이벤트를 트리거합니다.

  2. Amazon SNS 구독 엔드포인트(이메일, Lambda 함수 또는 SQS 대기열)에서 알림 메시지를 확인합니다.

  3. Amazon SNS 콘솔에서 구독 상태가 확인됨으로 표시되는지 확인합니다.

Amazon SNS 알림 문제 해결

ElastiCache로부터 Amazon SNS 알림을 받지 못하는 경우 다음을 확인하세요.

리전 불일치

Amazon SNS 주제가 ElastiCache 클러스터와 동일한 AWS 리전에 있는지 확인합니다.

계정 소유권

Amazon SNS 주제가 ElastiCache 클러스터와 동일한 AWS 계정에서 소유하고 있는지 확인합니다.

조건에 잘못된 계정 ID가 있음

aws:SourceAccount 값이 정확한 12자리 AWS 계정 ID인지 확인합니다.

KMS 암호화

Amazon SNS 주제가 고객 관리형 AWS KMS 키로 암호화되지 않았는지 확인합니다. ElastiCache는 고객 관리형 AWS KMS 암호화를 사용하여 주제에 게시하는 기능을 지원하지 않습니다.

주제 ARN 불일치

정책의 Amazon SNS 주제 ARN이 ElastiCache 클러스터에 연결된 주제의 ARN과 정확히 일치하는지 확인합니다.

확인되지 않은 구독

Amazon SNS 구독이 확인됨 상태인지 확인합니다.

권한 부족

주제의 액세스 정책을 수정할 수 있는 sns:SetTopicAttributes 권한이 있는지 확인합니다.