mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-s3-a
This commit is contained in:
@@ -4,36 +4,36 @@
|
||||
|
||||
## S3
|
||||
|
||||
Amazon S3 to usługa, która pozwala **przechowywać duże ilości danych**.
|
||||
Amazon S3 is a service that allows you **przechowywać duże ilości danych**.
|
||||
|
||||
Amazon S3 oferuje kilka opcji zapewnienia **ochrony** danych w spoczynku. Opcje obejmują **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** oraz **MFA** **based delete**. **użytkownik może włączyć** dowolną z tych opcji, aby osiągnąć ochronę danych. **Replikacja danych** jest wewnętrzną funkcją AWS, gdzie **S3 automatycznie replikuje każdy obiekt pomiędzy wszystkimi Availability Zones** i organizacja nie musi jej włączać w tym przypadku.
|
||||
Amazon S3 provides multiple options to achieve the **ochronę** danych w spoczynku. The options include **Uprawnienia** (Policy), **Szyfrowanie** (Client and Server Side), **Bucket Versioning** i **MFA** **based delete**. The **użytkownik może włączyć** dowolną z tych opcji, aby zabezpieczyć dane. **Data replication** to wewnętrzna funkcja AWS, w której **S3 automatycznie replikuje każdy obiekt we wszystkich Availability Zones** i organizacja nie musi jej włączać.
|
||||
|
||||
Dzięki uprawnieniom opartym na zasobach możesz zdefiniować uprawnienia dla podkatalogów swojego bucketu osobno.
|
||||
Dzięki uprawnieniom opartym na zasobach można osobno zdefiniować uprawnienia dla podkatalogów w bucketu.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Kiedy bucket versioning jest włączony, każda akcja próbująca zmodyfikować plik spowoduje utworzenie nowej wersji pliku, zachowując też poprzednią zawartość. W związku z tym zawartość nie zostanie nadpisana.
|
||||
When bucket versioning is enabled, any action that tries to alter a file inside a file will generate a new version of the file, keeping also the previous content of the same. Therefore, it won't overwrite its content.
|
||||
|
||||
Dodatkowo, MFA based delete uniemożliwi usunięcie wersji plików w S3 bucket oraz wyłączenie Bucket Versioning, więc atakujący nie będzie mógł zmodyfikować tych plików.
|
||||
Dodatkowo, MFA based delete zapobiegnie usuwaniu wersji plików w S3 bucket oraz wyłączeniu Bucket Versioning, więc atakujący nie będzie w stanie zmodyfikować tych plików.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
Możliwe jest **włączenie S3 access login** (które domyślnie jest wyłączone) dla danego bucketu i zapisanie logów w innym bucketu, aby wiedzieć, kto uzyskuje dostęp do bucketu (oba buckety muszą być w tym samym regionie).
|
||||
Możliwe jest **włączenie S3 access login** (domyślnie wyłączone) dla bucketu i zapisanie logów w innym buckecie, aby wiedzieć, kto uzyskuje dostęp do bucketu (oba buckety muszą być w tym samym regionie).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
Możliwe jest wygenerowanie presigned URL, który zazwyczaj można użyć do **dostępu do określonego pliku** w bucket. **Presigned URL wygląda tak**:
|
||||
It's possible to generate a presigned URL that can usually be used to **uzyskać dostęp do określonego pliku** w bucketu. A **presigned URL looks like this**:
|
||||
```
|
||||
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
|
||||
```
|
||||
Presigned URL może być **utworzony z poziomu cli przy użyciu poświadczeń principala mającego dostęp do obiektu** (jeśli konto, którego używasz, nie ma dostępu, zostanie utworzony krótszy presigned URL, ale będzie bezużyteczny)
|
||||
Presigned URL można **utworzyć z poziomu cli, używając credentials principala, który ma dostęp do obiektu** (jeśli konto, którego używasz, nie ma dostępu, zostanie utworzony krótszy presigned URL, ale będzie bezużyteczny)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Jedynym wymaganym uprawnieniem do wygenerowania presigned URL jest uprawnienie, które jest przydzielane, więc dla poprzedniego polecenia jedynym uprawnieniem potrzebnym principalowi jest `s3:GetObject`
|
||||
> Jedynym wymaganym uprawnieniem do wygenerowania presigned URL jest uprawnienie będące przyznawanym, więc dla poprzedniego polecenia jedynym uprawnieniem potrzebnym przez principal jest `s3:GetObject`
|
||||
|
||||
Możliwe jest również tworzenie presigned URLs z **innymi uprawnieniami**:
|
||||
Możliwe jest także tworzenie presigned URLs z **innymi uprawnieniami**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -44,22 +44,22 @@ ExpiresIn=3600
|
||||
```
|
||||
### Mechanizmy szyfrowania S3
|
||||
|
||||
**DEK oznacza Data Encryption Key (klucz szyfrowania danych)** i jest kluczem, który zawsze jest generowany i używany do szyfrowania danych.
|
||||
**DEK oznacza Data Encryption Key** i jest to klucz, który zawsze jest generowany i używany do szyfrowania danych.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
|
||||
Ta opcja wymaga minimalnej konfiguracji — całym zarządzaniem kluczami szyfrującymi zajmuje się AWS. Wystarczy, że **wgrasz swoje dane, a S3 zajmie się resztą**. Każdy bucket w koncie S3 ma przypisany bucket key.
|
||||
Ta opcja wymaga minimalnej konfiguracji — całe zarządzanie używanymi kluczami szyfrowania jest prowadzone przez AWS. Wystarczy, że **wgrasz swoje dane, a S3 zajmie się resztą**. Każdemu bucketowi w koncie S3 przypisany jest bucket key.
|
||||
|
||||
- Szyfrowanie:
|
||||
- Object Data + utworzony jawny DEK --> Zaszyfrowane dane (przechowywane w S3)
|
||||
- Utworzony jawny DEK + S3 Master Key --> Zaszyfrowany DEK (przechowywany w S3) i tekst jawny jest usuwany z pamięci
|
||||
- Odszyfrowanie:
|
||||
- Zaszyfrowany DEK + S3 Master Key --> Jawny DEK
|
||||
- Jawny DEK + zaszyfrowane dane --> Object Data
|
||||
- Encryption:
|
||||
- Object Data + created plaintext DEK --> Zaszyfrowane dane (przechowywane w S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (przechowywany w S3) i tekst jawny jest usuwany z pamięci
|
||||
- Decryption:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
|
||||
Należy pamiętać, że w tym przypadku **klucz jest zarządzany przez AWS** (rotacja tylko co 3 lata). Jeśli użyjesz własnego klucza, będziesz mógł go rotować, wyłączyć i zastosować kontrolę dostępu.
|
||||
Proszę zwrócić uwagę, że w tym przypadku **klucz jest zarządzany przez AWS** (rotacja tylko co 3 lata). Jeśli użyjesz własnego klucza, będziesz mógł go rotować, wyłączyć i stosować kontrolę dostępu.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -67,16 +67,16 @@ Należy pamiętać, że w tym przypadku **klucz jest zarządzany przez AWS** (ro
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
|
||||
Ta metoda pozwala S3 korzystać z Key Management Service do generowania Data Encryption Keys. KMS daje znacznie większą elastyczność w zarządzaniu kluczami. Na przykład możesz wyłączyć, rotować i stosować kontrolę dostępu do CMK oraz audytować ich użycie za pomocą AWS Cloud Trail.
|
||||
Ta metoda pozwala S3 używać Key Management Service do generowania kluczy szyfrowania danych. KMS daje znacznie większą elastyczność w sposobie zarządzania kluczami. Na przykład możesz wyłączać, rotować i stosować kontrolę dostępu do CMK oraz audytować ich użycie za pomocą AWS Cloud Trail.
|
||||
|
||||
- Szyfrowanie:
|
||||
- S3 żąda data key od KMS CMK
|
||||
- KMS używa CMK do wygenerowania pary: jawny DEK i zaszyfrowany DEK, i wysyła je do S£
|
||||
- S3 używa jawnego klucza do zaszyfrowania danych, zapisuje zaszyfrowane dane i zaszyfrowany klucz oraz usuwa jawny klucz z pamięci
|
||||
- Odszyfrowanie:
|
||||
- S3 prosi KMS o odszyfrowanie zaszyfrowanego data key obiektu
|
||||
- KMS odszyfrowuje data key za pomocą CMK i odsyła go z powrotem do S3
|
||||
- S3 odszyfrowuje dane obiektu
|
||||
- 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 plaintext 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>
|
||||
|
||||
@@ -84,17 +84,17 @@ Ta metoda pozwala S3 korzystać z Key Management Service do generowania Data Enc
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
|
||||
Ta opcja daje możliwość dostarczenia własnego klucza głównego, którego możesz używać poza AWS. Twój klucz dostarczony przez klienta jest wysyłany wraz z danymi do S3, gdzie S3 wykonuje szyfrowanie.
|
||||
Ta opcja daje Ci możliwość dostarczenia własnego klucza głównego, którego możesz już używać poza AWS. Twój klucz dostarczony przez klienta jest wysyłany z danymi do S3, gdzie S3 wykona szyfrowanie za Ciebie.
|
||||
|
||||
- Szyfrowanie:
|
||||
- Użytkownik wysyła Object Data + klucz klienta do S3
|
||||
- Klucz klienta jest używany do zaszyfrowania danych i zaszyfrowane dane są przechowywane
|
||||
- Zasoltowana (zasolona) wartość HMAC klucza klienta jest również przechowywana do przyszłej weryfikacji klucza
|
||||
- Klucz klienta jest usuwany z pamięci
|
||||
- Odszyfrowanie:
|
||||
- Użytkownik wysyła klucz klienta
|
||||
- Klucz jest weryfikowany względem przechowywanej wartości HMAC
|
||||
- Dostarczony przez klienta klucz jest następnie używany do odszyfrowania danych
|
||||
- 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>
|
||||
|
||||
@@ -102,17 +102,17 @@ Ta opcja daje możliwość dostarczenia własnego klucza głównego, którego mo
|
||||
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Podobnie jak w SSE-KMS, tutaj również używany jest Key Management Service do generowania data encryption keys. Jednak tym razem KMS jest wywoływany przez klienta, nie przez S3. Szyfrowanie odbywa się po stronie klienta, a zaszyfrowane dane są wysyłane do S3 w celu przechowania.
|
||||
Podobnie jak w SSE-KMS, tutaj również używany jest Key Management Service do generowania kluczy szyfrowania danych. Tym razem jednak KMS jest wywoływany przez klienta, a nie przez S3. Szyfrowanie odbywa się po stronie klienta, a zaszyfrowane dane są następnie wysyłane do S3 w celu przechowania.
|
||||
|
||||
- Szyfrowanie:
|
||||
- Klient żąda data key od KMS
|
||||
- KMS zwraca jawny DEK i zaszyfrowany DEK z CMK
|
||||
- Oba klucze są zwracane
|
||||
- Klient szyfruje dane jawym DEK i wysyła do S3 zaszyfrowane dane + zaszyfrowany DEK (który jest zapisywany jako metadata zaszyfrowanych danych w S3)
|
||||
- Odszyfrowanie:
|
||||
- Zaszyfrowane dane wraz z zaszyfrowanym DEK są wysyłane do klienta
|
||||
- Klient prosi KMS o odszyfrowanie zaszyfrowanego klucza za pomocą CMK i KMS zwraca jawny DEK
|
||||
- Klient może teraz odszyfrować zaszyfrowane dane
|
||||
- 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>
|
||||
|
||||
@@ -120,21 +120,21 @@ Podobnie jak w SSE-KMS, tutaj również używany jest Key Management Service do
|
||||
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
|
||||
Korzystając z tego mechanizmu możesz użyć dostarczonych przez siebie kluczy i użyć AWS-SDK po stronie klienta, aby zaszyfrować dane przed wysłaniem ich do S3.
|
||||
Korzystając z tego mechanizmu możesz używać własnych kluczy i użyć klienta AWS-SDK, aby zaszyfrować dane przed wysłaniem ich do S3.
|
||||
|
||||
- Szyfrowanie:
|
||||
- Klient generuje DEK i szyfruje dane jawne
|
||||
- Następnie, używając własnego CMK, szyfruje DEK
|
||||
- Przesyła zaszyfrowane dane + zaszyfrowany DEK do S3, gdzie jest przechowywane
|
||||
- Odszyfrowanie:
|
||||
- S3 wysyła zaszyfrowane dane i DEK
|
||||
- Ponieważ klient posiada CMK użyty do zaszyfrowania DEK, odszyfrowuje DEK, a następnie używa jawnego DEK do odszyfrowania danych
|
||||
- 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>
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
Jednym z tradycyjnych głównych sposobów kompromitowania organizacji AWS jest rozpoczęcie od przejęcia publicznie dostępnych bucketów. **Możesz znaleźć** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
Jednym z tradycyjnych głównych sposobów kompromitacji organizacji AWS jest przejęcie publicznie dostępnych bucketów. **Możesz znaleźć** [**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,7 +229,7 @@ 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>
|
||||
|
||||
Możesz uzyskać dostęp do bucketu S3 przez endpoint dual-stack, używając nazwy endpointa w stylu virtual hosted-style lub path-style. Są one przydatne do dostępu do S3 przez IPv6.
|
||||
Możesz uzyskać dostęp do bucketu S3 przez dual-stack endpoint, używając virtual hosted-style lub path-style endpoint name. Są one przydatne do dostępu do S3 przez IPv6.
|
||||
|
||||
Dual-stack endpoints używają następującej składni:
|
||||
|
||||
@@ -238,13 +238,13 @@ Dual-stack endpoints używają następującej składni:
|
||||
|
||||
### Privesc
|
||||
|
||||
Na poniższej stronie możesz sprawdzić, jak **abuse S3 permissions to escalate privileges**:
|
||||
Na poniższej stronie możesz sprawdzić, jak **nadużyć uprawnień S3, aby eskalować przywileje**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Unauthenticated Access
|
||||
### Dostęp bez uwierzytelnienia
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum/README.md
|
||||
@@ -262,25 +262,25 @@ Na poniższej stronie możesz sprawdzić, jak **abuse S3 permissions to escalate
|
||||
../aws-persistence/aws-s3-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Other S3 vulns
|
||||
## Inne podatności S3
|
||||
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) możliwe było zbuforowanie odpowiedzi dowolnego bucketu tak, jakby należała do innego. Mogło to zostać wykorzystane do zmiany na przykład odpowiedzi plików JavaScript i skompromitowania dowolnych stron używających S3 do przechowywania statycznego kodu.
|
||||
[**Według tych badań**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) możliwe było zcache'owanie odpowiedzi dowolnego bucketu, tak jakby należała do innego. Można było to wykorzystać do zmiany na przykład odpowiedzi plików JavaScript i skompromitowania dowolnych stron używających S3 do przechowywania statycznego kodu.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena to interaktywny serwis zapytań, który ułatwia **analizować dane** bezpośrednio w Amazon Simple Storage Service (Amazon **S3**) **używając** standardowego **SQL**.
|
||||
Amazon Athena jest interaktywną usługą zapytań, która ułatwia **analizować dane** bezpośrednio w Amazon Simple Storage Service (Amazon **S3**) **przy użyciu** standardowego **SQL**.
|
||||
|
||||
Musisz **przygotować relacyjną tabelę DB** z formatem zawartości, która będzie pojawiać się w monitorowanych bucketach S3. Następnie Amazon Athena będzie w stanie wypełnić DB z logów, abyś mógł wykonywać zapytania.
|
||||
Musisz **przygotować relacyjną tabelę bazy danych** z formatem treści, która będzie pojawiać się w monitorowanych bucketach S3. Następnie Amazon Athena będzie mogła zapełnić bazę danymi z logów, abyś mógł je zapytywać.
|
||||
|
||||
Amazon Athena obsługuje **możliwość wykonywania zapytań na danych S3, które są już zaszyfrowane**, a jeśli jest tak skonfigurowana, **Athena może również szyfrować wyniki zapytania, które następnie mogą być przechowywane w S3**.
|
||||
Amazon Athena obsługuje **możliwość zapytań do danych S3, które są już zaszyfrowane**, i jeśli jest tak skonfigurowana, **Athena może także szyfrować wyniki zapytania, które następnie mogą być przechowywane w S3**.
|
||||
|
||||
**To szyfrowanie wyników jest niezależne od zaszyfrowanych danych S3, na które kierowane jest zapytanie**, co oznacza, że nawet jeśli dane S3 nie są zaszyfrowane, wyniki zapytania mogą być zaszyfrowane. Kilka kwestii, o których warto pamiętać, to fakt, że Amazon Athena obsługuje tylko dane zaszyfrowane przy użyciu **następujących metod szyfrowania S3**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
To szyfrowanie wyników jest niezależne od danych S3, które są zapytywane, co oznacza, że nawet jeśli dane S3 nie są zaszyfrowane, wyniki zapytań mogą być zaszyfrowane. Kilka rzeczy, o których warto pamiętać: Amazon Athena obsługuje tylko dane, które zostały **zaszyfrowane** jednym z **następujących metod szyfrowania S3**, **SSE-S3, SSE-KMS i CSE-KMS**.
|
||||
|
||||
SSE-C i CSE-C nie są obsługiwane. Dodatkowo ważne jest zrozumienie, że Amazon Athena będzie wykonywać zapytania tylko wobec **zaszyfrowanych obiektów, które znajdują się w tym samym regionie co samo zapytanie**. Jeśli musisz wykonać zapytanie na danych S3 zaszyfrowanych przy użyciu KMS, wymagane są specyficzne uprawnienia dla użytkownika Athena, aby umożliwić mu przeprowadzenie zapytania.
|
||||
SSE-C i CSE-C nie są obsługiwane. Dodatkowo ważne jest zrozumienie, że Amazon Athena będzie wykonywać zapytania tylko wobec **zaszyfrowanych obiektów, które znajdują się w tym samym regionie co samo zapytanie**. Jeśli potrzebujesz zapytać dane S3 zaszyfrowane przy użyciu KMS, wymagane są konkretne uprawnienia dla użytkownika Athena, aby umożliwić wykonanie zapytania.
|
||||
|
||||
### Enumeration
|
||||
### Enumeracja
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
@@ -302,7 +302,7 @@ aws athena get-prepared-statement --statement-name <name> --work-group <wg-name>
|
||||
# Run query
|
||||
aws athena start-query-execution --query-string <query>
|
||||
```
|
||||
## Źródła
|
||||
## Odniesienia
|
||||
|
||||
- [https://cloudsecdocs.com/aws/defensive/tooling/cli/#s3](https://cloudsecdocs.com/aws/defensive/tooling/cli/#s3)
|
||||
- [https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)
|
||||
|
||||
Reference in New Issue
Block a user