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

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

Amazon SNS トピックのタグ付け

Amazon SNS では、Amazon SNS トピックのタグ付けがサポートされています。これにより、トピックに関連するコストを追跡および管理し、AWS Identity and Access Management (IAM) ポリシーのセキュリティを強化し、数千のトピックを簡単に検索またはフィルタリングできます。タグ付けすることで、AWS Resource Groups を使用して Amazon 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 console (Amazon SNS コンソール) または AWS SDK を使用してリソースにタグ付けする方法については、「Configuring tags」 (タグを設定する) を参照してください。

IAM アイデンティティのアクセスを制限できます。たとえば、キー environment および値 production のタグを含むすべてのAmazon SNS トピックへの Publish および PublishBatch のアクセスを制限し、他のすべての Amazon SNS トピックへのアクセスを許可することができます。次の例では、ポリシーにより、production でタグ付けされたトピックにメッセージを公開する機能が制限され、development でタグ付けされた トピックにメッセージを公開できるようになります。詳細については、IAM ユーザーガイドの [Controlling Access Using Tags] (タグを使用したアクセス制御) を参照してください。

注記

Publish の IAM の許可を設定すると、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()); } }