Exemplos de políticas baseadas em identidade do Amazon Pinpoint - Amazon Pinpoint

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á.

Exemplos de políticas baseadas em identidade do Amazon Pinpoint

Por padrão, usuários e funções não têm permissão para criar ou modificar recursos do Amazon Pinpoint. Eles também não podem realizar tarefas usando o AWS Management Console, AWS CLI, ou uma AWS API. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e funções permissão para executar operações de API específicas nos recursos de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos que exigem essas permissões.

Para saber como criar uma política baseada em identidade do IAM utilizando esses exemplos de documentos de política JSON, consulte Criar políticas na guia JSON no Guia do usuário do IAM.

Práticas recomendadas de política

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon Pinpoint em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões aos seus usuários e cargas de trabalho, use as políticas AWS gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para obter mais informações, consulte Políticas gerenciadas pela AWS ou Políticas gerenciadas pela AWS para funções de trabalho no Guia do usuário do IAM.

  • Aplique permissões de privilégio mínimo: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte Políticas e permissões no IAM no Guia do usuário do IAM.

  • Use condições nas políticas do IAM para restringir ainda mais o acesso: você pode adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como AWS CloudFormation. Para obter mais informações, consulte Elementos da política JSON do IAM: condição no Guia do usuário do IAM.

  • Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação de políticas do IAM Access Analyzer no Guia do Usuário do IAM.

  • Exigir autenticação multifator (MFA) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para obter mais informações, consulte Configuração de acesso à API protegido por MFA no Guia do Usuário do IAM.

Para obter mais informações sobre as práticas recomendadas do IAM, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

Usar o console do Amazon Pinpoint

Para acessar o console do Amazon Pinpoint, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os recursos do Amazon Pinpoint em sua AWS conta. Se você criar uma política baseada em identidade que aplique permissões mais restritivas do que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou funções) com essa política. Para garantir que essas entidades possam usar o console do Amazon Pinpoint, anexe a política a elas. Para obter informações, consulte Adicionar permissões a um usuário no Guia do usuário do IAM.

O exemplo de política a seguir fornece acesso somente de leitura ao console do Amazon Pinpoint em uma região específica. AWS Isso inclui acesso somente de leitura a outros serviços dos quais o console do Amazon Pinpoint depende, como Amazon Simple Email Service (Amazon SES), IAM e Amazon Kinesis.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseConsole", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, { "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "iam:ListRoles", "kinesis:ListStreams", "s3:List*", "ses:Describe*", "ses:Get*", "ses:List*", "sns:ListTopics" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }

No exemplo de política anterior, region substitua pelo nome de uma AWS região e accountId substitua pelo ID da sua AWS conta.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para a API AWS CLI ou para a AWS API. Em vez disso, permita o acesso somente a ações que correspondam à operação de API que estiverem tentando executar.

Exemplo: acessar um único projeto do Amazon Pinpoint

