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

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 executar tarefas usando o AWS Management Console, a AWS CLI ou uma API da AWS. 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.

Melhores práticas 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 seus Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com as políticas gerenciadas pela AWS e avance para as permissões de privilégio mínimo –- para começar a conceder permissões a seus usuários e workloads, use as políticas gerenciadas pela AWS, que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente AWS 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 atributos 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 gravar 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 a ações de serviço, se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o 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 100 verificações de política e recomendações acionáveis para ajudá-lo 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 houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative 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 Acesso seguro à API com a 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 conta da AWS. 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 mais informações, consulte Adicionando Permissões a um Usuário no Guia do Usuário do IAM.

O exemplo a seguir fornece acesso somente leitura ao console do Amazon Pinpoint em uma região específica da 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, substitua region pelo nome de uma região da AWS e substitua accountId por seu ID de conta da AWS.

Não é necessário conceder permissões mínimas do console para usuários fazendo chamadas somente para AWS CLI ou para a API do AWS. Em vez disso, permita o acesso somente a ações que correspondam a 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 acesso a projetos ou regiões da AWS 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, substitua region pelo nome de uma Região da AWS, accountId pelo ID de sua conta da AWS e projectId pelo ID do projeto do Amazon Pinpoint ao qual você deseja fornecer acesso.

Da mesma forma, é possível criar políticas que concedam a um usuário na conta da AWS acesso limitado de gravação a um de seus projetos do Amazon Pinpoint, por exemplo, aquele que contém o ID do projeto 810c7aab86d42fb2b56c8c966example. 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 de forma programática usando a AWS CLI ou a AWS API.

{ "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 a seguir permite acesso somente leitura a todos os recursos na conta do Amazon Pinpoint em uma região específica da AWS.

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

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

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 accountId pelo ID da conta da AWS.

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

A política de exemplo a seguir permite o acesso somente leitura a todas as ações e recursos da API de SMS e voz do Amazon Pinpoint na conta da 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

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

{ "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

A política de exemplo a seguir concede permissões a todos os usuários para realizar qualquer ação do Amazon Pinpoint em um projeto especificado (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 instrução identifica o intervalo 54.240.143.* de endereços do Internet Protocol versão 4 (IPv4), com uma exceção: 54.240.143.188. O bloco da Condition usa as condições IpAddress e NotIpAddress e a chave de condição aws:SourceIp, que é uma chave de condição que abrange toda a AWS. 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 valores IPv4 aws:SourceIp 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

A política de exemplo a seguir concede permissões para realizar qualquer ação do Amazon Pinpoint em um projeto especificado (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/*" } } } ] }