

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

# Amazon SNS를 알림 수신기로 사용
<a name="AMP-alertmanager-receiver-createtopic"></a>

기존 Amazon SNS 주제를 Amazon Managed Service for Prometheus의 알림 수신기로 사용하거나 새 주제를 생성할 수 있습니다. 주제의 알림을 이메일, SMS 또는 HTTP로 전달할 수 있도록 **표준** 유형의 주제를 사용하는 것이 좋습니다.

알림 관리자 수신기로 사용할 새 Amazon SNS 주제를 생성하려면 [1단계: 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-create-queue)의 단계를 따르세요. 주제 유형으로는 **표준**을 선택해야 합니다.

해당 Amazon SNS 주제로 메시지가 전송될 때마다 이메일을 수신하려면 [2단계: 주제 구독 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#step-send-message)의 단계를 따르세요.

새 Amazon SNS 주제 또는 기존 Amazon SNS 주제를 사용할 때 다음 작업을 완료하려면 Amazon SNS 주제의 Amazon 리소스 이름(ARN)이 필요합니다.

**Topics**
+ [Amazon Managed Service for Prometheus에 Amazon SNS 주제로 알림 메시지를 전송할 수 있는 권한 부여](AMP-alertmanager-receiver-AMPpermission.md)
+ [Amazon SNS 주제로 메시지를 보내도록 알림 관리자 구성](AMP-alertmanager-receiver-config.md)
+ [Amazon SNS에 JSON으로 메시지를 보내도록 알림 관리자 구성](AMP-alertmanager-receiver-JSON.md)
+ [다른 대상으로 알림 메시지를 보내도록 Amazon SNS 구성](AMP-alertmanager-SNS-otherdestinations.md)
+ [Amazon SNS 메시지 검증 규칙 이해](AMP-alertmanager-receiver-validation-truncation.md)

# Amazon Managed Service for Prometheus에 Amazon SNS 주제로 알림 메시지를 전송할 수 있는 권한 부여
<a name="AMP-alertmanager-receiver-AMPpermission"></a>

Amazon Managed Service for Prometheus에 Amazon SNS 주제로 메시지를 전송할 수 있는 권한을 부여해야 합니다. 다음 정책 문은 해당 권한을 부여합니다. 여기에는 *혼동된 대리자* 문제라고 하는 보안 문제를 방지하는 데 도움이 되는 `Condition` 문이 포함되어 있습니다. 이 `Condition` 문은 Amazon SNS 주제에 대한 액세스를 제한하여 이 특정 계정 및 Amazon Managed Service for Prometheus 워크스페이스에서 발생하는 작업만 허용하도록 합니다. 혼동된 대리자 문제에 대한 자세한 내용은 [교차 서비스 혼동된 대리인 방지](#cross-service-confused-deputy-prevention)를 참조하세요.

**Amazon Managed Service for Prometheus에 Amazon SNS 주제에 메시지를 전송할 수 있는 권한을 부여하려면**

1. [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)에서 Amazon SNS 콘솔을 엽니다.

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

1. Amazon Managed Service for Prometheus에서 사용하는 주제의 이름을 선택합니다.

1. **편집**을 선택합니다.

1. **액세스 정책**을 선택하고 기존 정책에 다음 정책 문을 추가합니다.

   ```
   {
       "Sid": "Allow_Publish_Alarms",
       "Effect": "Allow",
       "Principal": {
           "Service": "aps.amazonaws.com"
       },
       "Action": [
           "sns:Publish",
           "sns:GetTopicAttributes"
       ],
       "Condition": {
           "ArnEquals": {
               "aws:SourceArn": "workspace_ARN"
           },
           "StringEquals": {
               "AWS:SourceAccount": "account_id"
           }
       },
       "Resource": "arn:aws:sns:region:account_id:topic_name"
   }
   ```

   [선택 사항] Amazon SNS 주제가 서비스 측 암호화(SSE)를 활성화한 경우 주제를 암호화하는 데 사용되는 키의 AWS KMS 키 정책에 `kms:GenerateDataKey*` 및 `kms:Decrypt` 권한을 추가하여 Amazon Managed Service for Prometheus가이 암호화된 주제에 메시지를 보내도록 허용해야 합니다.

   예를 들어 정책에 다음을 추가할 수 있습니다.

   ```
   {
     "Statement": [{
       "Effect": "Allow",
       "Principal": {
         "Service": "aps.amazonaws.com"
       },
       "Action": [
         "kms:GenerateDataKey*",
         "kms:Decrypt"
       ],
       "Resource": "*"
     }]
   }
   ```

   자세한 내용을 알아보려면 [SNS 주제에 대한AWS KMS 권한](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#sns-what-permissions-for-sse)을 참조하세요.

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

**참고**  
 기본적으로 Amazon SNS는 `AWS:SourceOwner`에 대한 조건을 적용해서 액세스 정책을 생성합니다. 자세한 내용은 [SNS 액세스 정책](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html#source-account-versus-source-owner)을 참조하세요.

**참고**  
IAM은 [가장 제한적인 정책 우선](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) 규칙을 따릅니다. SNS 주제에서 문서화된 Amazon SNS 정책 블록보다 더 제한적인 정책 블록이 있는 경우 주제 정책에 대한 권한은 부여되지 않습니다. 정책을 평가하고 어떤 권한이 부여되었는지 알아보려면 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

## 옵트인 리전에 대한 SNS 주제 구성
<a name="AMP-alertmanager-sns-regional-config"></a>

`aps.amazonaws.com`를 사용하여 Amazon Managed Service for Prometheus 워크스페이스와 동일한에서 Amazon SNS 주제를 구성할 수 있습니다. AWS 리전 비옵트인 리전(예: us-east-1)의 SNS 주제를 옵트인 리전(예: af-south-1)과 함께 사용하려면 리전 서비스 위탁자 형식을 사용해야 합니다. 리전 서비스 보안 주체에서 *us-east-1*을 사용하려는 비옵트인 리전으로 바꿉니다. **aps.*us-east-1*.amazonaws.com** 

다음 표에는 옵트인 리전과 해당하는 리전 서비스 보안 주체가 나열되어 있습니다.


**옵트인 리전 및 해당 리전 서비스 보안 주체**  

| 리전 이름 | 리전 | 리전 서비스 보안 주체 | 
| --- | --- | --- | 
| Africa (Cape Town) | af-south-1 | af-south-1.aps.amazonaws.com | 
| Asia Pacific (Hong Kong) | ap-east-1 | ap-east-1.aps.amazonaws.com | 
| 아시아 태평양(태국) | ap-southeast-7 | ap-southeast-7.aps.amazonaws.com | 
| Europe (Milan) | eu-south-1 | eu-south-1.aps.amazonaws.com | 
| 유럽(취리히) | eu-central-2 | eu-central-2.aps.amazonaws.com | 
| 중동(UAE) | me-central-1 | me-central-1.aps.amazonaws.com | 
| 아시아 태평양(말레이시아) | ap-southeast-5 | ap-southeast-5.aps.amazonaws.com | 

옵트인 리전 활성화에 대한 자세한 내용은 Amazon Web Services 일반 참조의 **IAM 사용 설명서에서 [AWS 리전관리](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-regions.html)를 참조하세요.

이러한 옵트인 리전에 대해 Amazon SNS 주제를 구성할 때는 올바른 리전 서비스 보안 주체를 사용하여 교차 리전 알림 전송을 활성화해야 합니다.

## 교차 서비스 혼동된 대리인 방지
<a name="cross-service-confused-deputy-prevention"></a>

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 AWS교차 서비스 가장은 혼동된 대리자 문제를 초래할 수 있습니다. 교차 서비스 가장은 한 서비스(*직접 호출하는 서비스*)가 다른 서비스(*직접 호출되는 서비스*)를 직접 호출할 때 발생할 수 있습니다. 직접 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS 에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 위탁자를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.

Amazon Managed Service for Prometheus가 리소스에 대해 Amazon SNS에 부여하는 권한을 제한하려면 리소스 정책에서 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 글로벌 조건 컨텍스트 키를 사용하는 것이 좋습니다. 두 전역 조건 컨텍스트 키를 모두 사용하는 경우 `aws:SourceAccount` 값과 `aws:SourceArn` 값의 계정은 동일한 정책 문에서 사용할 경우 동일한 계정 ID를 사용해야 합니다.

`aws:SourceArn` 값은 Amazon Managed Service for Prometheus 워크스페이스의 ARN이어야 합니다.

혼동된 대리인 문제로부터 보호하는 가장 효과적인 방법은 리소스의 전체 ARN이 포함된 `aws:SourceArn`글로벌 조건 컨텍스트 키를 사용하는 것입니다. 리소스의 전체 ARN을 모를 경우 또는 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(`*`)를 포함한 `aws:SourceArn`전역 조건 컨텍스트 키를 사용합니다. 예제: `arn:aws:servicename::123456789012:*`.

[Amazon Managed Service for Prometheus에 Amazon SNS 주제로 알림 메시지를 전송할 수 있는 권한 부여](#AMP-alertmanager-receiver-AMPpermission)에 표시되는 정책은 Amazon Managed Service for Prometheus에서 `aws:SourceArn` 및 `aws:SourceAccount` 전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법을 보여 줍니다.

# Amazon SNS 주제로 메시지를 보내도록 알림 관리자 구성
<a name="AMP-alertmanager-receiver-config"></a>

(신규 또는 기존) **표준** 유형 Amazon SNS 주제가 있으면 알림 관리자 구성에 이를 알림 수신기로 추가할 수 있습니다. 알림 관리자는 구성된 알림 수신기에 알림을 전달할 수 있습니다. 이를 완료하기 위해서는 Amazon SNS 주제의 Amazon 리소스 이름(ARN)을 알아야 합니다.

Amazon SNS 수신기 구성에 대한 자세한 내용은 Prometheus 구성 설명서에서 [<sns\$1configs>](https://prometheus.io/docs/alerting/latest/configuration/#sns_configs)를 참조하세요.

**지원되지 않는 속성**

Amazon Managed Service for Prometheus는 Amazon SNS를 알림 수신기로 지원합니다. 하지만 서비스 제약으로 인해 Amazon SNS 수신기의 모든 속성이 지원되는 것은 아닙니다. 다음 속성은 Amazon Managed Service for Prometheus 알림 관리자 구성 파일에서 허용되지 않습니다.
+ `api_url:`—Amazon Managed Service for Prometheus가 `api_url`을 설정하므로 이 속성은 허용되지 않습니다.
+ `Http_config`—이 속성을 사용하면 외부 프록시를 설정할 수 있습니다. Amazon Managed Service for Prometheus는 현재 이 기능을 지원하지 않습니다.

또한 리전 속성이 있으려면 SigV4 설정이 필요합니다. 리전 속성이 없으면 Amazon Managed Service for Prometheus에는 권한 부여를 요청하는 데 필요한 정보가 충분하지 않습니다.

**Amazon SNS 주제를 수신기로 사용하여 알림 관리자를 구성하려면**

1. 기존 알림 관리자 구성 파일을 사용하는 경우 텍스트 편집기에서 엽니다.

1. `receivers` 블록에 Amazon SNS 이외의 현재 수신기가 있는 경우 해당 수신기를 제거하세요. 여러 Amazon SNS 주제를 `receivers` 블록 내 개별 `sns_config` 블록에 배치하여 수신기가 되도록 구성할 수 있습니다.

1. `receivers` 섹션 내에 다음 YAML 블록을 추가합니다.

   ```
   - name: name_of_receiver
     sns_configs:
       - sigv4:
           region: AWS 리전
         topic_arn: ARN_of_SNS_topic
         subject: yoursubject
         attributes:
           key: yourkey
           value: yourvalue
   ```

`subject`를 지정하지 않으면 기본적으로 레이블 이름과 값이 포함된 기본 템플릿으로 제목이 생성되므로 SNS에 맞지 않게 값이 너무 길어질 수 있습니다. 제목에 적용되는 템플릿을 변경하려면 이 가이드의 [Amazon SNS에 JSON으로 메시지를 보내도록 알림 관리자 구성](AMP-alertmanager-receiver-JSON.md)을 참조하세요.

이제 Amazon Managed Service for Prometheus에 알림 관리자 구성 파일을 업로드해야 합니다. 자세한 내용은 [Amazon Managed Service for Prometheus에 알림 관리자 구성 파일 업로드](AMP-alertmanager-upload.md) 단원을 참조하십시오.

# Amazon SNS에 JSON으로 메시지를 보내도록 알림 관리자 구성
<a name="AMP-alertmanager-receiver-JSON"></a>

기본적으로 Amazon Managed Service for Prometheus 알림 관리자는 메시지를 일반 텍스트 목록 형식으로 출력합니다. 이는 다른 서비스에서 구문 분석하기가 더 어려울 수 있습니다. 대신 JSON 형식으로 알림을 보내도록 알림 관리자를 구성할 수 있습니다. JSON을 사용하면 AWS Lambda 또는 웹후크 수신 엔드포인트에서 Amazon SNS의 다운스트림 메시지를 더 간단하게 처리할 수 있습니다. 기본 템플릿을 사용하는 대신 메시지 내용을 JSON으로 출력하는 사용자 지정 템플릿을 정의하여 다운스트림 함수에서 더 쉽게 구문 분석하도록 할 수 있습니다.

알림 관리자의 메시지를 JSON 형식으로 Amazon SNS로 출력하려면 `template_files` 루트 섹션 내에 다음 코드를 포함하도록 알림 관리자 구성을 업데이트하세요.

```
default_template: |
   {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver }}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := .Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ $alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": {{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 -}},"annotations": {{ "{" }}{{ range $index, $annotations := $alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end }},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt }}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ $alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 -}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := .GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name }}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, $commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" }}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ $commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }}
   {{ define "sns.default.subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]{{ end }}
```

**참고**  
이 템플릿은 영숫자 데이터로 JSON을 생성합니다. 데이터에 특수 문자가 있는 경우 이 템플릿을 사용하기 전에 특수 문자를 인코딩하세요.

이 템플릿이 발신 알림에 사용되도록 하려면 다음과 같이 `alertmanager_config` 블록에서 템플릿을 참조하세요.

```
alertmanager_config: |
  global:
  templates:
    - 'default_template'
```

**참고**  
이 템플릿은 전체 메시지 본문을 JSON으로 작성하기 위한 것입니다. 이 템플릿은 전체 메시지 본문을 덮어씁니다. 이 특정 템플릿을 사용하려는 경우 메시지 본문을 재정의할 수 없습니다. 수동으로 수행한 모든 재정의는 템플릿보다 우선합니다.

해당 내용은 다음을 참조하세요.
+ 알림 관리자 구성 파일: [Amazon Managed Service for Prometheus에서 알림 관리자 구성을 생성하여 알림을 관리하고 라우팅합니다.](AMP-alertmanager-config.md)을 참조하세요.
+ 구성 파일 업로드: [Amazon Managed Service for Prometheus에 알림 관리자 구성 파일 업로드](AMP-alertmanager-upload.md)을 참조하세요.

# 다른 대상으로 알림 메시지를 보내도록 Amazon SNS 구성
<a name="AMP-alertmanager-SNS-otherdestinations"></a>

Amazon Managed Service for Prometheus는 Amazon Simple Notification Service(Amazon SNS)로만 알림 메시지를 보낼 수 있습니다. 이러한 메시지를 이메일, 웹후크, Slack 또는 OpsGenie와 같은 다른 대상으로 보내려면 해당 엔드포인트에 메시지를 전달하도록 Amazon SNS를 구성해야 합니다.

다음 섹션에서는 다른 대상으로 알림을 전달하도록 Amazon SNS를 구성하는 방법에 대해 설명합니다.

**Topics**
+ [이메일](#AMP-alertmanager-SNS-otherdestinations-email)
+ [Webhook](#AMP-alertmanager-SNS-otherdestinations-webhook)
+ [Slack](#AMP-alertmanager-SNS-otherdestinations-Slack)
+ [OpsGenie](#AMP-alertmanager-SNS-otherdestinations-OpsGenie)

## 이메일
<a name="AMP-alertmanager-SNS-otherdestinations-email"></a>

메시지를 이메일로 출력하도록 Amazon SNS 주제를 구성하려면 구독을 생성하세요. Amazon SNS 콘솔에서 **구독** 탭을 선택하여 **구독** 목록 페이지를 엽니다. **구독 생성**을 선택하고 **이메일**을 선택합니다. Amazon SNS는 나열된 이메일 주소로 확인 이메일을 보냅니다. 확인을 수락하면 구독한 주제의 Amazon SNS 알림을 이메일로 받을 수 있습니다. 자세한 내용은 [Amazon SNS 주제에 구독 설정](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)을 참조하세요.

## Webhook
<a name="AMP-alertmanager-SNS-otherdestinations-webhook"></a>

메시지를 webhook 엔드포인트로 출력하도록 Amazon SNS 주제를 구성하려면 구독을 생성하세요. Amazon SNS 콘솔에서 **구독** 탭을 선택하여 **구독** 목록 페이지를 엽니다. **구독 생성**을 선택하고 **HTTP/HTTPS**를 선택합니다. 구독을 생성한 후에는 확인 단계에 따라 구독을 활성화해야 합니다. 활성화되면 HTTP 엔드포인트는 Amazon SNS 알림을 수신합니다. 자세한 내용은 [Amazon SNS 주제에 구독 설정](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)을 참조하세요. Slack webhook를 사용하여 다양한 대상으로 메시지를 게시하는 방법에 대한 자세한 내용은 [Webhook를 사용하여 Amazon Chime, Slack 또는 Microsoft Teams에 Amazon SNS 메시지를 게시하려면 어떻게 해야 하나요?](https://aws.amazon.com/premiumsupport/knowledge-center/sns-lambda-webhooks-chime-slack-teams/)를 참조하세요.

## Slack
<a name="AMP-alertmanager-SNS-otherdestinations-Slack"></a>

메시지를 Slack에 출력하도록 Amazon SNS 주제를 구성하는 방법에는 두 가지가 있습니다. Slack의 이메일-채널 통합 기능으로 통합하여 Slack에서 이메일 메시지를 수락하고 Slack 채널로 전달하도록 하거나 Lambda 함수를 사용하여 Amazon SNS 알림을 Slack에 다시 작성할 수 있습니다. 슬랙 채널로 이메일을 전달하는 방법에 대한 자세한 내용은 [Slack Webhook의 AWS SNS 주제 구독 확인을 참조하세요](https://stackoverflow.com/questions/49341187/confirming-aws-sns-topic-subscription-for-slack-webhook). Amazon SNS 메시지를 Slack으로 변환하는 Lambda 함수를 구성하는 방법에 대한 자세한 내용은 [Amazon Managed Service for Prometheus를 Slack과 통합하는 방법](https://aws.amazon.com/blogs/mt/how-to-integrate-amazon-managed-service-for-prometheus-with-slack/)을 참조하세요.

## OpsGenie
<a name="AMP-alertmanager-SNS-otherdestinations-OpsGenie"></a>

메시지를 OpsGenie로 출력하도록 Amazon SNS 주제를 구성하는 방법에 대한 자세한 내용은 [수신 Amazon SNS와 Opsgenie 통합](https://support.atlassian.com/opsgenie/docs/integrate-opsgenie-with-incoming-amazon-sns/)을 참조하세요.

# Amazon SNS 메시지 검증 규칙 이해
<a name="AMP-alertmanager-receiver-validation-truncation"></a>

Amazon Simple Notification Service(Amazon SNS)는 특정 표준을 충족하는 메시지가 필요합니다. 이러한 표준을 충족하지 않는 메시지는 수신될 때 수정됩니다. 필요한 경우 Amazon SNS 수신기는 다음 규칙에 따라 알림 메시지를 검증하거나 자르거나 수정합니다.
+ 메시지에 utf가 아닌 문자가 포함되어 있습니다.
  + 메시지가 **Error - not a valid UTF-8 encoded string**으로 바뀝니다.
  + 키가 **truncated**이고 값이 **true**인 하나의 메시지 속성이 추가됩니다.
  + 키가 **modified**이고 값이 **Message: Error - not a valid UTF-8 encoded string**인 하나의 메시지 속성이 추가됩니다.
+ 메시지가 비어 있습니다.
  + 메시지가 **Error - Message should not be empty**로 바뀝니다.
  + 키가 **modified**이고 값이 **Message: Error - Message should not be empty**인 하나의 메시지 속성이 추가됩니다.
+ 메시지가 잘렸습니다.
  + 메시지에는 잘린 내용이 포함됩니다.
  + 키가 **truncated**이고 값이 **true**인 하나의 메시지 속성이 추가됩니다.
  + 키가 "modified"이고 값이 **Message: Error - Message has been truncated from *X* KB, because it exceeds the 256 KB size limit**인 하나의 메시지 속성이 추가됩니다.
+ 제목에 제어 문자 또는 비ASCII 문자가 포함되어 있습니다.
  + 제목에 제어 문자 또는 비 ASCII 문자가 포함된 경우 SNS는 제목을 **Error - contains control- or non-ASCII characters**로 바꿉니다.
  + SNS 이메일 제목의 경우 줄 바꿈(`\n`)과 같은 제어 문자를 제거합니다.
+ 제목이 ASCII가 아닙니다.
  + 제목이 **Error - contains non printable ASCII characters**로 바뀝니다.
  + 키가 **modified**이고 값이 **Subject: Error - contains non-printable ASCII characters**인 하나의 메시지 속성이 추가됩니다.
+ 제목이 잘렸습니다.
  + 제목에는 잘린 내용이 표시됩니다.
  + 키가 **modified**이고 값이 **Subject: Error - Subject has been truncated from *X* characters, because it exceeds the 100 character size limit**인 하나의 메시지 속성이 추가됩니다.
+ 메시지 속성에 잘못된 키/값이 있습니다.
  + 잘못된 메시지 속성은 제거됩니다.
  + 키가 **modified**이고 값이 **MessageAttribute: Error - *X* of the message attributes have been removed because of invalid MessageAttributeKey or MessageAttributeValue**인 하나의 메시지 속성이 추가됩니다.
+ 메시지 속성이 잘렸습니다.
  + 추가 메시지 속성은 제거됩니다.
  + 키가 **modified**이고 값이 **MessageAttribute: Error - *X* of the message attributes have been removed, because it exceeds the 256KB size limit**인 하나의 메시지 속성이 추가됩니다.