As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
O Amazon SNS oferece suporte à marcação de tópicos do Amazon SNS. Isso pode ajudá-lo a monitorar e gerenciar os custos associados aos seus tópicos, fornecer segurança aprimorada em suas políticas de AWS Identity and Access Management (IAM) e permitir que você pesquise ou filtre facilmente milhares de tópicos. A marcação permite que você gerencie seus tópicos do Amazon SNS usando Resource AWS Groups. Para obter mais informações sobre o Resource Groups, consulte o Guia do usuário do AWS Resource Groups.
Marcação para alocação de custos
Para organizar e identificar seus tópicos do Amazon SNS para alocação de custos, você pode adicionar etiquetas que identificam o objetivo de um tópico. Isso é especialmente útil quando você tem vários tópicos. Você pode usar etiquetas de alocação de custos para organizar sua AWS fatura de forma a refletir sua própria estrutura de custos. Para fazer isso, inscreva-se para receber a fatura AWS da sua conta e incluir as chaves e valores da tag. Para obter mais informações, consulte Configurar um relatório de alocação de custos mensal, no Guia do usuário do AWS Billing and Cost Management.
Por exemplo, é possível adicionar etiquetas que representam o centro de custos e o objetivo dos seus tópicos do Amazon SNS, da seguinte maneira.
Recurso | Chave | Valor |
---|---|---|
Tópico 1 | Centro de custos | 43289 |
Aplicação | Processamento de pedidos | |
Tópico 2 | Centro de custos | 43289 |
Aplicação | Processamento de pagamentos | |
Tópico 3 | Centro de custos | 76585 |
Aplicação | Arquivamento |
Esse esquema de marcação permite que você agrupe dois tópicos executando tarefas relacionadas no mesmo centro de custos e, ao mesmo tempo, marcar uma atividade não relacionada com outra etiqueta de alocação de custos.
Marcação para controle de acesso
AWS Identity and Access Management suporta o controle do acesso a recursos com base em tags. Após a marcação dos seus recursos, forneça informações sobre as etiquetas de recurso no elemento de condição de uma política do IAM para gerenciar o acesso baseado em etiquetas. Para obter informações sobre como marcar seus recursos usando o console do Amazon SNS ou o AWS SDK, consulte Configurar etiquetas.
É possível restringir o acesso de uma identidade do IAM. Por exemplo, você pode restringir o acesso de Publish
e PublishBatch
a todos os tópicos do Amazon SNS que incluem uma etiqueta com a chave environment
e o valor production
, enquanto permite acesso a todos os outros tópicos do Amazon SNS. No exemplo abaixo, a política restringe a capacidade de publicar mensagens em tópicos marcados comproduction
, enquanto permite que mensagens sejam publicadas em tópicos marcados com development
. Para obter mais informações, consulte Controlar o acesso usando etiquetas, no Guia do usuário do IAM.
nota
Configurar a permissão do IAM para Publish
define a permissão para Publish
e 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"
}
}
}]
}
Marcação para pesquisa e filtragem de recursos
Uma AWS conta pode ter dezenas de milhares de tópicos do Amazon SNS (consulte Cotas do Amazon SNS para obter detalhes). Por meio da marcação de tópicos, é possível simplificar o processo de pesquisa ou filtragem de tópicos.
Por exemplo, você pode ter centenas de tópicos que estão associados ao seu ambiente de produção. Em vez de ter que pesquisar manualmente esses tópicos, você pode consultar todos eles com uma determinada etiqueta:
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());
}
}