翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SNS トピックにアラートメッセージを送信するためのアクセス許可を Amazon Managed Service for Prometheus に付与する
Amazon SNS トピックにメッセージを送信するには、Amazon Managed Service for Prometheus にアクセス許可を付与する必要があります。次のポリシーステートメントは、そのアクセス許可を付与します。これには、混乱した代理問題と呼ばれるセキュリティ問題の防止に役立つ Condition
ステートメントが含まれています。Condition
ステートメントは、Amazon SNS トピックへのアクセスを制限し、この特定のアカウントと Amazon Managed Service for Prometheus ワークスペースからのオペレーションのみを許可します。混乱した代理に関する問題の詳細については、「サービス間の混乱した代理の防止」を参照してください。
Amazon SNS トピックにメッセージを送信するためのアクセス許可を Amazon Managed Service for Prometheus に付与するには
Amazon SNS コンソール (https://console.aws.amazon.com/sns/v3/home
) を開きます。 -
ナビゲーションペインで、[トピック] を選択します。
-
Amazon Managed Service for Prometheus で使用しているトピックの名前を選択します。
-
[編集] を選択します。
-
[アクセスポリシー] を選択し、次のポリシーステートメントを既存のポリシーに追加します。
{ "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 アクセス許可」を参照してください。
-
[変更を保存] を選択します。
注記
デフォルトでは、Amazon SNS は AWS:SourceOwner
に条件を設定したアクセスポリシーを作成します。詳細については、「SNS アクセスポリシー」を参照してください。
注記
IAM は、最も制限の厳しいポリシーを優先するルールに従います。SNS トピックに、ドキュメント化された Amazon SNS ポリシーブロックよりも制限の厳しいポリシーブロックがある場合、トピックポリシーのアクセス許可は付与されません。ポリシーを評価して何が許可されているかを確認するには、「ポリシーの評価論理」を参照してください。
サービス間の混乱した代理の防止
混乱した代理問題とは、アクションを実行する許可を持たないエンティティが、より高い特権を持つエンティティにそのアクションの実行を強制できるというセキュリティ問題です。AWS では、サービス間でのなりすましによって、混乱した代理問題が発生する場合があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐために、AWS には、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールが用意されています。
リソースポリシーで aws:SourceArn
および aws: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 に付与する」に記載されているポリシーは、Amazon Managed Service for Prometheus で aws:SourceArn
および aws:SourceAccount
グローバル条件コンテキストキーを使用して、混乱した代理問題を防止する方法を示しています。