Amazon SNSトピックのタグ付け - Amazon Simple Notification Service

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

Amazon SNSトピックのタグ付け

Amazon SNS は Amazon SNSトピックのタグ付けをサポートしています。これにより、トピックに関連するコストを追跡および管理し、 AWS Identity and Access Management (IAM) ポリシーのセキュリティを強化し、数千のトピックを簡単に検索またはフィルタリングできます。タグ付けにより、Resource Groups を使用して Amazon AWS SNSトピックを管理できます。Resource Groups の詳細については、「AWS Resource Groups ユーザーガイド」を参照してください。

コスト割り当てのタグ付け

コスト配分のために Amazon SNSトピックを整理して識別するには、トピックの目的を識別するタグを追加できます。これは特に、多くのトピックを持っている場合に便利です。コスト配分タグを使用して、独自のコスト構造を反映するように AWS 請求書を整理できます。これを行うには、サインアップして、タグのキーと値を含めるための AWS アカウント請求書を取得します。詳細については、「AWS Billing and Cost Management User Guide」「Setting Up a Monthly Cost Allocation Report」を参照してください。

例えば、次のように Amazon SNSトピックのコストセンターと目的を表すタグを追加できます。

リソース キー
トピック 1 コストセンター 43289
アプリケーション 注文処理
トピック 2 コストセンター 43289
アプリケーション お支払い方法
トピック 3 コストセンター 76585
アプリケーション アーカイブ

このタグ付けスキームでは、関連するタスクを実行している 2 つのトピックを同じコストセンターにグループ化する一方で、関連性のないアクティビティには別のコスト割り当てタグでタグ付けすることができます。

アクセス制御のタグ付け

AWS Identity and Access Management は、タグに基づいてリソースへのアクセスの制御をサポートします。リソースにタグを付けたら、 IAMポリシーの条件要素にリソースタグに関する情報を入力して、タグベースのアクセスを管理します。Amazon SNSコンソールまたは を使用してリソースにタグを付ける方法については、「タグの設定AWS SDK」を参照してください。

IAM ID のアクセスを制限できます。例えば、 キーPublishと値 を持つタグを含むすべての Amazon SNSトピックへの environmentPublishBatch アクセスを制限しproduction、他のすべての Amazon SNSトピックへのアクセスを許可できます。次の例では、ポリシーにより、production でタグ付けされたトピックにメッセージを公開する機能が制限され、development でタグ付けされた トピックにメッセージを公開できるようになります。詳細については、「 IAMユーザーガイド」の「タグを使用したアクセスの制御」を参照してください。

注記

のIAMアクセス許可を設定すると、 Publishと の両方のアクセス許可Publishが設定されますPublishBatch

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:*:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:*:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

リソース検索およびフィルタリングのタグ付け

AWS アカウントには、数万の Amazon SNSトピックを含めることができます (詳細については、「Amazon SNS Quotas」を参照してください)。トピックにタグ付けすることで、トピックの検索やフィルタリングのプロセスを簡素化することができます。

たとえば、本番環境に関連するトピックが数百個ある場合があります。これらのトピックを手動で検索するのではなく、指定されたタグを持つすべてのトピックを照会することができます。

import com.amazonaws.services.resourcegroups.AWSResourceGroups; import com.amazonaws.services.resourcegroups.AWSResourceGroupsClientBuilder; import com.amazonaws.services.resourcegroups.model.QueryType; import com.amazonaws.services.resourcegroups.model.ResourceQuery; import com.amazonaws.services.resourcegroups.model.SearchResourcesRequest; import com.amazonaws.services.resourcegroups.model.SearchResourcesResult; public class Example { public static void main(String[] args) { // Query Amazon SNS Topics with tag "keyA" as "valueA" final String QUERY = "{\"ResourceTypeFilters\":[\"AWS::SNS::Topic\"],\"TagFilters\":[{\"Key\":\"keyA\", \"Values\":[\"valueA\"]}]}"; // Initialize ResourceGroup client AWSResourceGroups awsResourceGroups = AWSResourceGroupsClientBuilder .standard() .build(); // Query all resources with certain tags from ResourceGroups SearchResourcesResult result = awsResourceGroups.searchResources( new SearchResourcesRequest().withResourceQuery( new ResourceQuery() .withType(QueryType.TAG_FILTERS_1_0) .withQuery(QUERY) )); System.out.println("SNS Topics with certain tags are " + result.getResourceIdentifiers()); } }