

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

# Uso da segurança por linha com regras baseadas em etiquetas para restringir o acesso ao conjunto de dados ao realizar a incorporação de painéis para usuários anônimos
<a name="quicksight-dev-rls-tags"></a>


|  | 
| --- |
|  Aplica-se a: Enterprise Edition  | 


|  | 
| --- |
|    Público-alvo: administradores do Amazon Quick e desenvolvedores do Amazon Quick  | 

Ao incorporar painéis do Amazon Quick em seu aplicativo para usuários que não estão provisionados (registrados) no Quick, você pode usar a segurança em nível de linha (RLS) para dados com tags. filter/restrict Uma tag é uma string especificada pelo usuário que identifica uma sessão em seu aplicativo. Você pode usar tags para implementar controles de RLS para seus conjuntos de dados. Ao configurar RLS-based restrições nos conjuntos de dados, o Quick filtra os dados com base nas tags de sessão vinculadas ao usuário. identity/session

Por exemplo, suponhamos que você tenha uma empresa no setor de logística com uma aplicação voltada ao cliente para vários varejistas. Milhares de usuários desses varejistas acessam sua aplicação para visualizar as métricas relacionadas à forma como os pedidos estão sendo enviados de seu local de armazenamento. 

Você não quer gerenciar milhares de usuários no Quick, então você usa a incorporação anônima para incorporar os painéis selecionados em seu aplicativo para que seus usuários autenticados e autorizados possam ver. No entanto, você deseja garantir que os varejistas visualizem somente os dados relativos aos seus negócios e não aos de outras empresas. Você pode usar a RLS com tags para garantir que seus clientes visualizem somente os dados relevantes para eles.

Para fazer isso, conclua as seguintes etapas:

1. Adicione a RLS com tags a um conjunto de dados.

1. Atribua valores para essas tags no runtime usando a operação de API `GenerateEmbedUrlForAnonymousUser`.

   Para obter mais informações sobre a incorporação de painéis para usuários anônimos usando a operação de API `GenerateEmbedUrlForAnonymousUser`, consulte [Incorporação de painéis do Amazon Quick Sight para usuários anônimos (não registrados)](embedded-analytics-dashboards-for-everyone.md).

