

# Controlar o acesso e rotular trabalhos usando tags
<a name="batch-ops-job-tags"></a>

Você pode rotular e controlar o acesso aos trabalhos de operações em lote do S3 adicionando *tags*. As tags podem ser usadas para identificar quem é responsável por um trabalho de operações em lote. A presença de marcações de trabalho pode conceder ou limitar a capacidade do usuário de cancelar um trabalho, ativar um trabalho no estado de confirmação ou alterar o nível de prioridade de um trabalho. Você pode criar trabalhos com tags anexadas a eles e pode adicionar tags aos trabalhos depois que eles são criados. Cada tag é um par de chave-valor que pode ser incluído quando você cria o trabalho ou atualizado posteriormente.

**Atenção**  
Garanta que as tags de trabalho não contenham informações confidenciais ou dados pessoais.

Considere o seguinte exemplo de marcação: suponha que você deseja que seu departamento financeiro crie um trabalho de operações em lote. Você pode escrever uma política do AWS Identity and Access Management (IAM) que permita que um usuário invoque `CreateJob`, desde que o trabalho seja criado com a tag `Department` atribuída ao valor `Finance`. Além disso, você pode anexar essa política a todos os usuários que são membros do departamento de Finanças.

Continuando com este exemplo, você pode escrever uma política que permita que um usuário atualize a prioridade de qualquer trabalho que tenha as tags desejadas ou cancele qualquer trabalho que tenha essas tags. Para obter mais informações, consulte [Controlar permissões para o Operações em Lote usando tags de trabalho](batch-ops-job-tags-examples.md).

Você pode adicionar tags a novos trabalhos de operações em lote do S3 ao criá-los ou adicionar tags a trabalhos existentes. 

Observe as seguintes restrições de tag:
+ Você pode associar até 50 tags a um trabalho, desde que elas tenham chaves de tag exclusivas.
+ Um chave de tag pode ter até 128 caracteres Unicode e os valores de tag podem ter até 256 caracteres Unicode.
+ As chaves e os valores diferenciam letras maiúsculas de minúsculas.

Para obter mais informações sobre restrições de tags, consulte [Restrições de tags definidas pelo usuário](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) no *Guia do usuário do Gerenciamento de Faturamento e Custos da AWS*.

## Operações de API relacionadas à marcação de trabalhos de operações em lote do S3
<a name="batch-ops-job-tags-api"></a>

O Amazon S3 oferece suporte às seguintes operações de API específicas para a marcação de trabalhos de operações em lote do S3:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html) – mostra o conjunto de tags associado a um trabalho do Operações em Lote. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) – substitui o conjunto de tags associado a um trabalho. Há dois cenários distintos de gerenciamento de tags de trabalho de operações em lote do S3 usando essa ação de API:
  + O trabalho não tem tags: você pode adicionar um conjunto de tags a um trabalho (o trabalho não tem tags anteriores).
  + O trabalho tem um conjunto de tags existentes: para modificar o conjunto de tags existente, é possível substituí-lo ou fazer alterações nele recuperando o conjunto de tags existente usando [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html), modificar esse conjunto de tags e usar essa ação de API para substituir a tag definida pela que você modificou.
**nota**  
Se você enviar essa solicitação com o conjunto de tags vazio, o Operações em lote do S3 excluirá o conjunto de tags existente no objeto. Se você usar esse método, receberá a cobrança por uma solicitação de nível 1 (`PUT`). Para obter mais informações, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing).  
Para excluir tags existentes do trabalho de Operações em lote, a ação `DeleteJobTagging` é preferida porque ela obtém o mesmo resultado sem incorrer em encargos.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) – exclui o conjunto de tags associado a um trabalho de operações em lote. 

# Criar um trabalho do Operações em lote com tags de trabalho usadas para rotulagem
<a name="batch-ops-tags-create"></a>

É possível rotular e controlar o acesso aos trabalhos do Operações em Lote do Amazon S3 adicionando *tags*. As tags podem ser usadas para identificar quem é responsável por um trabalho de operações em lote. Você pode criar trabalhos com tags anexadas a eles e pode adicionar tags aos trabalhos depois que eles são criados. Para obter mais informações, consulte [Controlar o acesso e rotular trabalhos usando tags](batch-ops-job-tags.md).

## Usar a AWS CLI
<a name="batch-ops-example-cli-job-tags-create-job"></a>

O exemplo da AWS CLI a seguir cria um trabalho `S3PutObjectCopy` do S3 Batch Operations usando tags de trabalho como rótulos para o trabalho. 

