

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
<a name="serverless-data-access"></a>

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](serverless-saml.md).

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.

**Topics**
+ [Políticas de acesso a dados versus políticas do IAM](#serverless-data-access-vs-iam)
+ [Permissões do IAM necessárias para configurar as políticas de acesso a dados](#serverless-data-access-permissions)
+ [Sintaxe da política](#serverless-data-access-syntax)
+ [Permissões de políticas com suporte](#serverless-data-supported-permissions)
+ [Exemplos de conjuntos de dados em painéis OpenSearch](#serverless-data-sample-index)
+ [Criação de políticas de acesso a dados (console)](#serverless-data-access-console)
+ [Criação de políticas de acesso a dados (AWS CLI)](#serverless-data-access-cli)
+ [Exibição de políticas de acesso a dados](#serverless-data-access-list)
+ [Atualização de políticas de acesso a dados](#serverless-data-access-update)
+ [Exclusão de políticas de acesso a dados](#serverless-data-access-delete)
+ [Acesso a dados entre contas](#serverless-data-access-cross)

## Políticas de acesso a dados versus políticas do IAM
<a name="serverless-data-access-vs-iam"></a>

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](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/Welcome.html), como `CreateCollection` e `ListAccessPolicies`. As políticas de acesso a dados controlam o acesso às [OpenSearch operações](#serverless-data-supported-permissions) 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 (`*`):

------
#### [ JSON ]

****  

```
{
    "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 saber mais, consulte [Usando operações OpenSearch de API](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane).

## Permissões do IAM necessárias para configurar as políticas de acesso a dados
<a name="serverless-data-access-permissions"></a>

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

------
#### [ JSON ]

****  

```
{
    "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 obter mais informações, consulte [Usando operações OpenSearch de API](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane).

## Sintaxe da política
<a name="serverless-data-access-syntax"></a>

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


| Elemento | Description | 
| --- | --- | 
| 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 saber mais, consulte [Permissões de políticas com suporte](#serverless-data-supported-permissions). | 
| Resource | Uma lista de and/or padrões de nomes de recursos. Os padrões são prefixos seguidos por um curinga (\$1), que permitem que as permissões associadas sejam aplicadas a vários recursos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/serverless-data-access.html) | 
| 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](serverless-genref.md#serverless-operations). | 
| Principal | Uma lista de uma ou mais entidades principais às quais conceder acesso. Os principais podem ser a função do IAM ARNs ou as identidades do 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 obter mais informações, consulte [Acesso a dados entre contas](#serverless-data-access-cross). | 

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
<a name="serverless-data-supported-permissions"></a>

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, consulte[Operações e permissões de OpenSearch API suportadas](serverless-genref.md#serverless-operations).

**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
<a name="serverless-data-sample-index"></a>

OpenSearch Os painéis fornecem [conjuntos de dados de amostra](https://opensearch.org/docs/latest/dashboards/quickstart-dashboards/#adding-sample-data) 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)
<a name="serverless-data-access-console"></a>

É 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/casa](https://console.aws.amazon.com/aos/home ).

1. No painel de navegação à esquerda, expanda **Tecnologia sem servidor** e em **Segurança**, escolha **Políticas de acesso a dados**.

1. Selecione **Criar política de acesso**.

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

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

1. Escolha **Adicionar entidades principais** e selecione um ou mais perfis do IAM, ou [usuários e grupos de SAML](serverless-saml.md) 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). 

1. 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](serverless-genref.md#serverless-operations).

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

1. 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 [Suporte](https://console.aws.amazon.com/support/home).

**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)
<a name="serverless-data-access-cli"></a>

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](https://www.freeformatter.com/json-escape.html).

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](#serverless-data-supported-permissions) às quais receberam acesso.

## Exibição de políticas de acesso a dados
<a name="serverless-data-access-list"></a>

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 [ListAccessPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListAccessPolicies.html)solicitaçã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 [GetAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetAccessPolicy.html)solicitaçã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 [GetAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetAccessPolicy.html)comando.

## Atualização de políticas de acesso a dados
<a name="serverless-data-access-update"></a>

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 [UpdateAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateAccessPolicy.html)solicitaçã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
<a name="serverless-data-access-delete"></a>

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 [DeleteAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteAccessPolicy.html)comando:

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

## Acesso a dados entre contas
<a name="serverless-data-access-cross"></a>

Embora não seja possível criar uma política de acesso a dados com identidade entre contas ou coleções entre contas, você pode configurar o acesso entre contas com a opção de assumir perfil. Por exemplo, se a `account-a` possuir uma coleção à qual a `account-b` precisa ter acesso, o usuário da `account-b` poderá assumir um perfil na `account-a`. O perfil deve ter as permissões do IAM `aoss:APIAccessAll` e `aoss:DashboardsAccessAll`, e estar incluído na política de acesso a dados na `account-a`.