Controle de acesso a dados para Amazon OpenSearch Serverless - OpenSearch Serviço Amazon

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

Controle de acesso a dados para Amazon OpenSearch Serverless

Com o controle de acesso aos dados no Amazon OpenSearch Serverless, você pode permitir que os usuários acessem coleções e índices, independentemente do mecanismo de acesso ou da fonte de rede. É possível fornecer acesso a perfis do IAM e identidades de SAML.

Você gerencia as permissões de acesso por meio de políticas de acesso a dados que se aplicam às coleções e aos recursos de índice. As políticas de acesso a dados ajudam você a gerenciar coleções em grande escala atribuindo automaticamente permissões de acesso a coleções e índices que correspondam a um padrão específico. Várias políticas de acesso a dados podem ser aplicadas a um único recurso. Observe que você deve ter uma política de acesso a dados para sua coleção para acessar a URL do seu OpenSearch painel.

Políticas de acesso a dados versus políticas do IAM

As políticas de acesso aos dados são logicamente separadas das políticas AWS Identity and Access Management (IAM). As permissões do IAM controlam o acesso às operações da API do Sem Servidor, como CreateCollection e ListAccessPolicies. As políticas de acesso a dados controlam o acesso às OpenSearch operações suportadas pelo OpenSearch Serverless, como PUT <index> ou. GET _cat/indices

As permissões do IAM que controlam o acesso às operações da API da política de acesso a dados, como aoss:CreateAccessPolicy e aoss:GetAccessPolicy (descritas na próxima seção), não afetam a permissão especificada em uma política de acesso a dados.

Por exemplo, suponha que uma política do IAM impeça que um usuário crie políticas de acesso a dados para collection-a, mas permita que ele crie políticas de acesso a dados para todas as coleções (*):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*", "Condition": { "StringLike": { "aoss:collection": "collection-a" } } }, { "Effect": "Allow", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*" } ] }

Se o usuário criar uma política de acesso a dados que permita certa permissão para todas as coleções (collection/* ou index/*/*), a política será aplicada a todas as coleções, incluindo a coleção A.

Importante

Receber permissões em uma política de acesso a dados não é suficiente para acessar os dados em sua coleção OpenSearch Serverless. Uma entidade principal associada também deve ter acesso às permissões do IAM aoss:APIAccessAll e aoss:DashboardsAccessAll. Ambas as permissões concedem acesso total aos recursos da coleção, enquanto a permissão Painéis também fornece acesso aos OpenSearch Painéis. Se uma entidade principal não tiver essas duas permissões do IAM, receberá erros 403 ao tentar enviar solicitações para a coleção. Para ter mais informações, consulte Usando OpenSearch API operações.

Permissões do IAM necessárias para configurar políticas de acesso a dados

O controle de acesso a dados para OpenSearch Serverless usa as seguintes permissões do IAM. É possível especificar condições do IAM para restringir os usuários a nomes de políticas de acesso específicas.

  • aoss:CreateAccessPolicy: criar uma política de acesso.

  • aoss:ListAccessPolicies: listar todas as políticas de acesso.

  • aoss:GetAccessPolicy: exibir detalhes sobre uma política de acesso específica.

  • aoss:UpdateAccessPolicy: modificar uma política de acesso.

  • aoss:DeleteAccessPolicy: excluir uma política de acesso.

A seguinte política de acesso baseada em identidade permite que um usuário exiba todas as políticas de acesso e atualize as políticas que contenham o padrão de recursos collection/logs.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:ListAccessPolicies", "aoss:GetAccessPolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "aoss:UpdateAccessPolicy" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": [ "logs" ] } } } ] }
nota

Além disso, o OpenSearch Serverless exige aoss:DashboardsAccessAll permissões aoss:APIAccessAll e permissões para recursos de coleta. Para ter mais informações, consulte Usando OpenSearch API operações.

Sintaxe da política

Uma política de acesso a dados inclui um conjunto de regras, cada uma com os seguintes elementos:

Elemento Descrição
ResourceType O tipo de recurso (coleção ou índice) ao qual as permissões se aplicam. As permissões de alias e modelo estão no nível da coleção, enquanto as permissões para criar, modificar e pesquisar dados estão no nível do índice. Para obter mais informações, consulte Permissões de políticas com suporte.
Resource Uma lista de nomes e/ou padrões de recursos. Os padrões são prefixos seguidos por um curinga (*), que permitem que as permissões associadas sejam aplicadas a vários recursos.
  • As coleções assumem o formato collection/<name|pattern>.

  • Os índices assumem o formato index/<collection-name|pattern>/<index-name|pattern/>.