Antes de usar a RLS com tags, lembre-se dos seguintes pontos:
+ No momento, o uso de RLS com tags é compatível somente com a incorporação anônima, especificamente para painéis incorporados que usam a operação de API `GenerateEmbedUrlForAnonymousUser`.
+ O uso de RLS com tags não é compatível com painéis incorporados que usam a operação de API `GenerateEmbedURLForRegisteredUser` ou a operação de API `GetDashboardEmbedUrl` antiga.
+ As tags RLS não são compatíveis com AWS Identity and Access Management (IAM) ou com o tipo de identidade rápida.
+ Ao aplicar conjuntos de dados do SPICE à segurança por linha, cada campo no conjunto de dados poderá conter, no máximo, 2.047 caracteres Unicode. Os campos que contêm mais do que essa cota são truncados durante a ingestão. Para saber mais sobre as cotas para dados do SPICE, consulte [Cotas do SPICE para dados importados](data-source-limits.md#spice-limits).

## Etapa 1: adicionar a RLS com tags a um conjunto de dados
<a name="quicksight-dev-rls-tags-add"></a>

Você pode adicionar regras baseadas em tags a um conjunto de dados no Amazon Quick. Como alternativa, você pode chamar a operação de API `CreateDataSet` ou `UpdateDataSet` e adicionar regras baseadas em tags dessa forma. Para obter mais informações, consulte [Adicionar RLS com tags a um conjunto de dados usando a API](#quicksight-dev-rls-tags-add-api).

Use o procedimento a seguir para adicionar tags RLS a um conjunto de dados no Quick.

**Adicionar a RLS com tags a um conjunto de dados**

1. Na página de início rápido, escolha **Dados** à esquerda.

1. Escolha o conjunto de dados ao qual você deseja adicionar o RLS.

1. Na página de detalhes do conjunto de dados que se abre, por **Row-levelsegurança**, escolha **Configurar.**

1. **Na página **Configurar segurança em nível de linha** que se abre, escolha Tag-based regras.**

1. Em **Coluna**, escolha uma coluna à qual você deseja adicionar regras baseadas em tags.

   Por exemplo, no caso da empresa no setor de logística, é utilizada a coluna `retailer_id`.

   Somente colunas com um tipo de dados string são listadas.

1. Em **Tag**, insira uma chave de tag. Você pode inserir qualquer nome de tag que desejar.

   Por exemplo, no caso da empresa no setor de logística, é utilizada a chave de tag `tag_retailer_id`. Fazer isso define a segurança por linha com base no varejista que está acessando a aplicação.

1. (Opcional) Em **Delimitador**, escolha um delimitador usando a lista ou insira o seu próprio delimitador.

   É possível usar delimitadores para separar strings de texto ao atribuir mais de um valor para uma tag. O valor de um delimitador pode ter, no máximo, dez caracteres.

1. (Opcional) Em **Corresponder a todos**, escolha o símbolo **\*** ou insira seu próprio caractere ou caracteres.

   Esta opção pode ser qualquer caractere que você deseja usar ao filtrar por todos os valores dessa coluna no conjunto de dados. Em vez de listar os valores um por um, você pode usar o caractere. Se esse valor for especificado, ele poderá ter pelo menos um caractere ou no máximo 256 caracteres.

1. Escolha **Adicionar**.

   A regra baseada em tags será adicionada ao conjunto de dados e listada na parte inferior, mas ainda não será aplicada. Para adicionar outra regra baseada em tags ao conjunto de dados, repita as etapas 5 a 9. Para editar uma regra baseada em tags, escolha o ícone de lápis próximo à regra. Para excluir uma regra baseada em tags, escolha o ícone de exclusão próximo à regra. É possível adicionar até 50 tags a um conjunto de dados.

1. Quando estiver com tudo pronto para aplicar as regras baseadas em tags ao conjunto de dados, escolha **Aplicar regras**.

1. Na página **Deseja ativar a segurança baseada em tags?** que é aberta, escolha **Aplicar e ativar**.

   As regras baseadas em tags estarão ativas. Na página **Configurar segurança por linha**, um botão de alternância aparece para você ativar e desativar as regras baseadas em tags para o conjunto de dados.

   Para desativar todas as regras baseadas em tags para o conjunto de dados, desative a opção de **Tag-Based regras** e digite “confirmar” na caixa de texto exibida.

   Na página **Dados**, um ícone de cadeado aparece na linha do conjunto de dados para indicar que as regras de tag estão habilitadas.

   Agora, você pode usar regras baseadas em tags para definir valores de tags no runtime, conforme descrito em [Etapa 2: atribuir valores à RLS com tags no runtime](#quicksight-dev-rls-tags-assign-values). As regras afetam somente os leitores rápidos quando estão ativas.
**Importante**  
Depois que as tags forem atribuídas e habilitadas no conjunto de dados, certifique-se de conceder permissões aos autores do Quick para ver qualquer dado no conjunto de dados ao criar um painel.   
Para dar permissão aos autores do Quick para ver os dados no conjunto de dados, crie um arquivo de permissões ou uma consulta para usar como regras do conjunto de dados. Para obter mais informações, consulte [Como criar regras do conjunto de dados para a segurança por linha](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Após criar uma regra baseada em tags, uma nova tabela **Gerenciar regras** será exibida para mostrar como suas regras baseadas em tags se relacionam. Para fazer alterações nas regras listadas na tabela **Gerenciar regras**, escolha o ícone de lápis próximo à regra. Em seguida, adicione ou remova as tags e escolha **Atualizar**. Para aplicar a regra atualizada ao conjunto de dados, escolha **Aplicar**.

### (Opcional) Adicionar a condição Or à RLS com tags
<a name="quicksight-dev-rls-tags-or"></a>

Você também pode adicionar a condição OR às suas regras baseadas em tags para personalizar ainda mais a forma como os dados são apresentados aos usuários da sua conta Quick. Quando você usa a condição OR com suas regras baseadas em tags, as imagens no Quick aparecem se pelo menos uma tag definida na regra for válida.

**Adicionar a condição OR às regras baseadas em tags**

1. Na tabela **Gerenciar regras**, escolha **Adicionar condição OU**.

1. Na lista suspensa **Selecionar tag** que é apresentada, escolha a tag para a qual você deseja criar uma condição OU. É possível adicionar até 50 condições OR à tabela **Gerenciar regras**. Você pode adicionar diversas tags a uma única coluna em um conjunto de dados, mas, no mínimo, uma tag de coluna precisa ser inclusa em uma regra.

1. Escolha **Atualizar** para adicionar a condição à regra e, em seguida, selecione **Aplicar** para aplicar a regra atualizada ao seu conjunto de dados.

### Adicionar RLS com tags a um conjunto de dados usando a API
<a name="quicksight-dev-rls-tags-add-api"></a>

Como alternativa, você pode configurar e habilitar a segurança por linha baseada em tags em seu conjunto de dados ao chamar a operação de API `CreateDataSet` ou `UpdateDataSet`. Use os exemplos apresentados a seguir para aprender a fazer isso.

**Importante**  
Ao configurar as tags de sessão na chamada da API,  
Trate as tags de sessão como credenciais de segurança. Não exponha as tags de sessão aos usuários finais ou ao código do lado do cliente.
Implemente controles do lado do servidor. Certifique-se de que as tags de sessão sejam definidas exclusivamente por seus serviços de back-end confiáveis, não por parâmetros que os usuários finais possam modificar.
Proteja as tags de sessão da enumeração. Certifique-se de que os usuários de um locatário não possam descobrir ou adivinhar valores de SessionTag pertencentes a outros locatários.
Revise sua arquitetura. Se clientes ou parceiros downstream tiverem permissão para chamar a API diretamente, avalie se essas partes poderiam especificar valores de SessionTag para locatários que não deveriam acessar.

------
#### [ CreateDataSet ]

Veja um exemplo a seguir de criação de um conjunto de dados que usa a RLS com tags. O exemplo assume o cenário da empresa no setor de logística descrito anteriormente. As tags estão definidas no elemento `row-level-permission-tag-configuration`. As tags são definidas nas colunas para as quais você deseja proteger os dados. Para obter mais informações sobre esse elemento opcional, consulte [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)a *Amazon Quick API Reference*.

```
create-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>]
		[--field-folders <value>]
		[--permissions <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--tags <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
		[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "{{tag_retailer_id}}",
					"ColumnName": "{{retailer_id}}",
					"TagMultiValueDelimiter": "{{,}}",
					"MatchAllValue": "{{*}}"
				},
				{
					"TagKey": "{{tag_role}}",
					"ColumnName": "{{role}}"
				}
			],
		"TagRuleConfigurations":
			[
				{{tag_retailer_id}}
			],
			[
				{{tag_role}}
			]
	}'
]
```

Neste exemplo, as tags estão definidas na parte `TagRules` do elemento. No exemplo, duas tags são definidas com base em duas colunas:
+ A chave da tag `tag_retailer_id` é definida para a coluna `retailer_id`. Neste caso, para a empresa no setor de logística, isto define a segurança por linha com base no varejista que está tentando acessar a aplicação.
+ A chave da tag `tag_role` é definida para a coluna `role`. Neste caso, para a empresa no setor de logística, isso define uma camada adicional de segurança por linha com base no perfil do usuário que acessa a aplicação usando um varejista específico. Um exemplo é `store_supervisor` ou `manager`.

Para cada tag, você pode definir `TagMultiValueDelimiter` e `MatchAllValue`. Entretanto, são opcionais.
+ `TagMultiValueDelimiter`: esta opção pode ser qualquer string que você deseja usar para delimitar os valores ao transferi-los no runtime. O valor pode ter, no máximo, dez caracteres. Nesse caso, uma vírgula é usada como o valor delimitador.
+ `MatchAllValue`: esta opção pode ser qualquer caractere que você deseja usar ao filtrar por todos os valores dessa coluna no conjunto de dados. Em vez de listar os valores um por um, você pode usar o caractere. Se especificado, esse valor poderá ter no mínimo um caractere ou no máximo 256 caracteres. Nesse caso, um asterisco será usado como o correspondente a todos os valores.

Ao configurar as tags para as colunas do conjunto de dados, ative-as ou desative-as usando a propriedade obrigatória `Status`. Para habilitar as regras baseadas em tags, use o valor `ENABLED` para esta propriedade. Ao ativar as regras baseadas em tags, você poderá usá-las para definir valores de tags no runtime, conforme descrito em [Etapa 2: atribuir valores à RLS com tags no runtime](#quicksight-dev-rls-tags-assign-values).

Veja um exemplo a seguir de definição de resposta.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------
#### [ UpdateDataSet ]

**UpdateDataSet**

Você pode usar a operação de API `UpdateDataSet` para adicionar ou atualizar a RLS com tags para um conjunto de dados existente.

Veja um exemplo a seguir de atualização de um conjunto de dados com a RLS com tags. O exemplo assume o cenário da empresa no setor de logística descrito anteriormente.

```
update-data-set
		--aws-account-id <value>
		--data-set-id <value>
		--name <value>
		--physical-table-map <value>
		[--logical-table-map <value>]
		--import-mode <value>
		[--column-groups <value>
		[--field-folders <value>]
		[--row-level-permission-data-set <value>]
		[--column-level-permission-rules <value>]
		[--cli-input-json <value>]
		[--generate-cli-skeleton <value>]
				[--row-level-permission-tag-configuration 
	'{
		"Status": "ENABLED",
		"TagRules": 
			[
				{
					"TagKey": "{{tag_retailer_id}}",
					"ColumnName": "{{retailer_id}}",
					"TagMultiValueDelimiter": "{{,}}",
					"MatchAllValue": "{{*}}"
				},
				{
					"TagKey": "{{tag_role}}",
					"ColumnName": "{{role}}"
				}
			],
		"TagRuleConfigurations":
			[
				{{tag_retailer_id}}
			],
			[
				{{tag_role}}
			]
	}'
]
```

Veja um exemplo a seguir de definição de resposta.

```
{
			"Status": 201,
			"Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset",
			"DataSetId": "RLS-Dataset",
			"RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2"
		}
```

------

**Importante**  
Depois que as tags forem atribuídas e habilitadas no conjunto de dados, certifique-se de conceder permissões aos autores do Quick para ver qualquer dado no conjunto de dados ao criar um painel.   
Para dar permissão aos autores do Quick para ver os dados no conjunto de dados, crie um arquivo de permissões ou uma consulta para usar como regras do conjunto de dados. Para obter mais informações, consulte [Como criar regras do conjunto de dados para a segurança por linha](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Para obter mais informações sobre o `RowLevelPermissionTagConfiguration` elemento, consulte [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)a *Amazon Quick API Reference*.

## Etapa 2: atribuir valores à RLS com tags no runtime
<a name="quicksight-dev-rls-tags-assign-values"></a>

Você pode usar tags para a RLS somente para a incorporação anônima. É possível definir valores para as tags usando a operação de API `GenerateEmbedUrlForAnonymousUser`.

**Importante**  
Ao configurar as tags de sessão na chamada da API,  
Trate as tags de sessão como credenciais de segurança. Não exponha as tags de sessão aos usuários finais ou ao código do lado do cliente.
Implemente controles do lado do servidor. Certifique-se de que as tags de sessão sejam definidas exclusivamente por seus serviços de back-end confiáveis, não por parâmetros que os usuários finais possam modificar.
Proteja as tags de sessão da enumeração. Certifique-se de que os usuários de um locatário não possam descobrir ou adivinhar valores de SessionTag pertencentes a outros locatários.
Revise sua arquitetura. Se clientes ou parceiros downstream tiverem permissão para chamar a API diretamente, avalie se essas partes poderiam especificar valores de SessionTag para locatários que não deveriam acessar.

O exemplo apresentado a seguir mostra como atribuir valores à RLS com tags definida no conjunto de dados na etapa anterior.

```
POST /accounts/{{AwsAccountId}}/embed-url/anonymous-user
	HTTP/1.1
	Content-type: application/json
	{
		“AwsAccountId”: “string”,
		“SessionLifetimeInMinutes”: integer,
		“Namespace”: “string”, // The namespace to which the anonymous end user virtually belongs
		“SessionTags”:  // Optional: Can be used for row-level security
			[
				{
					“Key”: “tag_retailer_id”,
					“Value”: “West,Central,South”
				}
				{
					“Key”: “tag_role”,
					“Value”: “shift_manager”
				}
			],
		“AuthorizedResourceArns”:
			[
				“string”
			],
		“ExperienceConfiguration”:
			{
				“Dashboard”:
					{
						“InitialDashboardId”: “string”
						// This is the initial dashboard ID the customer wants the user to land on. This ID goes in the output URL.
					}
			}
	}
```

Veja um exemplo a seguir de definição de resposta.

```
HTTP/1.1 Status
	Content-type: application/json

	{
	"EmbedUrl": "{{string}}",
	"RequestId": "{{string}}"
	}
```

O suporte a RLS sem registrar usuários no Quick é suportado somente na operação da `GenerateEmbedUrlForAnonymousUser` API. Nesta operação, em `SessionTags`, é possível definir os valores das tags associadas às colunas do conjunto de dados.

Neste caso, são definidas as seguintes atribuições:
+ Os valores `West`, `Central` e `South` são atribuídos à tag `tag_retailer_id` no runtime. Uma vírgula é usada para o delimitador, que foi definido em `TagMultipleValueDelimiter` no conjunto de dados. Para usar valores de chamada na coluna, você pode definir o valor como *\**, que foi definido como o `MatchAllValue` ao criar a tag.
+ O valor `shift_manager` é atribuído à tag `tag_role`.

O usuário que usar o URL gerado poderá visualizar somente as linhas com o valor `shift_manager` na coluna `role`. Esse usuário poderá visualizar somente o valor `West`, `Central` ou `South` na coluna `retailer_id`.

Para obter mais informações sobre a incorporação de painéis para usuários anônimos usando a operação de `GenerateEmbedUrlForAnonymousUser` API[Incorporação de painéis do Amazon Quick Sight para usuários anônimos (não registrados)](embedded-analytics-dashboards-for-everyone.md), consulte ou [GenerateEmbedUrlForAnonymousUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GenerateEmbedUrlForAnonymousUser.html)na *Amazon Quick* API Reference