1. Selecione a ação ou `OPERATION` que deseja que o trabalho de operações em lote execute e escolha `TargetResource`.

   ```
   read -d '' OPERATION <<EOF
   {
     "S3PutObjectCopy": {
       "TargetResource": "arn:aws:s3:::amzn-s3-demo-destination-bucket"
     }
   }
   EOF
   ```

1. Identifique as `TAGS` que você deseja para o trabalho. Nesse caso, você aplica duas tags, `department` e `FiscalYear`, com os valores `Marketing` e `2020`, respectivamente.

   ```
   read -d '' TAGS <<EOF
   [
     {
       "Key": "department",
       "Value": "Marketing"
     },
     {
       "Key": "FiscalYear",
       "Value": "2020"
     }
   ]
   EOF
   ```

1. Especifique o `MANIFEST` para o trabalho de operações em lote.

   ```
   read -d '' MANIFEST <<EOF
   {
     "Spec": {
       "Format": "EXAMPLE_S3BatchOperations_CSV_20180820",
       "Fields": [
         "Bucket",
         "Key"
       ]
     },
     "Location": {
       "ObjectArn": "arn:aws:s3:::amzn-s3-demo-manifest-bucket/example_manifest.csv",
       "ETag": "example-5dc7a8bfb90808fc5d546218"
     }
   }
   EOF
   ```

1. Configure o `REPORT` para o trabalho de operações em lote.

   ```
   read -d '' REPORT <<EOF
   {
     "Bucket": "arn:aws:s3:::amzn-s3-demo-completion-report-bucket",
     "Format": "Example_Report_CSV_20180820",
     "Enabled": true,
     "Prefix": "reports/copy-with-replace-metadata",
     "ReportScope": "AllTasks"
   }
   EOF
   ```

1. Execute a ação `create-job` para criar o trabalho de operações em lote com entradas definidas nas etapas anteriores.

   ```
   aws \
       s3control create-job \
       --account-id 123456789012 \
       --manifest "${MANIFEST//$'\n'}" \
       --operation "${OPERATION//$'\n'/}" \
       --report "${REPORT//$'\n'}" \
       --priority 10 \
       --role-arn arn:aws:iam::123456789012:role/batch-operations-role \
       --tags "${TAGS//$'\n'/}" \
       --client-request-token "$(uuidgen)" \
       --region us-west-2 \
       --description "Copy with Replace Metadata";
   ```

## Usar o AWS SDK for Java
<a name="batch-ops-examples-java-job-with-tags-create"></a>

Para criar um trabalho do recurso Operações em Lote do S3 com tags usando o AWS SDK para Java, é possível usar o cliente S3Control para configurar os parâmetros do trabalho, como localização do manifesto, operações do trabalho, configurações de geração de relatórios e tags para fins de organização e rastreamento.

Para ver exemplos de como criar trabalhos do recurso Operações em Lote do S3 com o AWS SDK para Java, consulte [Create a batch job to copy objects](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html) na *Referência de API do Amazon S3*.

# Excluir as tags de um trabalho do Operações em lote do S3
<a name="delete-job-tags"></a>

Você pode usar esses exemplos para excluir as tags de um trabalho do Operações em Lote do Amazon S3.

## Usar a AWS CLI
<a name="batch-ops-example-cli-job-tags-delete-job-tagging"></a>

O exemplo a seguir exclui as tags de um trabalho do Batch Operations usando a AWS CLI.

```
aws \
    s3control delete-job-tagging \
    --account-id 123456789012 \
    --job-id Example-e25a-4ed2-8bee-7f8ed7fc2f1c \
    --region us-east-1
```

## Excluir as tags de um trabalho de operações em lote
<a name="batch-ops-examples-java-job-with-tags-delete"></a>

Para excluir as tags de um trabalho do recurso Operações em Lote do S3 usando o AWS SDK para Java, é possível usar o cliente S3Control com o ID do trabalho para remover todas as tags associadas ao trabalho de operações em lote.

Para ver exemplos de como excluir tags de trabalho com o AWS SDK para Java, consulte [Delete tags from a batch job](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_DeleteJobTagging_section.html) na *Referência de API do Amazon S3*.

# Adicionar tags a um trabalho existente do Operações em Lote
<a name="put-job-tags"></a>

Você pode usar a operação de API [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) para adicionar tags aos trabalhos existentes do Operações em Lote do Amazon S3. Para obter mais informações, veja os exemplos a seguir:

## Usar a AWS CLI
<a name="batch-ops-example-cli-job-tags-put-job-tagging"></a>

Veja a seguir um exemplo de uso de `s3control put-job-tagging` para adicionar tags aos trabalhos do Operações em Lote do S3 usando a AWS CLI. Para usar os exemplos, substitua *`user input placeholders`* por suas próprias informações.

