

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SNS トピックにアラートメッセージを送信するためのアクセス許可を Amazon Managed Service for Prometheus に付与する
<a name="AMP-alertmanager-receiver-AMPpermission"></a>

Amazon SNS トピックにメッセージを送信するには、Amazon Managed Service for Prometheus にアクセス許可を付与する必要があります。次のポリシーステートメントは、そのアクセス許可を付与します。これには、*混乱した代理*問題と呼ばれるセキュリティ問題の防止に役立つ `Condition` ステートメントが含まれています。`Condition` ステートメントは、Amazon SNS トピックへのアクセスを制限し、この特定のアカウントと Amazon Managed Service for Prometheus ワークスペースからのオペレーションのみを許可します。混乱した代理に関する問題の詳細については、「[サービス間での不分別な代理処理の防止](#cross-service-confused-deputy-prevention)」を参照してください。

**Amazon SNS トピックにメッセージを送信するためのアクセス許可を Amazon Managed Service for Prometheus に付与するには**

1. Amazon SNS コンソールの[https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)を開いてください。

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**) に置き換えます。

次の表に、オプトインリージョンとそれに対応するリージョンサービスプリンシパルを示します。


**オプトインリージョンとそのリージョンサービスプリンシパル**  

| リージョン名 | リージョン | リージョンサービスプリンシパル | 
| --- | --- | --- | 
| アフリカ (ケープタウン) | af-south-1 | af-south-1.aps.amazonaws.com | 
| アジアパシフィック (香港) | ap-east-1 | ap-east-1.aps.amazonaws.com | 
| アジアパシフィック (タイ) | ap-southeast-7 | ap-southeast-7.aps.amazonaws.com | 
| 欧州 (ミラノ) | 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、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐために、 AWS には、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールが用意されています。

リソースポリシーで [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) グローバル条件コンテキストキーを使用して、Amazon Managed Service for Prometheus が Amazon SNS に付与するリソースへのアクセス許可を制限することをお勧めします。両方のグローバル条件コンテキストキーを同じポリシーステートメントで使用する場合は、`aws:SourceAccount` 値と、`aws:SourceArn` 値に含まれるアカウントが、同じアカウント ID を示している必要があります。

`aws:SourceArn` の値は、Amazon Managed Service for Prometheus ワークスペースの ARN でなければなりません。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して `aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合は、`aws:SourceArn` グローバルコンテキスト条件キーを使用して、ARN の未知部分をワイルドカード (`*`) で表します。例えば、`arn:aws:{{servicename}}::{{123456789012}}:*` です。

「[Amazon SNS トピックにアラートメッセージを送信するためのアクセス許可を Amazon Managed Service for Prometheus に付与する](#AMP-alertmanager-receiver-AMPpermission)」に記載されているポリシーは、Amazon Managed Service for Prometheus で `aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題を防止する方法を示しています。