暗号化された SNS トピックで CloudWatch アラームを設定する方法を教えてください。

所要時間2分
0

暗号化された Amazon Simple Notification Service (Amazon SNS) トピックを使用して Amazon CloudWatch アラームを設定したいと考えています。

簡単な説明

CloudWatch アラームで暗号化された Amazon SNS トピックを含む Amazon SNS 通知を配信するには、AWS Key Management Service (AWS KMS) のカスタマーマネージドキーを使用する必要があります。暗号化にデフォルトの AWS マネージドキーである alias/aws/sns を使用した場合、CloudWatch アラームはアラームアクションを開始することができません。その場合、[アラーム履歴] セクションに次のようなエラーが表示されます。

"アクション arn:aws:sns:us-east-1:ACCOUNT_ID:TOPIC_NAME を実行できません。発生したエラー: "CloudWatch アラームは、SNS トピックの暗号化キーへのアクセスを許可されていません。"

注: Amazon SNS のデフォルトの AWS KMS キーポリシーでは、CloudWatch アラームは kms:Decryptkms:GenerateDataKey API コールの実行を許可されていません。AWS マネージドキーのポリシーを手動で編集することはできません。

解決策

暗号化された Amazon SNS トピックを使用して CloudWatch アラームを設定するには、次の手順を実行します。

  1. Amazon SNS コンソールを開きます。

  2. [トピックの作成] を選択します。

  3. [タイプ][スタンダード] を選択し、トピック名と表示名を作成します。

  4. [暗号化 - オプション] 設定を展開し、[暗号化] を有効にします。

  5. カスタマーマネージドキーを選択します。

  6. キーポリシーを手動で編集し、暗号化 Amazon SNS トピックにメッセージを発行するためのアクセス許可である DecryptGenerateDataKey を CloudWatch アラームに付与します。

    {      
    "Sid": "Allow_CloudWatch_for_CMK",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey*"  
      ],  
      "Resource": "*"  
    }
  7. (オプション) ポリシーの制限を厳格にするには、Condition 要素を含めます。たとえば、次のポリシーの Condition コンテキストキーでは、組織 o-123456789 によるアクションのみが許可されます。

    "Resource": "*"
     "Condition": {
        "StringEquals": {
         "aws:SourceOrgID": "o-123456789"
      }
  8. Amazon SNS トピックのアクセスポリシーに Publish アクセス許可が含まれており、CloudWatch アラームが Amazon SNS トピックにメッセージを発行できることを確認します。

    {     
    "Sid": "Allow_Publish_Alarms",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": "sns:Publish",  
      "Resource": "arn:aws:sns:example-region:example-account-id:example-topic"}

    注: お使いのものでそれぞれ、example-region を AWS リージョンに、example-account-id をアカウント ID に、example-topic をトピック名に置き換えます。

  9. [トピックの作成] を選択します。

  10. 次のいずれかに基づいて CloudWatch アラームを作成します。
    静的しきい値
    メトリクスの数式
    Metrics Insights のクエリ
    接続されているデータソース
    異常検知

関連情報

Amazon CloudWatch アラームを使用する

Amazon SNS に発行されたメッセージを AWS KMS で暗号化する

CloudWatch アラームトリガーに関する SNS 通知が届かない理由を教えてください

コメントはありません

関連するコンテンツ