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 사용 설명서에서 월별 비용 할당 보고서 설정을 참조하세요.

예를 들어 다음과 같이 Amazon SNS 주제의 비용 센터 및 목적을 나타내는 태그를 추가할 수 있습니다.

리소스
주제 1 비용 센터 43289
애플리케이션 주문 처리
주제 2 비용 센터 43289
애플리케이션 결제 처리
주제 3 비용 센터 76585
애플리케이션 보관

이 태그 지정 체계에서는 동일한 비용 센터에서 관련된 작업을 수행하는 2개의 주제를 그룹화할 수 있고, 관련이 없는 활동은 다른 비용 할당 태그를 사용해 태그 지정할 수 있습니다.

액세스 제어용 태그 지정

AWS Identity and Access Management는 태그를 기반으로 리소스에 대한 액세스를 제어하는 작업을 지원합니다. 리소스에 태그를 지정한 후 태그 기반 액세스를 관리하기 위해 IAM 정책의 조건 요소에 리소스 태그에 대한 정보를 제공합니다. Amazon SNS 콘솔 또는 AWS SDK를 사용하여 리소스에 태그를 지정하는 방법에 대한 자세한 내용은 태그 구성을 참조하세요.

IAM 자격 증명에 대한 액세스를 제한할 수 있습니다. 예를 들어 키가 environment이고 값이 production인 태그를 포함하는 모든 Amazon SNS 주제에 대한 PublishPublishBatch 액세스는 제한하면서 다른 모든 Amazon SNS 주제에 대한 액세스는 허용할 수 있습니다. 아래 예에서 정책은 production으로 태그가 지정된 주제에 메시지를 게시하는 기능을 제한하면서 development로 태그가 지정된 주제에 메시지를 게시할 수 있도록 허용합니다. 자세한 내용은 IAM 사용 설명서의 태그를 사용한 액세스 제어를 참조하세요.

참고

Publish에 대한 IAM 권한을 설정하면 PublishPublishBatch 모두에 대한 권한이 설정됩니다.

{ "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 할당량 참조). 주제에 태그를 지정하여 주제를 검색하거나 필터링하는 프로세스를 간소화할 수 있습니다.

예를 들어 프로덕션 환경과 관련된 수백 개의 주제가 있을 수 있습니다. 이러한 주제를 개별적으로 검색할 필요 없이 지정된 태그가 있는 모든 주제를 쿼리할 수 있습니다.

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()); } }