Você também pode criar políticas somente leitura que fornecem acesso somente a projetos específicos. O exemplo a seguir permite que os usuários entrem no console e visualizem uma lista de projetos. Ele também permite visualizar informações sobre recursos relacionados para outros serviços da AWS dos quais o console do Amazon Pinpoint depende, como Amazon SES, IAM e Amazon Kinesis. Contudo, a política apenas permite que os usuários visualizem informações adicionais sobre o projeto especificado nela. Você pode modificar essa política para permitir o acesso a projetos ou AWS regiões adicionais.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewProject", "Effect": "Allow", "Action": "mobiletargeting:GetApps", "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, { "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/projectId", "arn:aws:mobiletargeting:region:accountId:apps/projectId/*", "arn:aws:mobiletargeting:region:accountId:reports" ] }, { "Effect": "Allow", "Action": [ "ses:Get*", "kinesis:ListStreams", "firehose:ListDeliveryStreams", "iam:ListRoles", "ses:List*", "sns:ListTopics", "ses:Describe*", "s3:List*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }

No exemplo anterior, region substitua pelo nome de uma AWS região, accountId substitua pelo ID da sua AWS conta e projectId substitua pelo ID do projeto Amazon Pinpoint ao qual você deseja fornecer acesso.

Da mesma forma, você pode criar políticas que concedam a um usuário em sua AWS conta acesso de gravação limitado a um dos seus projetos do Amazon Pinpoint, por exemplo, o projeto que tem o ID do 810c7aab86d42fb2b56c8c966example projeto. Nesse caso, permita que o usuário visualize, adicione e atualize os componentes do projeto, como segmentos e campanhas, mas não exclua os componentes.

Além de conceder permissões para as ações mobiletargeting:Get e mobiletargeting:List, crie uma política que conceda permissões às seguintes ações: mobiletargeting:Create, mobiletargeting:Update e mobiletargeting:Put. Estas são as permissões adicionais necessárias para criar e gerenciar a maioria dos componentes do projeto. Por exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitedWriteProject", "Effect": "Allow", "Action": "mobiletargeting:GetApps", "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, { "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*", "mobiletargeting:Create*", "mobiletargeting:Update*", "mobiletargeting:Put*" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/810c7aab86d42fb2b56c8c966example", "arn:aws:mobiletargeting:region:accountId:apps/810c7aab86d42fb2b56c8c966example/*", "arn:aws:mobiletargeting:region:accountId:reports" ] }, { "Effect": "Allow", "Action": [ "ses:Get*", "kinesis:ListStreams", "firehose:ListDeliveryStreams", "iam:ListRoles", "ses:List*", "sns:ListTopics", "ses:Describe*", "s3:List*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }

Exemplo: visualizar recursos do Amazon Pinpoint com base em tags

Você pode usar condições em uma política baseada em identidade para controlar o acesso aos recursos do Amazon Pinpoint com base em tags. Esta política de exemplo mostra como você pode criar esse tipo de política para permitir a visualização dos recursos do Amazon Pinpoint. No entanto, a permissão será concedida somente se a tag Owner tiver o valor do nome desse usuário. Essa política também concede as permissões necessárias concluir essa ação no console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListResources", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "*" }, { "Sid": "ViewResourceIfOwner", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:*:*:*", "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "userName" }, "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:mobiletargeting:region:accountId:*" } } } ] }

Você pode anexar esse tipo de política aos usuários do na sua conta. Se um usuário chamado richard-roe tentar visualizar um recurso do Amazon Pinpoint, o recurso deve ser marcado como Owner=richard-roe ou owner=richard-roe. Caso contrário, ele terá o acesso negado. A chave da tag de condição Owner corresponde a Owner e a owner porque os nomes das chaves de condição não fazem distinção entre maiúsculas e minúsculas. Para obter mais informações, consulte Elementos de política JSON do IAM: condição no Guia do usuário do IAM.

Exemplo: permitir que os usuários visualizem suas próprias permissões

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Exemplos: fornecer acesso às ações da API do Amazon Pinpoint

Esta seção fornece políticas de exemplo que permitem o acesso a recursos que estão disponíveis na API do Amazon Pinpoint, que é a API principal do Amazon Pinpoint. Para saber mais sobre essa API, consulte Referência da API do Amazon Pinpoint.

Acesso somente leitura

O exemplo de política a seguir permite acesso somente de leitura a todos os recursos em sua conta do Amazon Pinpoint em uma região específica. AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewAllResources", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:region:accountId:*" } ] }

No exemplo anterior, region substitua pelo nome de uma AWS região e accountId substitua pelo ID da sua AWS conta.

Acesso de administrador

A política de exemplo a seguir permite acesso completo a todas as ações e recursos do Amazon Pinpoint na conta do Amazon Pinpoint:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FullAccess", "Effect": "Allow", "Action": [ "mobiletargeting:*" ], "Resource": "arn:aws:mobiletargeting:region:accountId:*" } ] }

No exemplo anterior, substitua pelo accountId ID da sua AWS conta.

Exemplos: fornecer acesso às ações da API de SMS e voz no Amazon Pinpoint

Esta seção fornece políticas de exemplo que permitem acesso aos atributos que estão disponíveis na API de SMS e voz do Amazon Pinpoint. Esta é uma API complementar que oferece opções avançadas para uso e gerenciamento de canais de SMS e voz no Amazon Pinpoint. Para saber mais sobre essa API, consulte Referência da API de SMS e voz do Amazon Pinpoint.

Acesso somente leitura

O exemplo de política a seguir permite acesso somente de leitura a todas as ações e recursos da API de voz e SMS do Amazon Pinpoint em sua conta: AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoiceReadOnly", "Effect": "Allow", "Action": [ "sms-voice:Get*", "sms-voice:List*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:region:accountId:*" } } } ] }

Acesso de administrador

O exemplo de política a seguir permite acesso total a todas as ações e recursos da API de voz e SMS do Amazon Pinpoint em sua AWS conta:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoiceFullAccess", "Effect": "Allow", "Action": [ "sms-voice:*", ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:region:accountId:*" } } } ] }

Exemplo: restringir o acesso ao projeto do Amazon Pinpoint a endereços IP específicos

O exemplo de política a seguir concede permissões a qualquer usuário para realizar qualquer ação do Amazon Pinpoint em um projeto específico ()projectId. No entanto, a solicitação deve se originar no intervalo de endereços IP que são especificados na condição.

A condição nesta declaração identifica o 54.240.143.* intervalo de endereços permitidos do Protocolo de Internet versão 4 (IPv4), com uma exceção:54.240.143.188. O Condition bloco usa as NotIpAddress condições IpAddress e e a chave de aws:SourceIp condição, que é uma chave AWS de condição ampla. Para obter mais informações sobre essas chaves de condições, consulte Especificar condições em uma política no Guia do usuário do IAM. Os aws:SourceIp IPv4 valores usam a notação CIDR padrão. Para obter mais informações, consulte Operadores de condição de endereço IP no Guia do usuário do IAM.

{ "Version":"2012-10-17", "Id":"AMZPinpointPolicyId1", "Statement":[ { "Sid":"IPAllow", "Effect":"Allow", "Principal":"*", "Action":"mobiletargeting:*", "Resource":[ "arn:aws:mobiletargeting:region:accountId:apps/projectId", "arn:aws:mobiletargeting:region:accountId:apps/projectId/*" ], "Condition":{ "IpAddress":{ "aws:SourceIp":"54.240.143.0/24" }, "NotIpAddress":{ "aws:SourceIp":"54.240.143.188/32" } } } ] }

Exemplo: restringir o acesso ao Amazon Pinpoint com base em tags

O exemplo de política a seguir concede permissões para realizar qualquer ação do Amazon Pinpoint em um projeto específico ()projectId. No entanto, as permissões são concedidas somente se a solicitação derivar de um usuário cujo nome seja um valor na tag de recurso Owner do projeto, conforme especificado na condição.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ModifyResourceIfOwner", "Effect": "Allow", "Action": "mobiletargeting:*", "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/projectId", "arn:aws:mobiletargeting:region:accountId:apps/projectId/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "userName" } } } ] }

Exemplo: permitir que o Amazon Pinpoint envie e-mails usando identidades que foram verificadas no Amazon SES

Quando você verifica uma identidade de e-mail (como um endereço de e-mail ou domínio) por meio do console do Amazon Pinpoint, essa identidade é configurada automaticamente para que possa ser usada tanto pelo Amazon Pinpoint quanto pelo Amazon SES. No entanto, se você verificar uma identidade de e-mail por meio do Amazon SES e quiser usar essa identidade com o Amazon Pinpoint, deverá aplicar uma política a essa identidade.

O exemplo de política a seguir concede ao Amazon Pinpoint permissão para enviar e-mails usando uma identidade de e-mail que foi verificada pelo Amazon SES.

{ "Version":"2008-10-17", "Statement":[ { "Sid":"PinpointEmail", "Effect":"Allow", "Principal":{ "Service":"pinpoint.amazonaws.com" }, "Action":"ses:*", "Resource":"arn:aws:ses:region:accountId:identity/emailId", "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId" }, "StringLike":{ "aws:SourceArn":"arn:aws:mobiletargeting:region:accountId:apps/*" } } } ] }

Se você usa o Amazon Pinpoint na região AWS GovCloud (Oeste dos EUA), use o seguinte exemplo de política em vez disso:

{ "Version":"2008-10-17", "Statement":[ { "Sid":"PinpointEmail", "Effect":"Allow", "Principal":{ "Service":"pinpoint.amazonaws.com" }, "Action":"ses:*", "Resource":"arn:aws-us-gov:ses:us-gov-west-1:accountId:identity/emailId", "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId" }, "StringLike":{ "aws:SourceArn":"arn:aws-us-gov:mobiletargeting:us-gov-west-1:accountId:apps/*" } } } ] }