mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 14:47:17 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-s3-a
This commit is contained in:
@@ -1,32 +1,32 @@
|
||||
# AWS - S3, Athena & Glacier Enum
|
||||
# AWS - S3, Athena & Glacier Enumeração
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## S3
|
||||
|
||||
Amazon S3 é um serviço que permite que você **armazenar grandes quantidades de dados**.
|
||||
Amazon S3 é um serviço que permite que você **armazene grandes quantidades de dados**.
|
||||
|
||||
Amazon S3 fornece várias opções para alcançar a **proteção** de dados em repouso. As opções incluem **Permissão** (Política), **Criptografia** (Lado do Cliente e Lado do Servidor), **Versionamento de Bucket** e **exclusão baseada em MFA**. O **usuário pode habilitar** qualquer uma dessas opções para alcançar a proteção de dados. A **replicação de dados** é uma funcionalidade interna da AWS onde **S3 replica automaticamente cada objeto em todas as Zonas de Disponibilidade** e a organização não precisa habilitá-la nesse caso.
|
||||
Amazon S3 oferece múltiplas opções para alcançar a **proteção** de dados em repouso. As opções incluem **Permissão** (Policy), **Criptografia** (Client and Server Side), **Bucket Versioning** e **MFA based delete**. O **usuário pode ativar** qualquer uma dessas opções para obter proteção dos dados. **Data replication** é uma funcionalidade interna da AWS onde **S3 automaticamente replica cada objeto através de todas as Availability Zones** e a organização não precisa habilitá-la nesse caso.
|
||||
|
||||
Com permissões baseadas em recursos, você pode definir permissões para subdiretórios do seu bucket separadamente.
|
||||
Com permissões baseadas em recursos, você pode definir permissões para sub-diretórios do seu bucket separadamente.
|
||||
|
||||
### Versionamento de Bucket e exclusão baseada em MFA
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Quando o versionamento de bucket está habilitado, qualquer ação que tenta alterar um arquivo dentro de um arquivo gerará uma nova versão do arquivo, mantendo também o conteúdo anterior do mesmo. Portanto, não sobrescreverá seu conteúdo.
|
||||
Quando o Bucket Versioning está habilitado, qualquer ação que tente alterar um arquivo no bucket gerará uma nova versão do arquivo, mantendo também o conteúdo anterior. Portanto, não sobrescreverá o conteúdo.
|
||||
|
||||
Além disso, a exclusão baseada em MFA impedirá que versões de arquivos no bucket S3 sejam excluídas e também que o Versionamento de Bucket seja desativado, de modo que um atacante não poderá alterar esses arquivos.
|
||||
Além disso, o MFA based delete impedirá que versões de arquivos no bucket S3 sejam excluídas e também que o Bucket Versioning seja desabilitado, então um atacante não conseguirá alterar esses arquivos.
|
||||
|
||||
### Logs de Acesso do S3
|
||||
### S3 Access logs
|
||||
|
||||
É possível **habilitar o login de acesso do S3** (que por padrão está desativado) para algum bucket e salvar os logs em um bucket diferente para saber quem está acessando o bucket (ambos os buckets devem estar na mesma região).
|
||||
É possível **ativar S3 access logging** (que por padrão está desabilitado) em um bucket e salvar os logs em um bucket diferente para saber quem está acessando o bucket (ambos os buckets devem estar na mesma região).
|
||||
|
||||
### URLs Presignadas do S3
|
||||
### S3 Presigned URLs
|
||||
|
||||
É possível gerar uma URL presignada que pode ser usada para **acessar o arquivo especificado** no bucket. Uma **URL presignada se parece com isso**:
|
||||
É possível gerar um presigned URL que normalmente pode ser usado para **acessar o arquivo especificado** no bucket. Um **presigned URL se parece com isto**:
|
||||
```
|
||||
https://<bucket-name>.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa
|
||||
```
|
||||
Uma URL pré-assinada pode ser **criada a partir do cli usando credenciais de um principal com acesso ao objeto** (se a conta que você usa não tiver acesso, uma URL pré-assinada mais curta será criada, mas será inútil)
|
||||
Uma presigned URL pode ser **criada a partir do cli usando credentials de um principal com acesso ao object** (se a account que você usar não tiver acesso, uma presigned URL mais curta será criada, mas será inútil)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
@@ -42,99 +42,99 @@ Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
|
||||
ExpiresIn=3600
|
||||
)
|
||||
```
|
||||
### Mecanismos de Criptografia do S3
|
||||
### Mecanismos de criptografia do S3
|
||||
|
||||
**DEK significa Chave de Criptografia de Dados** e é a chave que é sempre gerada e usada para criptografar dados.
|
||||
**DEK means Data Encryption Key** e é a chave que é sempre gerada e usada para criptografar dados.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Criptografia do lado do servidor com chaves gerenciadas pelo S3, SSE-S3</strong></summary>
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
|
||||
Esta opção requer configuração mínima e toda a gestão das chaves de criptografia utilizadas é gerenciada pela AWS. Tudo o que você precisa fazer é **fazer o upload dos seus dados e o S3 cuidará de todos os outros aspectos**. Cada bucket em uma conta S3 é atribuído a uma chave de bucket.
|
||||
Esta opção requer configuração mínima e todo o gerenciamento das chaves de criptografia é feito pela AWS. Tudo o que você precisa fazer é **enviar seus dados e o S3 cuidará de todos os outros aspectos**. Cada bucket em uma conta S3 recebe uma bucket key.
|
||||
|
||||
- Criptografia:
|
||||
- Dados do objeto + DEK em texto simples criado --> Dados criptografados (armazenados dentro do S3)
|
||||
- DEK em texto simples criado + Chave Mestra do S3 --> DEK criptografado (armazenado dentro do S3) e o texto em claro é excluído da memória
|
||||
- Descriptografia:
|
||||
- DEK criptografado + Chave Mestra do S3 --> DEK em texto claro
|
||||
- DEK em texto claro + Dados criptografados --> Dados do objeto
|
||||
- Encryption:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) and plain text is deleted from memory
|
||||
- Decryption:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Por favor, note que neste caso **a chave é gerenciada pela AWS** (rotação apenas a cada 3 anos). Se você usar sua própria chave, poderá rotacionar, desativar e aplicar controle de acesso.
|
||||
Por favor, note que neste caso **a chave é gerenciada pela AWS** (rotacionamento apenas a cada 3 anos). Se você usar sua própria chave você poderá rotacionar, desabilitar e aplicar controle de acesso.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Criptografia do lado do servidor com chaves gerenciadas pelo KMS, SSE-KMS</strong></summary>
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
|
||||
Este método permite que o S3 use o serviço de gerenciamento de chaves para gerar suas chaves de criptografia de dados. O KMS oferece uma flexibilidade muito maior sobre como suas chaves são gerenciadas. Por exemplo, você pode desativar, rotacionar e aplicar controles de acesso ao CMK, e ordenar contra seu uso usando o AWS Cloud Trail.
|
||||
Este método permite que o S3 utilize o Key Management Service para gerar suas data encryption keys. KMS oferece muito mais flexibilidade sobre como suas chaves são gerenciadas. Por exemplo, você pode desabilitar, rotacionar e aplicar controles de acesso ao CMK, e auditar seu uso usando AWS Cloud Trail.
|
||||
|
||||
- Criptografia:
|
||||
- S3 solicita chaves de dados ao KMS CMK
|
||||
- O KMS usa um CMK para gerar o par DEK em texto simples e DEK criptografado e os envia para o S3
|
||||
- O S3 usa a chave em texto simples para criptografar os dados, armazena os dados criptografados e a chave criptografada e exclui da memória a chave em texto claro
|
||||
- Descriptografia:
|
||||
- O S3 solicita ao KMS para descriptografar a chave de dados criptografada do objeto
|
||||
- O KMS descriptografa a chave de dados com o CMK e a envia de volta ao S3
|
||||
- O S3 descriptografa os dados do objeto
|
||||
- Encryption:
|
||||
- S3 request data keys from KMS CMK
|
||||
- KMS uses a CMK to generate the pair DEK plaintext and DEK encrypted and send them to S£
|
||||
- S3 uses the paintext key to encrypt the data, store the encrypted data and the encrypted key and deletes from memory the plain text key
|
||||
- Decryption:
|
||||
- S3 ask to KMS to decrypt the encrypted data key of the object
|
||||
- KMS decrypt the data key with the CMK and send it back to S3
|
||||
- S3 decrypts the object data
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Criptografia do lado do servidor com chaves fornecidas pelo cliente, SSE-C</strong></summary>
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
|
||||
Esta opção oferece a oportunidade de fornecer sua própria chave mestra que você pode já estar usando fora da AWS. Sua chave fornecida pelo cliente seria então enviada com seus dados para o S3, onde o S3 realizaria a criptografia para você.
|
||||
Esta opção permite que você forneça sua própria master key que talvez já utilize fora da AWS. Sua chave fornecida pelo cliente seria então enviada junto com seus dados para o S3, onde o S3 executaria a criptografia para você.
|
||||
|
||||
- Criptografia:
|
||||
- O usuário envia os dados do objeto + chave do cliente para o S3
|
||||
- A chave do cliente é usada para criptografar os dados e os dados criptografados são armazenados
|
||||
- um valor HMAC salgado da chave do cliente também é armazenado para validação futura da chave
|
||||
- a chave do cliente é excluída da memória
|
||||
- Descriptografia:
|
||||
- O usuário envia a chave do cliente
|
||||
- A chave é validada contra o valor HMAC armazenado
|
||||
- A chave fornecida pelo cliente é então usada para descriptografar os dados
|
||||
- Encryption:
|
||||
- The user sends the object data + Customer key to S3
|
||||
- The customer key is used to encrypt the data and the encrypted data is stored
|
||||
- a salted HMAC value of the customer key is stored also for future key validation
|
||||
- the customer key is deleted from memory
|
||||
- Decryption:
|
||||
- The user send the customer key
|
||||
- The key is validated against the HMAC value stored
|
||||
- The customer provided key is then used to decrypt the data
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Criptografia do lado do cliente com KMS, CSE-KMS</strong></summary>
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
|
||||
De forma semelhante ao SSE-KMS, isso também usa o serviço de gerenciamento de chaves para gerar suas chaves de criptografia de dados. No entanto, desta vez o KMS é chamado pelo cliente, não pelo S3. A criptografia ocorre do lado do cliente e os dados criptografados são enviados ao S3 para serem armazenados.
|
||||
Similar ao SSE-KMS, este também usa o Key Management Service para gerar suas data encryption keys. Porém, desta vez o KMS é chamado pelo cliente, não pelo S3. A criptografia então ocorre no lado do cliente e os dados criptografados são enviados ao S3 para armazenamento.
|
||||
|
||||
- Criptografia:
|
||||
- O cliente solicita uma chave de dados ao KMS
|
||||
- O KMS retorna o DEK em texto claro e o DEK criptografado com o CMK
|
||||
- Ambas as chaves são enviadas de volta
|
||||
- O cliente então criptografa os dados com o DEK em texto claro e envia ao S3 os dados criptografados + o DEK criptografado (que é salvo como metadados dos dados criptografados dentro do S3)
|
||||
- Descriptografia:
|
||||
- Os dados criptografados com o DEK criptografado são enviados ao cliente
|
||||
- O cliente solicita ao KMS para descriptografar a chave criptografada usando o CMK e o KMS envia de volta o DEK em texto claro
|
||||
- O cliente agora pode descriptografar os dados criptografados
|
||||
- Encryption:
|
||||
- Client request for a data key to KMS
|
||||
- KMS returns the plaintext DEK and the encrypted DEK with the CMK
|
||||
- Both keys are sent back
|
||||
- The client then encrypts the data with the plaintext DEK and send to S3 the encrypted data + the encrypted DEK (which is saved as metadata of the encrypted data inside S3)
|
||||
- Decryption:
|
||||
- The encrypted data with the encrypted DEK is sent to the client
|
||||
- The client asks KMS to decrypt the encrypted key using the CMK and KMS sends back the plaintext DEK
|
||||
- The client can now decrypt the encrypted data
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Criptografia do lado do cliente com chaves fornecidas pelo cliente, CSE-C</strong></summary>
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
|
||||
Usando este mecanismo, você pode utilizar suas próprias chaves fornecidas e usar um cliente AWS-SDK para criptografar seus dados antes de enviá-los ao S3 para armazenamento.
|
||||
|
||||
- Criptografia:
|
||||
- O cliente gera um DEK e criptografa os dados em texto claro
|
||||
- Em seguida, usando seu próprio CMK personalizado, ele criptografa o DEK
|
||||
- envia os dados criptografados + DEK criptografado para o S3, onde são armazenados
|
||||
- Descriptografia:
|
||||
- O S3 envia os dados criptografados e o DEK
|
||||
- Como o cliente já possui o CMK usado para criptografar o DEK, ele descriptografa o DEK e, em seguida, usa o DEK em texto claro para descriptografar os dados
|
||||
- Encryption:
|
||||
- The client generates a DEK and encrypts the plaintext data
|
||||
- Then, using it's own custom CMK it encrypts the DEK
|
||||
- submit the encrypted data + encrypted DEK to S3 where it's stored
|
||||
- Decryption:
|
||||
- S3 sends the encrypted data and DEK
|
||||
- As the client already has the CMK used to encrypt the DEK, it decrypts the DEK and then uses the plaintext DEK to decrypt the data
|
||||
|
||||
</details>
|
||||
|
||||
### **Enumeração**
|
||||
|
||||
Uma das principais maneiras tradicionais de comprometer organizações AWS começa comprometendo buckets acessíveis publicamente. **Você pode encontrar** [**enumeradores de buckets públicos nesta página**](../aws-unauthenticated-enum-access/#s3-buckets)**.**
|
||||
Uma das maneiras tradicionais principais de comprometer organizações AWS começa por comprometer buckets publicamente acessíveis. **Você pode encontrar** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
```bash
|
||||
# Get buckets ACLs
|
||||
aws s3api get-bucket-acl --bucket <bucket-name>
|
||||
@@ -229,58 +229,58 @@ aws s3api put-object-acl --bucket <bucket-name> --key flag --access-control-poli
|
||||
```
|
||||
### dual-stack <a href="#dual-stack-endpoints-description" id="dual-stack-endpoints-description"></a>
|
||||
|
||||
Você pode acessar um bucket S3 através de um endpoint dual-stack usando um nome de endpoint de estilo hospedado virtual ou de estilo de caminho. Estes são úteis para acessar o S3 através de IPv6.
|
||||
Você pode acessar um bucket S3 através de um endpoint dual-stack usando um nome de endpoint no formato virtual hosted-style ou path-style. Esses são úteis para acessar o S3 via IPv6.
|
||||
|
||||
Os endpoints dual-stack usam a seguinte sintaxe:
|
||||
Dual-stack endpoints usam a seguinte sintaxe:
|
||||
|
||||
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
|
||||
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
|
||||
|
||||
### Privesc
|
||||
|
||||
Na página a seguir, você pode verificar como **abusar das permissões do S3 para escalar privilégios**:
|
||||
In the following page you can check how to **abuse S3 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Acesso Não Autenticado
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
### S3 Pós Exploração
|
||||
### S3 Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-s3-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Persistência
|
||||
### Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-s3-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Outras vulnerabilidades do S3
|
||||
## Other S3 vulns
|
||||
|
||||
### Problema de Envenenamento de Cache HTTP do S3 <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**De acordo com esta pesquisa**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue), foi possível armazenar em cache a resposta de um bucket arbitrário como se pertencesse a um diferente. Isso poderia ter sido abusado para alterar, por exemplo, as respostas de arquivos javascript e comprometer páginas arbitrárias usando o S3 para armazenar código estático.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) era possível armazenar em cache a resposta de um bucket arbitrário como se pertencesse a outro diferente. Isso poderia ter sido abusado para alterar, por exemplo, respostas de arquivos javascript e comprometer páginas arbitrárias que usam o S3 para armazenar código estático.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena é um serviço de consulta interativa que facilita a **análise de dados** diretamente no Amazon Simple Storage Service (Amazon **S3**) **usando** SQL padrão.
|
||||
Amazon Athena é um serviço de consultas interativo que facilita a análise de dados diretamente no Amazon Simple Storage Service (Amazon **S3**) usando SQL padrão.
|
||||
|
||||
Você precisa **preparar uma tabela de DB relacional** com o formato do conteúdo que vai aparecer nos buckets S3 monitorados. E então, o Amazon Athena será capaz de popular o DB a partir dos logs, para que você possa consultá-lo.
|
||||
Você precisa **preparar uma tabela relacional DB** com o formato do conteúdo que vai aparecer nos buckets S3 monitorados. Em seguida, o Amazon Athena poderá popular o DB a partir dos logs, permitindo que você o consulte.
|
||||
|
||||
Amazon Athena suporta a **capacidade de consultar dados do S3 que já estão criptografados** e, se configurado para isso, **Athena também pode criptografar os resultados da consulta que podem ser armazenados no S3**.
|
||||
O Amazon Athena suporta a **capacidade de consultar dados S3 que já estão criptografados** e, se configurado para tal, **o Athena também pode criptografar os resultados da consulta, que então podem ser armazenados no S3**.
|
||||
|
||||
**Essa criptografia de resultados é independente dos dados S3 consultados**, o que significa que mesmo que os dados S3 não estejam criptografados, os resultados consultados podem ser criptografados. Alguns pontos a serem observados são que o Amazon Athena suporta apenas dados que foram **criptografados** com os **seguintes métodos de criptografia do S3**, **SSE-S3, SSE-KMS e CSE-KMS**.
|
||||
**Essa criptografia dos resultados é independente dos dados S3 subjacentes consultados**, o que significa que mesmo que os dados S3 não estejam criptografados, os resultados consultados podem ser criptografados. Alguns pontos a observar: o Amazon Athena só suporta dados que foram **criptografados** com os **seguintes métodos de criptografia S3**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
|
||||
SSE-C e CSE-E não são suportados. Além disso, é importante entender que o Amazon Athena só executará consultas contra **objetos criptografados que estão na mesma região que a própria consulta**. Se você precisar consultar dados do S3 que foram criptografados usando KMS, permissões específicas são necessárias pelo usuário do Athena para permitir que eles realizem a consulta.
|
||||
SSE-C and CSE-C não são suportados. Além disso, é importante entender que o Amazon Athena executará consultas apenas contra **objetos criptografados que estejam na mesma região da própria consulta**. Se você precisa consultar dados S3 que foram criptografados usando KMS, permissões específicas são exigidas para o usuário do Athena permitir que ele execute a consulta.
|
||||
|
||||
### Enumeração
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
|
||||
Reference in New Issue
Block a user