Permission Uma lista de permissões a serem concedidas para os recursos especificados Para obter uma lista completa de permissões e as operações da API que elas permitem, consulte Operações e permissões de OpenSearch API suportadas.
Principal Uma lista de uma ou mais entidades principais às quais conceder acesso. Entidades principais podem ser ARNs de perfis do IAM ou identidades SAML. Essas entidades principais devem estar dentro da Conta da AWS atual. As políticas de acesso a dados não oferecem suporte direto ao acesso entre contas, mas você pode incluir uma função em sua política que um usuário de outro usuário Conta da AWS possa assumir na conta proprietária da coleção. Para ter mais informações, consulte Acesso a dados entre contas.

O exemplo de política a seguir concede permissões de alias e modelo à coleção chamada autopartsinventory, bem como a quaisquer coleções iniciadas pelo prefixo sales*. Ele também concede permissões de leitura e gravação a todos os índices da coleção autopartsinventory e a todos os índices da coleção salesorders iniciados pelo prefixo orders*.

[ { "Description": "Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ], "Permission":[ "aoss:CreateCollectionItems", "aoss:UpdateCollectionItems", "aoss:DescribeCollectionItems" ] }, { "ResourceType":"index", "Resource":[ "index/autopartsinventory/*", "index/salesorders/orders*" ], "Permission":[ "aoss:*" ] } ], "Principal":[ "arn:aws:iam::123456789012:user/Dale", "arn:aws:iam::123456789012:role/RegulatoryCompliance", "saml/123456789012/myprovider/user/Annie", "saml/123456789012/anotherprovider/group/Accounting" ] } ]

Você não pode negar explicitamente o acesso em uma política. Dessa forma, todas as permissões de política são aditivas. Por exemplo, se uma política conceder a um usuário aoss:ReadDocument e outra conceder aoss:WriteDocument, o usuário terá ambas as permissões. Se uma terceira política conceder ao mesmo usuário aoss:*, o usuário poderá realizar todas as ações no índice associado; permissões mais restritivas não substituem as menos restritivas.

Permissões de políticas com suporte

Há suporte para as permissões a seguir nas políticas de acesso a dados. Para ver as operações de OpenSearch API que cada permissão permite, consulteOperações e permissões de OpenSearch API suportadas.

Permissões de coleção

  • aoss:CreateCollectionItems

  • aoss:DeleteCollectionItems

  • aoss:UpdateCollectionItems

  • aoss:DescribeCollectionItems

  • aoss:*

Permissões de índice

  • aoss:ReadDocument

  • aoss:WriteDocument

  • aoss:CreateIndex

  • aoss:DeleteIndex

  • aoss:UpdateIndex

  • aoss:DescribeIndex

  • aoss:*

Exemplos de conjuntos de dados em painéis OpenSearch

OpenSearch Os painéis fornecem conjuntos de dados de amostra que vêm com visualizações, painéis e outras ferramentas para ajudá-lo a explorar os painéis antes de adicionar seus próprios dados. Para criar índices a partir desses dados de amostra, você precisa de uma política de acesso a dados que forneça permissões para o conjunto de dados com o qual você deseja trabalhar. A política a seguir usa um caractere curinga (*) para fornecer permissões aos três conjuntos de dados de amostra.

[ { "Rules": [ { "Resource": [ "index/<collection-name>/opensearch_dashboards_sample_data_*" ], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:ReadDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::<account-id>:user/<user>" ] } ]

Criação de políticas de acesso a dados (console)

É possível criar uma política de acesso a dados usando o editor visual, ou no formato JSON. Qualquer nova coleção que corresponda a um dos padrões definidos na política receberá as permissões correspondentes quando você criar a coleção.

Para criar uma política de OpenSearch acesso a dados sem servidor
  1. Abra o console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home.

  2. No painel de navegação à esquerda, expanda Sem Servidor e escolha Controle de acesso a dados.

  3. Selecione Criar política de acesso.

  4. Forneça um nome e uma descrição para a política.

  5. Forneça um nome para a primeira regra em sua política. Por exemplo, “Acesso à coleção de logs”.

  6. Escolha Adicionar entidades principais e selecione um ou mais perfis do IAM, ou usuários e grupos de SAML aos quais fornecer acesso aos dados.

    nota

    Para selecionar entidades principais nos menus suspensos, é necessário ter as permissões iam:ListUsers e iam:ListRoles (para entidades principais do IAM) e a permissão aoss:ListSecurityConfigs (para identidades de SAML).

  7. Escolha Conceder e selecione o alias, o modelo e as permissões de índice para conceder às entidades principais associadas. Para obter uma lista completa de permissões e o acesso que elas permitem, consulte Operações e permissões de OpenSearch API suportadas.

  8. (Opcional) Configure regras adicionais para a política.

  9. Escolha Criar. Pode haver cerca de um minuto de atraso entre a criação da política e o momento em que as permissões são aplicadas. Se demorar mais de 5 minutos, entre em contato com o AWS Support.

Importante

Se sua política incluir apenas permissões de indexação (e nenhuma permissão de coleção), talvez você ainda veja uma mensagem sobre coleções correspondentes informando o seguinte: Collection cannot be accessed yet. Configure data access policies so that users can access the data within this collection. Você pode ignorar esse aviso. As entidades principais autorizadas ainda podem realizar suas operações relacionadas ao índice atribuídas na coleção.

Criação de políticas de acesso a dados (AWS CLI)

Para criar uma política de acesso a dados usando a API OpenSearch Serverless, use o CreateAccessPolicy comando. O comando aceita tanto políticas em linha quanto arquivos .json. As políticas em linha devem ser codificadas como uma string JSON com escape.

A solicitação a seguir cria uma política de acesso a dados:

aws opensearchserverless create-access-policy \ --name marketing \ --type data \ --policy "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]"

Para fornecer a política em um arquivo .json, use o formato --policy file://my-policy.json.

Os diretores incluídos na política agora podem usar as OpenSearch operações às quais receberam acesso.

Exibição de políticas de acesso a dados

Antes de criar uma coleção, talvez você queira pré-visualizar as políticas de acesso a dados existentes em sua conta para ver qual delas tem um padrão de recurso que corresponda ao nome da sua coleção. A ListAccessPoliciessolicitação a seguir lista todas as políticas de acesso a dados em sua conta:

aws opensearchserverless list-access-policies --type data

A solicitação retorna informações sobre todas as políticas de acesso a dados configuradas. Para visualizar as regras de padrões definidas em uma política específica, encontre as informações sobre políticas no conteúdo do elemento accessPolicySummaries na resposta. Observe o name final type desta política e use essas propriedades em uma GetAccessPolicysolicitação para receber uma resposta com os seguintes detalhes da política:

{ "accessPolicyDetails": [ { "type": "data", "name": "my-policy", "policyVersion": "MTY2NDA1NDE4MDg1OF8x", "description": "My policy", "policy": "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]", "createdDate": 1664054180858, "lastModifiedDate": 1664054180858 } ] }

É possível incluir filtros de recursos para limitar os resultados às políticas que contenham coleções ou índices específicos:

aws opensearchserverless list-access-policies --type data --resource "index/autopartsinventory/*"

Para ver detalhes sobre uma política específica, use o GetAccessPolicycomando.

Atualização de políticas de acesso a dados

Quando você atualiza uma política de acesso a dados, todas as coleções associadas são afetadas. Para atualizar uma política de acesso a dados no console OpenSearch sem servidor, escolha Controle de acesso a dados, selecione a política a ser modificada e escolha Editar. Faça suas alterações e escolha Salvar.

Para atualizar uma política de acesso a dados usando a API OpenSearch Serverless, envie uma UpdateAccessPolicy solicitação. É necessário incluir uma versão da política, que pode ser recuperada usando os comandos ListAccessPolicies ou GetAccessPolicy. A inclusão da versão mais recente da política garante que você não anule inadvertidamente uma alteração feita por outra pessoa.

A UpdateAccessPolicysolicitação a seguir atualiza uma política de acesso a dados com um novo documento JSON de política:

aws opensearchserverless update-access-policy \ --name sales-inventory \ --type data \ --policy-version MTY2NDA1NDE4MDg1OF8x \ --policy file://my-new-policy.json

Pode haver alguns minutos de atraso entre a atualização da política e o momento em que as novas permissões são aplicadas.

Exclusão de políticas de acesso a dados

Quando você exclui uma política de acesso a dados, todas as coleções associadas perdem o acesso definido na política. Certifique-se de que seus usuários do IAM e do SAML tenham o acesso apropriado à coleção antes de excluir uma política. Para excluir uma política no console OpenSearch sem servidor, selecione a política e escolha Excluir.

Você também pode usar o DeleteAccessPolicycomando:

aws opensearchserverless delete-access-policy --name my-policy --type data

Acesso a dados entre contas

Embora você não possa criar uma política de acesso a dados com identidade entre contas ou coleções entre contas, você ainda pode configurar o acesso entre contas com a opção assumir função. Por exemplo, se account-a possui uma coleção que account-b precisa ser acessada, o usuário de account-b pode assumir uma função naaccount-a. A função deve ter as permissões do IAM aoss:APIAccessAll e aoss:DashboardsAccessAll estar incluída na política de acesso a dados emaccount-a.