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 ni huduma inayokuruhusu **hifadhi kiasi kikubwa cha data**.
|
||||
Amazon S3 ni huduma inayokuruhusu **kuhifadhi kiasi kikubwa cha data**.
|
||||
|
||||
Amazon S3 inatoa chaguzi nyingi za kufikia **ulinzi** wa data katika hali ya kupumzika. Chaguzi hizo ni pamoja na **Ruhusa** (Sera), **Ushifirishaji** (Upande wa Mteja na Upande wa Server), **Mabadiliko ya Kichaka** na **kuondolewa** kwa msingi wa **MFA**. **Mtumiaji anaweza kuwezesha** chaguo lolote kati ya haya ili kufikia ulinzi wa data. **Replika ya data** ni huduma ya ndani ya AWS ambapo **S3 inajirudia kiotomatiki kila kitu katika maeneo yote ya Upatikanaji** na shirika halihitaji kuifanya iweze katika kesi hii.
|
||||
Amazon S3 inatoa chaguzi mbalimbali za kufikia **ulinzi** wa data at REST. Chaguzi hizi ni pamoja na **idhinishaji** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** na **MFA based delete**. Mtumiaji anaweza kuwezesha yoyote ya chaguzi hizi ili kupata ulinzi wa data. **Data replication** ni kipengele cha ndani cha AWS ambapo **S3 automatically replicates each object across all the Availability Zones** na shirika halihitaji kuizime katika kesi hii.
|
||||
|
||||
Kwa ruhusa za msingi wa rasilimali, unaweza kufafanua ruhusa kwa sub-directories za kichaka chako tofauti.
|
||||
Kwa resource-based permissions, unaweza kufafanua ruhusa kwa sub-directories za bucket yako kando.
|
||||
|
||||
### Mabadiliko ya Kichaka na kuondolewa kwa msingi wa MFA
|
||||
### Bucket Versioning and MFA based delete
|
||||
|
||||
Wakati mabadiliko ya kichaka yanapowezeshwa, kitendo chochote kinachojaribu kubadilisha faili ndani ya faili kitazalisha toleo jipya la faili, huku pia ikihifadhi yaliyomo ya awali ya hiyo. Hivyo, haitafuta yaliyomo yake.
|
||||
Wakati Bucket Versioning imewezeshwa, kitendo chochote kinachojaribu kubadilisha faili ndani ya bucket kitatengeneza version mpya ya faili hiyo, na kuhifadhi pia yaliyokuwa hapo awali. Kwa hiyo, haitabana au kuandika juu ya yaliyomo yake ya awali.
|
||||
|
||||
Zaidi ya hayo, kuondolewa kwa msingi wa MFA kutazuia matoleo ya faili katika kichaka cha S3 kufutwa na pia Mabadiliko ya Kichaka yasizuiliwe, hivyo mshambuliaji hataweza kubadilisha faili hizi.
|
||||
Zaidi ya hayo, MFA based delete itazuia matoleo ya faili ndani ya S3 bucket kufutwa na pia kuzuia Bucket Versioning kuzimwa, hivyo mshambuliaji hatawezi kubadilisha faili hizi.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
Inawezekana **kuwezesha kuingia kwa S3** (ambayo kwa kawaida imezuiliwa) kwa kichaka fulani na kuhifadhi logi katika kichaka tofauti ili kujua nani anayeingia kwenye kichaka (kichaka vyote vinapaswa kuwa katika eneo moja).
|
||||
Inawezekana **kuwezesha S3 access logging** (ambayo kwa default imezimwa) kwa bucket fulani na kuhifadhi logi katika bucket tofauti ili kujua nani anayeitumia bucket (bucket zote mbili lazima ziwe katika region moja).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
Inawezekana kuzalisha URL iliyosainiwa mapema ambayo kwa kawaida inaweza kutumika **kufikia faili iliyoainishwa** katika kichaka. **URL iliyosainiwa mapema inaonekana kama hii**:
|
||||
Inawezekana kuzalisha presigned URL ambayo kawaida inaweza kutumika **kupata faili iliyotajwa** katika bucket. 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
|
||||
```
|
||||
A presigned URL inaweza **kuundwa kutoka kwa cli kwa kutumia akreditivu za kiongozi mwenye ufikiaji wa kitu** (ikiwa akaunti unayotumia haina ufikiaji, URL fupi ya presigned itaundwa lakini itakuwa haina maana)
|
||||
Presigned URL inaweza **kuundwa kutoka kwa cli kwa kutumia credentials za principal mwenye upatikanaji wa object** (kama account unayotumia haina upatikanaji, presigned URL fupi itaundwa lakini haitakuwa na matumizi)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Ruhusa pekee inayohitajika kuunda URL iliyo na saini ni ruhusa inayotolewa, hivyo kwa amri ya awali ruhusa pekee inayohitajika na mhusika ni `s3:GetObject`
|
||||
> Ruhusa pekee inayohitajika kuunda presigned URL ni ruhusa inayotolewa, hivyo kwa amri iliyotangulia ruhusa pekee inayohitajika kwa principal ni `s3:GetObject`
|
||||
|
||||
Pia inawezekana kuunda URL zenye saini na **ruhusa nyingine**:
|
||||
Pia inawezekana kuunda presigned URLs kwa **ruhusa nyingine**:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -42,99 +42,99 @@ Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
|
||||
ExpiresIn=3600
|
||||
)
|
||||
```
|
||||
### S3 Encryption Mechanisms
|
||||
### Mbinu za Usimbaji za S3
|
||||
|
||||
**DEK inamaanisha Data Encryption Key** na ni funguo ambalo kila wakati linaundwa na kutumika kuandika data.
|
||||
**DEK inamaanisha Ufunguo wa Usimbaji wa Data** na ni ufunguo unaoundwa kila wakati na kutumika kusimba data.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
<summary><strong>Usimbaji upande wa server kwa ufunguo zinazosimamiwa na S3, SSE-S3</strong></summary>
|
||||
|
||||
Chaguo hili linahitaji usanidi mdogo na usimamizi wote wa funguo za usimbaji zinazotumika unasimamiwa na AWS. Unachohitaji kufanya ni **kupakia data yako na S3 itashughulikia mambo mengine yote**. Kila ndoo katika akaunti ya S3 inapewa funguo ya ndoo.
|
||||
Chaguo hili linahitaji usanidi mdogo na usimamizi wote wa ufunguo wa usimbaji unafanywa na AWS. Unachotakiwa kufanya ni **kupakia data yako na S3 itashughulikia mengine yote**. Kila bucket katika akaunti ya S3 hupatiwa bucket key.
|
||||
|
||||
- Usimbaji:
|
||||
- Data ya Kitu + DEK ya maandiko iliyoundwa --> Data iliyosimbwa (hifadhi ndani ya S3)
|
||||
- DEK ya maandiko iliyoundwa + S3 Master Key --> DEK iliyosimbwa (hifadhi ndani ya S3) na maandiko yanatolewa kutoka kwenye kumbukumbu
|
||||
- Ufunguo:
|
||||
- DEK iliyosimbwa + S3 Master Key --> DEK ya maandiko
|
||||
- DEK ya maandiko + Data iliyosimbwa --> Data ya Kitu
|
||||
- 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
|
||||
|
||||
Tafadhali, kumbuka kwamba katika kesi hii **funguo inasimamiwa na AWS** (mabadiliko kila baada ya miaka 3). Ikiwa utatumia funguo zako mwenyewe utaweza kubadilisha, kuzima na kuweka udhibiti wa ufikiaji.
|
||||
Tafadhali kumbuka kwamba katika kesi hii **ufunguo unasimamiwa na AWS** (rotation kila miaka 3 tu). Ukitumia ufunguo wako mwenyewe utaweza kufanya rotation, ku-disable na kuweka udhibiti wa upatikanaji.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
<summary><strong>Usimbaji upande wa server kwa ufunguo zinazosimamiwa na KMS, SSE-KMS</strong></summary>
|
||||
|
||||
Njia hii inaruhusu S3 kutumia huduma ya usimamizi wa funguo kuunda funguo zako za usimbaji wa data. KMS inakupa uwezo mkubwa zaidi wa jinsi funguo zako zinavyosimamiwa. Kwa mfano, unaweza kuzima, kubadilisha, na kuweka udhibiti wa ufikiaji kwa CMK, na kuagiza dhidi ya matumizi yao kwa kutumia AWS Cloud Trail.
|
||||
Njia hii inaruhusu S3 kutumia key management service ili kuunda data encryption keys zako. KMS inakupa unyumbufu mkubwa zaidi jinsi ufunguo zako zinavyosimamiwa. Kwa mfano, utaweza ku-disable, ku-rotate, na kuweka udhibiti wa upatikanaji kwa CMK, na pia kufuatilia matumizi yao kwa kutumia AWS Cloud Trail.
|
||||
|
||||
- Usimbaji:
|
||||
- S3 inahitaji funguo za data kutoka KMS CMK
|
||||
- KMS inatumia CMK kuunda jozi ya DEK ya maandiko na DEK iliyosimbwa na kuzipeleka kwa S3
|
||||
- S3 inatumia funguo ya maandiko kuandika data, kuhifadhi data iliyosimbwa na funguo iliyosimbwa na inafuta kutoka kwenye kumbukumbu funguo ya maandiko
|
||||
- Ufunguo:
|
||||
- S3 inaomba KMS kufungua funguo iliyosimbwa ya data ya kitu
|
||||
- KMS inafungua funguo ya data na CMK na kuirudisha kwa S3
|
||||
- S3 inafungua data ya kitu
|
||||
- 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 S3
|
||||
- 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>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
<summary><strong>Usimbaji upande wa server kupitia ufunguo zilizotolewa na mteja, SSE-C</strong></summary>
|
||||
|
||||
Chaguo hili linakupa fursa ya kutoa funguo zako za msingi ambazo huenda tayari unazitumia nje ya AWS. Funguo yako iliyotolewa na mteja itatumwa pamoja na data yako kwenda S3, ambapo S3 itafanya usimbaji kwa niaba yako.
|
||||
Chaguo hili linakupa fursa ya kutoa master key yako ambayo unaweza kuwa unaitumia nje ya AWS. Ufunguo uliotolewa na mteja utakapotumwa pamoja na data yako kwa S3, S3 itafanya usimbaji kwa niaba yako.
|
||||
|
||||
- Usimbaji:
|
||||
- Mtumiaji anatumia data ya kitu + funguo ya Mteja kwenda S3
|
||||
- Funguo ya mteja inatumika kuandika data na data iliyosimbwa inahifadhiwa
|
||||
- thamani ya HMAC iliyo na chumvi ya funguo ya mteja pia inahifadhiwa kwa uthibitisho wa funguo wa baadaye
|
||||
- funguo ya mteja inafuta kutoka kwenye kumbukumbu
|
||||
- Ufunguo:
|
||||
- Mtumiaji anatumia funguo ya mteja
|
||||
- Funguo inathibitishwa dhidi ya thamani ya HMAC iliyohifadhiwa
|
||||
- Funguo iliyotolewa na mteja inatumika kufungua data
|
||||
- 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>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
<summary><strong>Usimbaji upande wa mteja kwa KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Vivyo hivyo na SSE-KMS, hii pia inatumia huduma ya usimamizi wa funguo kuunda funguo zako za usimbaji wa data. Hata hivyo, wakati huu KMS inaitwa kupitia mteja si S3. Usimbaji unafanyika upande wa mteja na data iliyosimbwa inatumwa kwa S3 kuhifadhiwa.
|
||||
Kama SSE-KMS, pia hutumia key management service kuunda data encryption keys zako. Tofauti ni kwamba sasa KMS inaitwa kupitia client badala ya S3. Usimbaji hufanyika upande wa client na data iliyosimbwa kisha inatumwa kwa S3 kuhifadhiwa.
|
||||
|
||||
- Usimbaji:
|
||||
- Mteja anahitaji funguo ya data kutoka KMS
|
||||
- KMS inarudisha DEK ya maandiko na DEK iliyosimbwa na CMK
|
||||
- Funguo zote zinatumwa nyuma
|
||||
- Mteja kisha anasimbisha data kwa DEK ya maandiko na kutuma kwa S3 data iliyosimbwa + DEK iliyosimbwa (ambayo inahifadhiwa kama metadata ya data iliyosimbwa ndani ya S3)
|
||||
- Ufunguo:
|
||||
- Data iliyosimbwa na DEK iliyosimbwa inatumwa kwa mteja
|
||||
- Mteja anaomba KMS kufungua funguo iliyosimbwa kwa kutumia CMK na KMS inarudisha DEK ya maandiko
|
||||
- Mteja sasa anaweza kufungua data iliyosimbwa
|
||||
- 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>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
<summary><strong>Usimbaji upande wa mteja kwa ufunguo zilizotolewa na mteja, CSE-C</strong></summary>
|
||||
|
||||
Kwa kutumia mekanizimu hii, unaweza kutumia funguo zako zilizotolewa na kutumia mteja wa AWS-SDK kuandika data yako kabla ya kuituma kwa S3 kwa ajili ya uhifadhi.
|
||||
Kwa kutumia mfumo huu, unaweza kutumia ufunguo uliopewa na wewe mwenyewe na kutumia AWS-SDK client kusimba data yako kabla ya kuituma kwa S3 kwa ajili ya uhifadhi.
|
||||
|
||||
- Usimbaji:
|
||||
- Mteja anaunda DEK na kuandika data ya maandiko
|
||||
- Kisha, akitumia CMK yake ya kawaida anasimbisha DEK
|
||||
- anawasilisha data iliyosimbwa + DEK iliyosimbwa kwa S3 ambapo inahifadhiwa
|
||||
- Ufunguo:
|
||||
- S3 inatuma data iliyosimbwa na DEK
|
||||
- Kwa kuwa mteja tayari ana CMK iliyotumika kuandika DEK, anafungua DEK kisha anatumia DEK ya maandiko kufungua data
|
||||
- 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**
|
||||
|
||||
Moja ya njia za jadi za kukiuka mashirika ya AWS huanza kwa kukiuka ndoo zinazopatikana kwa umma. **Unaweza kupata** [**wasambazaji wa ndoo za umma katika ukurasa huu**](../aws-unauthenticated-enum-access/#s3-buckets)**.**
|
||||
Moja ya njia za jadi za ku-compromise organizations za AWS huanza kwa ku-compromise buckets zinazonekana hadharani. **You can find** [**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,16 +229,16 @@ 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>
|
||||
|
||||
Unaweza kufikia S3 bucket kupitia endpoint ya dual-stack kwa kutumia jina la endpoint ya virtual hosted-style au path-style. Hizi ni muhimu kufikia S3 kupitia IPv6.
|
||||
Unaweza kufikia S3 bucket kupitia dual-stack endpoint kwa kutumia virtual hosted-style au path-style endpoint name. Hizi ni muhimu kufikia S3 kupitia IPv6.
|
||||
|
||||
Dual-stack endpoints hutumia sintaksifuatayo:
|
||||
Dual-stack endpoints zinatumia sintaksia ifuatayo:
|
||||
|
||||
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
|
||||
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
|
||||
|
||||
### Privesc
|
||||
|
||||
Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za S3 ili kupandisha mamlaka**:
|
||||
Kwenye ukurasa ufuatao unaweza kuona jinsi ya **abuse S3 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
@@ -266,21 +266,19 @@ Katika ukurasa ufuatao unaweza kuangalia jinsi ya **kudhulumu ruhusa za S3 ili k
|
||||
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**Kulingana na utafiti huu**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) ilikuwa inawezekana kuhifadhi jibu la bucket yoyote kama ingekuwa ya bucket tofauti. Hii ingeweza kutumiwa kubadilisha kwa mfano majibu ya faili ya javascript na kuathiri kurasa yoyote kwa kutumia S3 kuhifadhi msimbo wa statiki.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) ilichangia kuwezekana kuweka kwenye cache majibu ya bucket yoyote kana kwamba ilihusiana na bucket tofauti. Hii inaweza kutumiwa kubadilisha, kwa mfano, majibu ya faili za javascript na kuathiri kurasa yoyote zinazotumia S3 kuhifadhi static code.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena ni huduma ya uchunguzi wa mwingiliano inayofanya iwe rahisi **kuchambua data** moja kwa moja katika Amazon Simple Storage Service (Amazon **S3**) **kwa kutumia** **SQL** ya kawaida.
|
||||
Amazon Athena ni huduma ya interactive query inayofanya iwe rahisi **kuchambua data** moja kwa moja katika Amazon Simple Storage Service (Amazon **S3**) **kwa kutumia** standard **SQL**.
|
||||
|
||||
Unahitaji **kuandaa jedwali la DB la uhusiano** lenye muundo wa maudhui ambayo yatakuwa yanaonekana katika S3 buckets zinazofuatiliwa. Na kisha, Amazon Athena itakuwa na uwezo wa kujaza DB kutoka kwa logi, ili uweze kuifanya uchunguzi.
|
||||
Unahitaji **kuandaa relational DB table** lenye muundo wa yaliyomo yatakayojitokeza katika buckets za S3 zinazofuatiliwa. Kisha, Amazon Athena itaweza kujaza DB kutoka kwa logs, hivyo unaweza kuyafanya query.
|
||||
|
||||
Amazon Athena inasaidia **uwezo wa kuchunguza data ya S3 ambayo tayari imefungwa** na ikiwa imewekwa kufanya hivyo, **Athena pia inaweza kufunga matokeo ya uchunguzi ambayo yanaweza kuhifadhiwa katika S3**.
|
||||
Amazon Athena inaunga mkono **uwezo wa kufanya query kwa S3 data ambayo tayari imeencrypted** na ikiwa imewezeshwa kufanya hivyo, **Athena pia inaweza encrypt matokeo ya query ambayo yanaweza kisha kuhifadhiwa katika S3**.
|
||||
|
||||
**Hii ufungaji wa matokeo hauitegemei data ya S3 iliyochunguzwa**, ikimaanisha kwamba hata kama data ya S3 haijafungwa, matokeo yaliyofanyiwa uchunguzi yanaweza kufungwa. Vidokezo kadhaa vya kuzingatia ni kwamba Amazon Athena inasaidia tu data ambayo imefungwa kwa **mbinu zifuatazo za ufungaji wa S3**, **SSE-S3, SSE-KMS, na CSE-KMS**.
|
||||
**This encryption of results is independent of the underlying queried S3 data**, ikimaanisha kwamba hata kama data ya S3 haijaencrypted, matokeo yaliyofutwa yanaweza kuwa encrypted. Pointi chache za kuzingatia ni kwamba Amazon Athena inaunga mkono data iliyokuwa **encrypted** kwa kutumia **S3 encryption methods** zifuatazo: **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
|
||||
SSE-C na CSE-E hazikubaliki. Mbali na hii, ni muhimu kuelewa kwamba Amazon Athena itafanya uchunguzi tu dhidi ya **vitu vilivyofungwa vilivyoko katika eneo moja na uchunguzi wenyewe**. Ikiwa unahitaji kuchunguza data ya S3 ambayo imefungwa kwa kutumia KMS, basi ruhusa maalum zinahitajika na mtumiaji wa Athena ili kuwapa uwezo wa kufanya uchunguzi.
|
||||
|
||||
### Enumeration
|
||||
SSE-C na CSE-C hazitumiwi. Zaidi ya hayo, ni muhimu kuelewa kwamba Amazon Athena itafanya queries tu dhidi ya **encrypted objects that are in the same region as the query itself**. Ikiwa unahitaji kufanya query kwa S3 data ambayo imeencrypted kwa kutumia KMS, basi idhini maalum zinahitajika kwa Athena user ili kumruhusu kufanya query.
|
||||
```bash
|
||||
# Get catalogs
|
||||
aws athena list-data-catalogs
|
||||
@@ -302,7 +300,7 @@ aws athena get-prepared-statement --statement-name <name> --work-group <wg-name>
|
||||
# Run query
|
||||
aws athena start-query-execution --query-string <query>
|
||||
```
|
||||
## Marejeo
|
||||
## Marejeleo
|
||||
|
||||
- [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