Exemplos de políticas baseadas em identidade do Amazon Location Service
Por padrão, usuários e perfis não têm permissão para criar ou modificar recursos do Amazon Location. Eles também não podem executar tarefas usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a API AWS. Para conceder aos usuários permissão para executar ações nos recursos de que precisam, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis e os usuários podem presumir os perfis.
Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte Criar políticas do IAM (console) no Guia do Usuário do IAM.
Para obter detalhes sobre ações e tipos de recursos definidos pelo Amazon Location, incluindo o formato dos ARNs para cada um dos tipos de recurso, consulte Ações, recursos e chaves de condição do Amazon Location Service em Referência de autorização do serviço.
Tópicos
- Práticas recomendadas de políticas
- Usar o console do Amazon Location
- Permitir que usuários visualizem suas próprias permissões
- Usar os recursos do Amazon Location Service em políticas
- Permissões para atualizar as posições do dispositivo
- Política somente leitura para recursos do rastreador
- Política para a criação de geocercas
- Política somente leitura para geocercas
- Permissões para renderizar um recurso de mapa
- Permissões para operações de pesquisa
- Política somente leitura para calculadoras de rotas
- Controlar o acesso aos recursos com base nas chaves de condições
- Controlar o acesso a recursos com base em tags
Práticas recomendadas de políticas
As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon Location 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 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 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 Location
Para acessar o console do Amazon Location Service, 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 Location em sua Conta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva do que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.
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.
Para garantir que usuários e perfis ainda possam usar o console do Amazon Location, anexe também a política para as entidades. Para obter mais informações, consulte Adicionando Permissões a um Usuário no Guia do Usuário do IAM.
A política a seguir dá acesso ao console do Amazon Location Service para poder criar, excluir, listar e visualizar detalhes sobre os recursos de localização do Amazon Location em sua conta AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GeoPowerUser", "Effect": "Allow", "Action": [ "geo:*" ], "Resource": "*" } ] }
Alternativamente, você pode conceder permissões de somente leitura para facilitar o acesso como somente leitura. Com permissões somente leitura, uma mensagem de erro aparecerá se o usuário tentar escrever ações, como criar ou excluir recursos. Como exemplo, consulte Política somente leitura para recursos do rastreador
Permitir que 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": "*" } ] }
Usar os recursos do Amazon Location Service em políticas
O Amazon Location Service usa os seguintes prefixos para recursos:
Recurso | Prefixo do recurso |
---|---|
Recursos de mapa | map |
Recursos de local | place-index |
Recursos de rota | route-calculator |
Recursos de rastreamento | tracker |
Recursos da coleção de geocercas | geofence-collection |
Use a seguinte sintaxe ARN:
arn:
Partition
:geo:Region
:Account
:ResourcePrefix
/ResourceName
Para obter mais informações sobre o formato de ARNs, consulte Nomes de recursos da Amazon (ARNs)AWS e namespaces de serviços da
Exemplos
-
Use o seguinte ARN para permitir o acesso a um recurso de mapa especificado.
"Resource": "arn:aws:geo:us-west-2:
account-id
:map/map-resource-name
" -
Para especificar o acesso a todos os recursos da
map
que pertencem a uma conta específica, use o caractere curinga (*):"Resource": "arn:aws:geo:us-west-2:
account-id
:map/*" -
Algumas ações do Amazon Location, como as que servem para a criação de recursos, não podem ser executadas em um recurso específico. Nesses casos, você deve utilizar o caractere curinga (*).
"Resource": "*"
Para ver uma lista dos tipos de recursos do Amazon Location e seus ARNs, consulte Resources Defined by Amazon Location Service (Recursos definidos pelo Amazon Location Service) em Service Authorization Reference (Referência de autorização do serviço). Para saber com quais ações você pode especificar o ARN de cada recurso, consulte Actions Defined by Amazon Location Service (Ações definidas pelo Amazon Location Service).
Permissões para atualizar as posições do dispositivo
Para atualizar as posições do dispositivo para vários rastreadores, você deve conceder a um usuário o acesso a um ou mais dos seus recursos de rastreador. Você também deverá permitir que o usuário atualize um lote de posições do dispositivo.
Neste exemplo, além de conceder acesso aos recursos do Tracker1
e do Tracker2
, a política a seguir concede permissão para usar a ação geo:BatchUpdateDevicePosition
contra os recursos do Tracker1
e do Tracker2
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:
account-id
:tracker/Tracker1
", "arn:aws:geo:us-west-2:account-id
:tracker/Tracker2
" ] } ] }
Se você quiser limitar o usuário a poder atualizar somente as posições de um dispositivo específico, você pode adicionar uma chave de condição para a ID desse dispositivo.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:
account-id
:tracker/Tracker1
", "arn:aws:geo:us-west-2:account-id
:tracker/Tracker2
" ], "Condition":{ "ForAllValues:StringLike":{ "geo:DeviceIds":[ "deviceId
" ] } } } ] }
Política somente leitura para recursos do rastreador
Para criar uma política somente leitura para todos os recursos do rastreador em sua conta da AWS, você precisará conceder acesso a todos os recursos do rastreador. Você também deve conceder ao usuário o acesso a ações que permitam obter a posição do dispositivo para vários dispositivos, obter a posição do dispositivo a partir de um único dispositivo e obter o histórico de posições.
Neste exemplo, a política a seguir concede permissão para as seguintes ações:
-
geo:BatchGetDevicePosition
para recuperar as posições de vários dispositivos. -
geo:GetDevicePosition
para recuperar a posição de um único dispositivo. -
geo:GetDevicePositionHistory
para recuperar o histórico de posições de um dispositivo.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchGetDevicePosition", "geo:GetDevicePosition", "geo:GetDevicePositionHistory" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:tracker/*" } ] }
Política para a criação de geocercas
Para criar uma política que permita a um usuário criar geocercas, você precisará conceder acesso a ações específicas que permitam aos usuários criar uma ou mais geocercas em uma coleção de geocercas.
A política abaixo concede permissão para as seguintes ações na Coleção
:
-
geo:BatchPutGeofence
para criar várias geocercas. -
geo:PutGeofence
para criar uma única geocerca.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateGeofences", "Effect": "Allow", "Action": [ "geo:BatchPutGeofence", "geo:PutGeofence" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:geofence-collection/Collection
" } ] }
Política somente leitura para geocercas
Para criar uma política somente leitura para geocercas armazenadas em uma coleção de geocercas na sua conta AWS, você precisará conceder acesso às ações que são lidas da coleção de geocercas que armazena as geocercas.
A política abaixo concede permissão para as seguintes ações na Coleção
:
-
geo:ListGeofences
para listar geocercas na coleção de geocercas especificada. -
geo:GetGeofence
para recuperar uma geocerca da coleção de geocercas.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetGeofences", "Effect": "Allow", "Action": [ "geo:ListGeofences", "geo:GetGeofence" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:geofence-collection/Collection
" } ] }
Permissões para renderizar um recurso de mapa
Para conceder permissões suficientes para renderizar mapas, você precisará conceder acesso aos blocos de mapas, “sprites”, glifos e ao descritor de estilo:
-
o
geo:GetMapTile
recupera blocos de mapas usados para renderizar seletivamente os atributos em um mapa. -
o
geo:GetMapSprites
recupera a planilha de sprites PNG e o documento JSON correspondente, descrevendo os desvios dentro dela. -
o
geo:GetMapGlyphs
recupera os glifos usados para exibir texto. -
o
geo:GetMapStyleDescriptor
recupera o descritor de estilo do mapa, contendo regras de renderização.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTiles", "Effect": "Allow", "Action": [ "geo:GetMapTile", "geo:GetMapSprites", "geo:GetMapGlyphs", "geo:GetMapStyleDescriptor" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:map/Map
" } ] }
Permissões para operações de pesquisa
Para criar uma política que permita operações de pesquisa, primeiro você precisará conceder acesso ao recurso de índice de local em sua conta da AWS. Você também deverá conceder acesso a ações que permitam ao usuário pesquisar usando texto por geocodificação e pesquisar usando uma posição por geocodificação reversa.
Neste exemplo, além de conceder acesso ao PlaceIndex
, a política a seguir também concede permissão para as seguintes ações:
-
o
geo:SearchPlaceIndexForPosition
permite que você pesquise lugares ou pontos de interesse próximos a uma determinada posição. -
o
geo:SearchPlaceIndexForText
permite que você pesquise um endereço, nome, cidade ou região usando texto em formato livre.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Search", "Effect": "Allow", "Action": [ "geo:SearchPlaceIndexForPosition", "geo:SearchPlaceIndexForText" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:place-index/PlaceIndex
" } ] }
Política somente leitura para calculadoras de rotas
Você pode criar uma política somente leitura para permitir que um usuário acesse um recurso de calculadora de rotas para calcular uma rota.
Neste exemplo, além de conceder acesso ao ExampleCalculator
, a política a seguir também concede permissão para as seguintes ações:
-
o
geo:CalculateRoute
calcula uma rota com base em uma posição de partida, posição de destino e uma lista de posições de pontos de referência.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoutesReadOnly", "Effect": "Allow", "Action": [ "geo:CalculateRoute" ], "Resource": "arn:aws:geo:us-west-2:
accountID
:route-calculator/ExampleCalculator
" } ] }
Controlar o acesso aos recursos com base nas chaves de condições
Ao criar uma política do IAM para conceder acesso ao uso de geocercas ou posições de dispositivos, você pode usar operadores de condição para obter um controle mais preciso sobre quais geocercas ou dispositivos um usuário pode acessar. Você pode fazer isso incluindo o ID da geocerca ou o ID do dispositivo no elemento Condition
da sua política.
O exemplo de política a seguir mostra como você pode criar uma política que permita que um usuário atualize as posições de um dispositivo específico.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:
account-id
:tracker/Tracker
" ], "Condition":{ "ForAllValues:StringLike":{ "geo:DeviceIds":[ "deviceId
" ] } } } ] }
Controlar o acesso a recursos com base em tags
Ao criar uma política do IAM para conceder acesso para usar os recursos do seu Amazon Location, você pode usar o controle de acesso baseado em atributos para controlar melhor quais recursos um usuário pode modificar, usar ou excluir. Você pode fazer isso incluindo as informações da tag no elemento Condition
da sua política para controlar o acesso com base nas suas tags de recursos.
O exemplo de política a seguir mostra como você pode criar uma política que permita que um usuário crie geocercas. Isso concede a permissão às seguintes ações para criar uma ou mais geocercas em uma coleção de geocercas chamada Coleção
:
-
geo:BatchPutGeofence
para criar várias geocercas. -
geo:PutGeofence
para criar uma única geocerca.
No entanto, essa política usa o elemento Condition
para conceder a permissão somente se a tag Coleção
, Owner
, tiver o valor do nome do usuário em questão.
-
Por exemplo, se um usuário chamado
richard-roe
tentar visualizar umaColeção
no Amazon Location, aColeção
deverá ser marcada comoOwner=richard-roe
ouowner=richard-roe
. Caso contrário, o usuário terá o acesso negado.nota
A chave da tag de condição
Owner
corresponde aOwner
e aowner
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 IAM JSON Policy Elements: Condition (Elementos da política JSON do IAM: Condição) no Guia do usuário do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateGeofencesIfOwner", "Effect": "Allow", "Action": [ "geo:BatchPutGeofence", "geo:PutGeofence" ], "Resource": "arn:aws:geo:us-west-2:
account-id
:geofence-collection/Collection
", "Condition": { "StringEquals": {"geo:ResourceTag/Owner": "${aws:username
}"} } } ] }
Para ver um tutorial sobre como definir permissões para acessar recursos da AWS com base em tags, consulte o Guia do usuário do AWS Identity and Access Management.