**nota**  
Se você enviar essa solicitação com o conjunto de tags vazio, o Operações em Lote excluirá o conjunto de tags existente no objeto. No entanto, se você usar essa abordagem, receberá cobrança por uma solicitação de nível 1 (`PUT`). Para obter mais informações, consulte [Preço do Amazon S3](https://aws.amazon.com/s3/pricing).  
Em vez disso, para excluir tags existentes do trabalho do Operações em Lote, recomendamos usar a operação `DeleteJobTagging` porque ela consegue o mesmo resultado sem incorrer em cobranças.

1. Identifique as `TAGS` que você deseja para o trabalho. Nesse caso, você aplica duas tags, `department` e `FiscalYear`, com os valores `Marketing` e `2020`, respectivamente.

   ```
   read -d '' TAGS <<EOF
   [
     {
       "Key": "department",
       "Value": "Marketing"
     },
     {
       "Key": "FiscalYear",
       "Value": "2020"
     }
   ]
   EOF
   ```

1. Execute o seguinte comando `put-job-tagging` com os parâmetros exigidos:

   ```
   aws \
       s3control put-job-tagging \
       --account-id 123456789012 \
       --tags "${TAGS//$'\n'/}" \
       --job-id Example-e25a-4ed2-8bee-7f8ed7fc2f1c \
       --region us-east-1
   ```

## Usar o AWS SDK para Java
<a name="batch-ops-examples-java-job-with-tags-put"></a>

Se quiser colocar tags em um trabalho do recurso Operações em Lote do S3 usando o AWS SDK para Java, use o cliente S3Control para adicionar ou atualizar tags com pares de chave-valor para fins de organização e rastreamento.

Para ver exemplos de como inserir tags de trabalho com o AWS SDK para Java, consulte [Add tags to a batch job](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_PutJobTagging_section.html) na *Referência de API do Amazon S3*.

# Obter as tags de um trabalho do Operações em lote S3
<a name="get-job-tags"></a>

Para recuperar as tags de um trabalho do Operações em Lote do Amazon S3, você pode usar a operação de API `GetJobTagging`. Para obter mais informações, veja os exemplos a seguir:

## Usar a AWS CLI
<a name="batch-ops-example-cli-job-tags-get-job-tagging"></a>

O exemplo a seguir obtém as tags de um trabalho do Batch Operations usando a AWS CLI. Para usar esse exemplo, substitua os *`user input placeholders`* por suas próprias informações.

```
aws \
    s3control get-job-tagging \
    --account-id 123456789012 \
    --job-id Example-e25a-4ed2-8bee-7f8ed7fc2f1c \
    --region us-east-1
```

## Usar o AWS SDK para Java
<a name="batch-ops-examples-java-job-with-tags-get"></a>

Para obter as tags de um trabalho do recurso Operações em Lote do S3 usando o AWS SDK para Java, você pode usar o cliente S3Control com o ID do trabalho para recuperar todas as tags associadas ao trabalho de operações em lote e exibi-las como uma lista.

Para ver exemplos de como obter tags de trabalho com o AWS SDK para Java, consulte [Get tags from a batch job](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_GetJobTagging_section.html) na *Referência de API do Amazon S3*.

# Controlar permissões para o Operações em Lote usando tags de trabalho
<a name="batch-ops-job-tags-examples"></a>

Para ajudar a gerenciar trabalhos do Operações em Lote do Amazon S3, você pode adicionar *tags de trabalho*. Com tags de trabalho, você pode controlar o acesso aos seus trabalhos de operações em lote e impor que as tags sejam aplicadas quando qualquer trabalho for criado. 

Você pode aplicar até 50 tags de trabalho a cada trabalho de operações em lote. O uso de tags permite que você defina políticas detalhadas para restringir o conjunto de usuários que podem editar o trabalho. As tags de trabalho podem conceder ou limitar a capacidade do usuário de cancelar um trabalho, ativar um trabalho no estado de confirmação ou alterar o nível de prioridade de um trabalho. Além disso, você pode impor que as tags sejam aplicadas a todos os novos trabalhos e especificar os pares de chave-valor permitidos para as tags. Você pode expressar todas essas condições usando a [linguagem de política do AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html). Consulte mais informações em [ Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) na *Referência de autorização do serviço*.

Para ter mais informações sobre as permissões referentes a operações de API do S3 de acordo com os tipos de recurso do S3, consulte [Permissões obrigatórias para operações de API do Amazon S3](using-with-s3-policy-actions.md).

O exemplo a seguir mostra como você pode usar tags de trabalho de operações em lote do S3 para conceder aos usuários permissão para criar e editar somente os trabalhos executados em um departamento específico (por exemplo, o departamento Finanças ou Conformidade). Você também pode atribuir trabalhos com base no estágio de desenvolvimento ao qual eles estão relacionados, como QA ou Produção.

Neste exemplo, você usa tags de trabalho do Operações em Lote do S3 nas políticas do IAM para conceder aos usuários permissão para criar e editar apenas os trabalhos que estão sendo executados no departamento deles. Você atribui trabalhos com base no estágio de desenvolvimento ao qual eles estão relacionados, como QA ou Produção. 

Os exemplos a seguir usam os seguintes departamentos, com cada um usando o Operações em Lote de maneiras diferentes:
+ Finanças
+ Conformidade
+ Business Intelligence
+ Engenharia

**Topics**
+ [Controlar o acesso atribuindo tags a usuários e recursos](#job-tags-examples-attaching-tags)
+ [Marcar trabalhos de operações em lote por estágio e impor limites na prioridade do trabalho](#tagging-jobs-by-stage-and-enforcing-limits-on-job-priority)

## Controlar o acesso atribuindo tags a usuários e recursos
<a name="job-tags-examples-attaching-tags"></a>

Nesse cenário, os administradores estão usando o [controle de acesso baseado em atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html). ABAC é uma estratégia de autorização do IAM que define permissões anexando etiquetas a usuários e recursos da AWS.

Os usuários e os trabalhos recebem uma das seguintes tags de departamento:

**Chave: valor**
+ `department : Finance`
+ `department : Compliance`
+ `department : BusinessIntelligence`
+ `department : Engineering`
**nota**  
As chaves e os valores de tags de trabalho diferenciam maiúsculas de minúsculas.

Usando a estratégia de controle de acesso ABAC, você concede a um usuário no departamento de finanças permissão para criar e gerenciar trabalhos de Operações em Lote do S3 em seu departamento associando a etiqueta `department=Finance` ao usuário.

Além disso, você pode anexar uma política gerenciada ao usuário do IAM que permite que qualquer usuário em sua empresa crie ou modifique trabalhos de operações em lote do S3 dentro de seus respectivos departamentos. 

A política neste exemplo inclui três instruções de política:
+ A primeira instrução na política permite que o usuário crie um trabalho de operações em lote desde que a solicitação de criação de trabalho inclua uma tag de trabalho que corresponda ao respectivo departamento. Isso é expresso usando a sintaxe `"${aws:PrincipalTag/department}"`, que é substituída pela etiqueta de departamento do usuário no momento da avaliação da política. A condição é satisfeita quando o valor fornecido para a tag de departamento na solicitação `("aws:RequestTag/department")` corresponde ao departamento do usuário. 
+ A segunda instrução na política permite que os usuários alterem a prioridade dos trabalhos ou atualizem o status de um trabalho, desde que o trabalho que o usuário está atualizando corresponda ao departamento do usuário. 
+ A terceira instrução permite que um usuário atualize as tags de um trabalho de operações em lote a qualquer momento por meio de uma solicitação `PutJobTagging`, desde que (1) sua tag de departamento seja preservada e (2) o trabalho que está atualizando esteja dentro de seu departamento. 

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

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
            {
                  "Effect": "Allow",
                  "Action": "s3:CreateJob",
                  "Resource": "*",
                  "Condition": {
                        "StringEquals": {
                              "aws:RequestTag/department": "${aws:PrincipalTag/department}"        
                }      
            }    
        },
            {
                  "Effect": "Allow",
                  "Action": [
                        "s3:UpdateJobPriority",
                        "s3:UpdateJobStatus"      
            ],
                  "Resource": "*",
                  "Condition": {
                        "StringEquals": {
                              "aws:ResourceTag/department": "${aws:PrincipalTag/department}"        
                }      
            }    
        },
            {
                  "Effect": "Allow",
                  "Action": "s3:PutJobTagging",
                  "Resource": "*",
                  "Condition": {
                        "StringEquals": {
                              "aws:RequestTag/department": "${aws:PrincipalTag/department}",
                              "aws:ResourceTag/department": "${aws:PrincipalTag/department}"        
                }      
            }    
        }  
    ]
}
```

------

## Marcar trabalhos de operações em lote por estágio e impor limites na prioridade do trabalho
<a name="tagging-jobs-by-stage-and-enforcing-limits-on-job-priority"></a>

Todos os trabalhos de operações em lote do S3 têm uma prioridade numérica, que o Amazon S3 usa para decidir em que ordem executar os trabalhos. Para este exemplo, você restringe a prioridade máxima que a maioria dos usuários pode atribuir a trabalhos, com intervalos de prioridade mais altos reservados para um conjunto limitado de usuários privilegiados, da seguinte forma:
+ Intervalo de prioridade do estágio de QA (baixa): 1–100
+ Intervalo de prioridade do estágio de produção (alta): 1–300

Para fazer isso, introduza um novo conjunto de tags representando o estágio do trabalho:

**Chave: valor**
+ `stage : QA`
+ `stage : Production`

### Criar e atualizar trabalhos de baixa prioridade em um departamento
<a name="creating-and-updating-low-priority-jobs"></a>

Esta política introduz duas novas restrições à criação e atualização de trabalhos de operações em lote do S3, além da restrição baseada em departamento:
+ Ele permite que os usuários criem ou atualizem trabalhos em seu departamento com uma nova condição que requer que o trabalho inclua a tag `stage=QA`.
+ Ele permite que os usuários criem ou atualizem a prioridade de um trabalho até uma nova prioridade máxima de 100.

```
{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
        {
        "Effect": "Allow",
        "Action": "s3:CreateJob",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/department": "${aws:PrincipalTag/department}",
                "aws:RequestTag/stage": "QA"
            },
            "NumericLessThanEquals": {
                "s3:RequestJobPriority": 100
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:UpdateJobStatus"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/department": "${aws:PrincipalTag/department}"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "s3:UpdateJobPriority",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/department": "${aws:PrincipalTag/department}",
                "aws:ResourceTag/stage": "QA"
            },
            "NumericLessThanEquals": {
                "s3:RequestJobPriority": 100
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "s3:PutJobTagging",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/department" : "${aws:PrincipalTag/department}",
                "aws:ResourceTag/department": "${aws:PrincipalTag/department}",
                "aws:RequestTag/stage": "QA",
                "aws:ResourceTag/stage": "QA"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": "s3:GetJobTagging",
        "Resource": "*"
    }
    ]
}
```

### Criar e atualizar trabalhos de alta prioridade em um departamento
<a name="creating-and-updating-high-priority-jobs"></a>

Um pequeno número de usuários pode exigir a capacidade de criar trabalhos de alta prioridade em QA ou Produção. Para dar suporte a essa necessidade, crie uma política gerenciada adaptada da política de baixa prioridade na seção anterior. 

Essa política faz o seguinte: 
+ Permite que os usuários criem ou atualizem trabalhos em seu departamento com a tag `stage=QA` ou `stage=Production`.
+ Permite que os usuários criem ou atualizem a prioridade de um trabalho até um máximo de 300.

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

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
                "Effect": "Allow",
                "Action": "s3:CreateJob",
                "Resource": "*",
                "Condition": {
                      "ForAnyValue:StringEquals": {
                            "aws:RequestTag/stage": [
                                  "QA",
                                  "Production"        
                    ]      
                },
                      "StringEquals": {
                            "aws:RequestTag/department": "${aws:PrincipalTag/department}"      
                },
                      "NumericLessThanEquals": {
                            "s3:RequestJobPriority": 300      
                }    
            }  
        },
          {
                "Effect": "Allow",
                "Action": [
                      "s3:UpdateJobStatus"    
            ],
                "Resource": "*",
                "Condition": {
                      "StringEquals": {
                            "aws:ResourceTag/department": "${aws:PrincipalTag/department}"      
                }    
            }  
        },
          {
                "Effect": "Allow",
                "Action": "s3:UpdateJobPriority",
                "Resource": "*",
                "Condition": {
                      "ForAnyValue:StringEquals": {
                            "aws:ResourceTag/stage": [
                                  "QA",
                                  "Production"        
                    ]      
                },
                      "StringEquals": {
                            "aws:ResourceTag/department": "${aws:PrincipalTag/department}"      
                },
                      "NumericLessThanEquals": {
                            "s3:RequestJobPriority": 300      
                }    
            }  
        },
          {
                "Effect": "Allow",
                "Action": "s3:PutJobTagging",
                "Resource": "*",
                "Condition": {
                      "StringEquals": {
                            "aws:RequestTag/department": "${aws:PrincipalTag/department}",
                            "aws:ResourceTag/department": "${aws:PrincipalTag/department}"      
                },
                      "ForAnyValue:StringEquals": {
                            "aws:RequestTag/stage": [
                                  "QA",
                                  "Production"        
                    ],
                            "aws:ResourceTag/stage": [
                                  "QA",
                                  "Production"        
                    ]      
                }    
            }  
        }  
    ]
}
```

------