Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA

This commit is contained in:
Translator
2025-04-07 01:15:44 +00:00
parent 2b8aa4b9e7
commit eb4594f47c

View File

@@ -10,7 +10,7 @@
W AWS istnieje **konto główne**, które jest **rodzicem dla wszystkich kont** w Twojej **organizacji**. Jednak nie musisz używać tego konta do wdrażania zasobów, możesz utworzyć **inne konta, aby oddzielić różne infrastruktury AWS** między sobą.
Jest to bardzo interesujące z punktu widzenia **bezpieczeństwa**, ponieważ **jedno konto nie będzie mogło uzyskać dostępu do zasobów innego konta** (chyba że specjalnie utworzone są mosty), dzięki czemu możesz stworzyć granice między wdrożeniami.
Jest to bardzo interesujące z punktu widzenia **bezpieczeństwa**, ponieważ **jedno konto nie będzie mogło uzyskać dostępu do zasobów innego konta** (chyba że mosty zostaną specjalnie utworzone), dzięki czemu możesz stworzyć granice między wdrożeniami.
Dlatego w organizacji istnieją **dwa typy kont** (mówimy o kontach AWS, a nie kontach użytkowników): jedno konto, które jest wyznaczone jako konto zarządzające, oraz jedno lub więcej kont członkowskich.
@@ -20,7 +20,7 @@ Dlatego w organizacji istnieją **dwa typy kont** (mówimy o kontach AWS, a nie
- Zapraszać inne istniejące konta do organizacji
- Usuwać konta z organizacji
- Zarządzać zaproszeniami
- Stosować polityki do podmiotów (korzenie, OUs lub konta) w organizacji
- Stosować polityki do podmiotów (korzeni, OU lub kont) w organizacji
- Włączyć integrację z obsługiwanymi usługami AWS, aby zapewnić funkcjonalność usług w ramach wszystkich kont w organizacji.
- Możliwe jest zalogowanie się jako użytkownik główny, używając adresu e-mail i hasła użytego do utworzenia tego konta głównego/organizacji.
@@ -42,7 +42,7 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
**Polityka kontroli usług (SCP)** to polityka, która określa usługi i działania, które użytkownicy i role mogą wykorzystywać w kontach, na które wpływa SCP. SCP są **podobne do polityk uprawnień IAM**, z tą różnicą, że **nie przyznają żadnych uprawnień**. Zamiast tego, SCP określają **maksymalne uprawnienia** dla organizacji, jednostki organizacyjnej (OU) lub konta. Gdy dołączysz SCP do korzenia swojej organizacji lub OU, **SCP ogranicza uprawnienia dla podmiotów w kontach członkowskich**.
To jest JEDYNY sposób, aby **nawet użytkownik root mógł być powstrzymany** przed wykonaniem czegoś. Na przykład, może być użyty do powstrzymania użytkowników przed wyłączaniem CloudTrail lub usuwaniem kopii zapasowych.\
To jest JEDYNY sposób, aby **nawet użytkownik root mógł być powstrzymany** przed wykonaniem czegoś. Na przykład, może być użyta do powstrzymania użytkowników przed wyłączaniem CloudTrail lub usuwaniem kopii zapasowych.\
Jedynym sposobem na obejście tego jest również skompromitowanie **konta głównego**, które konfiguruje SCP (konto główne nie może być zablokowane).
> [!WARNING]
@@ -57,9 +57,9 @@ Przykłady SCP:
byciem wyłączonym
- Zablokować role odpowiedzialności za bezpieczeństwo/incydenty przed usunięciem lub
- Zablokować role odpowiedzialne za bezpieczeństwo/reakcję na incydenty przed usunięciem lub
zmianą.
zmodyfikowaniem.
- Zablokować usuwanie kopii zapasowych.
- Zablokować tworzenie użytkowników IAM i kluczy dostępu
@@ -70,7 +70,7 @@ Znajdź **przykłady JSON** w [https://docs.aws.amazon.com/organizations/latest/
**Polityka kontroli zasobów (RCP)** to polityka, która definiuje **maksymalne uprawnienia dla zasobów w twojej organizacji AWS**. RCP są podobne do polityk IAM pod względem składni, ale **nie przyznają uprawnień**—tylko ograniczają uprawnienia, które mogą być stosowane do zasobów przez inne polityki. Gdy dołączysz RCP do korzenia swojej organizacji, jednostki organizacyjnej (OU) lub konta, RCP ogranicza uprawnienia zasobów we wszystkich zasobach w dotkniętym zakresie.
To jest JEDYNY sposób, aby zapewnić, że **zasoby nie mogą przekraczać zdefiniowanych poziomów dostępu**—nawet jeśli polityka oparta na tożsamości lub zasobach jest zbyt liberalna. Jedynym sposobem na obejście tych ograniczeń jest również modyfikacja RCP skonfigurowanej przez konto zarządzające twojej organizacji.
To jest JEDYNY sposób, aby zapewnić, że **zasoby nie mogą przekroczyć zdefiniowanych poziomów dostępu**—nawet jeśli polityka oparta na tożsamości lub zasobach jest zbyt liberalna. Jedynym sposobem na obejście tych ograniczeń jest również modyfikacja RCP skonfigurowanej przez konto zarządzające twojej organizacji.
> [!WARNING]
> RCP tylko ograniczają uprawnienia, które mogą mieć zasoby. Nie kontrolują bezpośrednio, co mogą robić podmioty. Na przykład, jeśli RCP odmawia dostępu zewnętrznego do koszyka S3, zapewnia, że uprawnienia koszyka nigdy nie pozwalają na działania wykraczające poza ustalony limit—nawet jeśli polityka oparta na zasobach jest źle skonfigurowana.
@@ -86,7 +86,7 @@ Znajdź przykłady w [dokumentacji Polityk Kontroli Zasobów AWS Organizations](
### ARN
**Amazon Resource Name** to **unikalna nazwa**, jaką ma każdy zasób w AWS, składa się z tego:
**Amazon Resource Name** to **unikalna nazwa**, którą ma każdy zasób w AWS, składa się z tego:
```
arn:partition:service:region:account-id:resource-type/resource-id
arn:aws:elasticbeanstalk:us-west-1:123456789098:environment/App/Env
@@ -103,7 +103,7 @@ Zauważ, że w AWS są 4 partycje, ale tylko 3 sposoby ich nazywania:
IAM to usługa, która pozwala zarządzać **uwierzytelnianiem**, **autoryzacją** i **kontrolą dostępu** w Twoim koncie AWS.
- **Uwierzytelnianie** - Proces definiowania tożsamości i weryfikacji tej tożsamości. Proces ten można podzielić na: Identyfikację i weryfikację.
- **Autoryzacja** - Określa, do czego tożsamość ma dostęp w systemie, gdy już została uwierzytelniona.
- **Autoryzacja** - Określa, do czego tożsamość ma dostęp w systemie po jej uwierzytelnieniu.
- **Kontrola dostępu** - Metoda i proces, w jaki sposób przyznawany jest dostęp do zabezpieczonego zasobu.
IAM można zdefiniować przez jego zdolność do zarządzania, kontrolowania i regulowania mechanizmów uwierzytelniania, autoryzacji i kontroli dostępu tożsamości do Twoich zasobów w Twoim koncie AWS.
@@ -152,26 +152,26 @@ As [**stated here**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credent
### [Grupy użytkowników IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
Grupa użytkowników IAM [user group](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) to sposób na **przypisanie polityk do wielu użytkowników** jednocześnie, co może ułatwić zarządzanie uprawnieniami tych użytkowników. **Role i grupy nie mogą być częścią grupy**.
Grupa [użytkowników IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) to sposób na **przypisanie polityk do wielu użytkowników** jednocześnie, co może ułatwić zarządzanie uprawnieniami tych użytkowników. **Role i grupy nie mogą być częścią grupy**.
Możesz przypisać **politykę opartą na tożsamości do grupy użytkowników**, aby wszyscy **użytkownicy** w grupie użytkowników **otrzymali uprawnienia polityki**. **Nie możesz** zidentyfikować **grupy użytkowników** jako **`Principal`** w **polityce** (takiej jak polityka oparta na zasobach), ponieważ grupy odnoszą się do uprawnień, a nie do uwierzytelniania, a podmioty są uwierzytelnionymi jednostkami IAM.
Oto kilka ważnych cech grup użytkowników:
- Grupa **użytkowników** może **zawierać wielu użytkowników**, a **użytkownik** może **należeć do wielu grup**.
- **Grupy użytkowników nie mogą być zagnieżdżane**; mogą zawierać tylko użytkowników, a nie inne grupy użytkowników.
- **Grupy użytkowników nie mogą być zagnieżdżone**; mogą zawierać tylko użytkowników, a nie inne grupy użytkowników.
- Nie ma **domyślnej grupy użytkowników, która automatycznie obejmuje wszystkich użytkowników w koncie AWS**. Jeśli chcesz mieć taką grupę użytkowników, musisz ją utworzyć i przypisać do niej każdego nowego użytkownika.
- Liczba i rozmiar zasobów IAM w koncie AWS, takich jak liczba grup oraz liczba grup, do których użytkownik może należeć, są ograniczone. Aby uzyskać więcej informacji, zobacz [IAM i limity AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
- Liczba i rozmiar zasobów IAM w koncie AWS, takich jak liczba grup oraz liczba grup, do których użytkownik może należeć, są ograniczone. Aby uzyskać więcej informacji, zobacz [Limity IAM i AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html).
### [Role IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) <a href="#id_iam-roles" id="id_iam-roles"></a>
Rola IAM **jest bardzo podobna** do **użytkownika**, ponieważ jest to **tożsamość z politykami uprawnień, które określają, co** może i czego nie może robić w AWS. Jednak rola **nie ma żadnych poświadczeń** (hasła ani kluczy dostępu) związanych z nią. Zamiast być unikalnie przypisana do jednej osoby, rola ma być **przyjmowana przez każdego, kto jej potrzebuje (i ma wystarczające uprawnienia)**. **Użytkownik IAM może przyjąć rolę, aby tymczasowo** uzyskać różne uprawnienia do konkretnego zadania. Rola może być **przypisana do** [**użytkownika federacyjnego**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html), który loguje się za pomocą zewnętrznego dostawcy tożsamości zamiast IAM.
Rola IAM jest bardzo **podobna** do **użytkownika**, ponieważ jest to **tożsamość z politykami uprawnień, które określają, co** może i czego nie może robić w AWS. Jednak rola **nie ma żadnych poświadczeń** (hasła ani kluczy dostępu) związanych z nią. Zamiast być unikalnie przypisana do jednej osoby, rola ma być **przyjmowana przez każdego, kto jej potrzebuje (i ma wystarczające uprawnienia)**. **Użytkownik IAM może przyjąć rolę, aby tymczasowo** uzyskać różne uprawnienia do konkretnego zadania. Rola może być **przypisana do** [**użytkownika federacyjnego**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html), który loguje się za pomocą zewnętrznego dostawcy tożsamości zamiast IAM.
Rola IAM składa się z **dwóch typów polityk**: **polityki zaufania**, która nie może być pusta, definiującej **kto może przyjąć** rolę, oraz **polityki uprawnień**, która nie może być pusta, definiującej **do czego ma dostęp**.
#### Usługa AWS Security Token Service (STS)
Usługa AWS Security Token Service (STS) to usługa internetowa, która ułatwia **wydawanie tymczasowych, ograniczonych uprawni**. Jest specjalnie dostosowana do:
AWS Security Token Service (STS) to usługa internetowa, która ułatwia **wydawanie tymczasowych, ograniczonych poświadcz**. Jest specjalnie dostosowana do:
### [Tymczasowe poświadczenia w IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) <a href="#id_temp-creds" id="id_temp-creds"></a>
@@ -187,7 +187,7 @@ Służą do przypisywania uprawnień. Istnieją 2 typy:
- Polityki zarządzane przez klienta: skonfigurowane przez Ciebie. Możesz tworzyć polityki na podstawie polityk zarządzanych przez AWS (modyfikując jedną z nich i tworząc własną), korzystając z generatora polityk (widok GUI, który pomaga w przyznawaniu i odmawianiu uprawnień) lub pisząc własne.
Zgodnie z **domyślnym dostępem** jest **odmowa**, dostęp zostanie przyznany, jeśli określono wyraźną rolę.\
Jeśli **istnieje pojedyncza "Odmowa", nadpisze "Zezwól"**, z wyjątkiem żądań, które używają poświadczeń bezpieczeństwa głównego konta AWS (które są domyślnie dozwolone).
Jeśli **istnieje pojedyncza "Odmowa", nadpisze ona "Zezwól"**, z wyjątkiem żądań, które używają poświadczeń bezpieczeństwa głównego konta AWS (które są dozwolone domyślnie).
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -244,24 +244,24 @@ aws sts assume-role \
[--policy-arns <arn_custom_policy1> <arn_custom_policy2>]
[--policy <file://policy.json>]
```
Zauważ, że domyślnie **AWS może dodać polityki sesji do sesji**, które będą generowane z powodu innych przyczyn. Na przykład, w przypadku [nieautoryzowanych ról przyjętych przez Cognito](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) domyślnie (korzystając z ulepszonej autoryzacji), AWS wygeneruje **poświadczenia sesji z polityką sesji**, która ogranicza usługi, do których sesja ma dostęp [**do następującej listy**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
Zauważ, że domyślnie **AWS może dodawać polityki sesji do sesji**, które będą generowane z powodu innych przyczyn. Na przykład, w przypadku [nieautoryzowanych ról przyjętych przez Cognito](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) domyślnie (korzystając z ulepszonej autoryzacji), AWS wygeneruje **poświadczenia sesji z polityką sesji**, która ogranicza usługi, do których sesja ma dostęp [**do następującej listy**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services).
Dlatego, jeśli w pewnym momencie napotkasz błąd "... ponieważ żadna polityka sesji nie zezwala na ...", a rola ma dostęp do wykonania akcji, to dlatego, że **istnieje polityka sesji, która to uniemożliwia**.
### Federacja Tożsamości
Federacja tożsamości **pozwala użytkownikom z dostawców tożsamości, którzy są zewnętrzni** dla AWS, na bezpieczny dostęp do zasobów AWS bez konieczności podawania poświadczeń użytkownika AWS z ważnego konta IAM.\
Przykładem dostawcy tożsamości może być twoja własna korporacyjna **Microsoft Active Directory** (poprzez **SAML**) lub usługi **OpenID** (jak **Google**). Dostęp federacyjny pozwoli użytkownikom w nim na dostęp do AWS.
Przykładem dostawcy tożsamości może być twoja własna korporacyjna **Microsoft Active Directory** (poprzez **SAML**) lub usługi **OpenID** (takie jak **Google**). Dostęp federacyjny pozwoli użytkownikom w nim na dostęp do AWS.
Aby skonfigurować to zaufanie, generowany jest **dostawca tożsamości IAM (SAML lub OAuth)**, który **ufa** **innej platformie**. Następnie przynajmniej jedna **rola IAM jest przypisywana (ufająca) do dostawcy tożsamości**. Jeśli użytkownik z zaufanej platformy uzyskuje dostęp do AWS, uzyskuje dostęp jako wspomniana rola.
Aby skonfigurować to zaufanie, generowany jest **dostawca tożsamości IAM (SAML lub OAuth)**, który **ufa** **innej platformie**. Następnie co najmniej jedna **rola IAM jest przypisywana (ufająca) do dostawcy tożsamości**. Jeśli użytkownik z zaufanej platformy uzyskuje dostęp do AWS, uzyskuje dostęp jako wspomniana rola.
Jednak zazwyczaj będziesz chciał nadać **inną rolę w zależności od grupy użytkownika** na zewnętrznej platformie. Wtedy kilka **ról IAM może ufać** zewnętrznemu dostawcy tożsamości, a zewnętrzna platforma będzie tą, która pozwoli użytkownikom przyjąć jedną rolę lub inną.
Jednak zazwyczaj chcesz nadać **inną rolę w zależności od grupy użytkownika** na zewnętrznej platformie. Wtedy kilka **ról IAM może ufać** zewnętrznemu dostawcy tożsamości, a zewnętrzna platforma będzie tą, która pozwoli użytkownikom przyjąć jedną rolę lub inną.
<figure><img src="../../../images/image (247).png" alt=""><figcaption></figcaption></figure>
### IAM Identity Center
AWS IAM Identity Center (następca AWS Single Sign-On) rozszerza możliwości AWS Identity and Access Management (IAM), aby zapewnić **centralne miejsce**, które łączy **administrację użytkowników i ich dostęp do kont AWS** oraz aplikacji w chmurze.
AWS IAM Identity Center (następca AWS Single Sign-On) rozszerza możliwości AWS Identity and Access Management (IAM), aby zapewnić **centralne miejsce**, które łączy **administrację użytkownikami i ich dostępem do kont AWS** oraz aplikacji w chmurze.
Domena logowania będzie wyglądać jak `<user_input>.awsapps.com`.
@@ -275,7 +275,7 @@ Aby zalogować użytkowników, można użyć 3 źródeł tożsamości:
W najprostszym przypadku katalogu Identity Center, **Identity Center będzie miał listę użytkowników i grup** i będzie mógł **przypisywać polityki** do nich do **dowolnych kont** organizacji.
Aby nadać dostęp użytkownikowi/grupie Identity Center do konta, **zostanie utworzony zaufany dostawca tożsamości SAML**, a **rola ufająca dostawcy tożsamości z wskazanymi politykami zostanie utworzona** w docelowym koncie.
Aby nadać dostęp użytkownikowi/grupie Identity Center do konta, **zostanie utworzony zaufany dostawca tożsamości SAML**, a **rola zaufana dostawcy tożsamości z wskazanymi politykami zostanie utworzona** w docelowym koncie.
#### AwsSSOInlinePolicy
@@ -294,11 +294,11 @@ Nieobsługiwane:
- Relacje zaufania
- Centrum administracyjne AD
- Pełne wsparcie API PS
- Pełne wsparcie PS API
- Kosz na śmieci AD
- Zarządzane konta usług grupowych
- Rozszerzenia schematu
- Brak bezpośredniego dostępu do systemu operacyjnego lub instancji
- Brak bezpośredniego dostępu do OS lub instancji
#### Federacja Webowa lub Uwierzytelnianie OpenID
@@ -307,9 +307,9 @@ Aplikacja używa AssumeRoleWithWebIdentity do tworzenia tymczasowych poświadcze
### Inne opcje IAM
- Możesz **ustawić politykę haseł**, opcje takie jak minimalna długość i wymagania dotyczące haseł.
- Możesz **pobrać "Raport Poświadczeń"** z informacjami o bieżących poświadczeniach (takimi jak czas utworzenia użytkownika, czy hasło jest włączone...). Możesz generować raport poświadczeń tak często, jak co **cztery godziny**.
- Możesz **pobrać "Raport Poświadczeń"** z informacjami o aktualnych poświadczeniach (takimi jak czas utworzenia użytkownika, czy hasło jest włączone...). Możesz generować raport poświadczeń tak często, jak co **cztery godziny**.
AWS Identity and Access Management (IAM) zapewnia **szczegółową kontrolę dostępu** w całym AWS. Dzięki IAM możesz określić, **kto może uzyskać dostęp do jakich usług i zasobów**, oraz na jakich warunkach. Dzięki politykom IAM zarządzasz uprawnieniami dla swojej siły roboczej i systemów, aby **zapewnić uprawnienia minimalne**.
AWS Identity and Access Management (IAM) zapewnia **szczegółową kontrolę dostępu** w całym AWS. Dzięki IAM możesz określić, **kto może uzyskać dostęp do jakich usług i zasobów**, oraz na jakich warunkach. Dzięki politykom IAM zarządzasz uprawnieniami dla swojej siły roboczej i systemów, aby **zapewnić minimalne uprawnienia**.
### Prefiksy ID IAM
@@ -361,7 +361,7 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
region = eu-west-2
```
Jeśli musisz uzyskać dostęp do **różnych kont AWS** i Twój profil ma dostęp do **przyjęcia roli w tych kontach**, nie musisz ręcznie wywoływać STS za każdym razem (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) i konfigurować poświadczeń.
Jeśli musisz uzyskać dostęp do **różnych kont AWS** i Twój profil ma przyznany dostęp do **przyjęcia roli w tych kontach**, nie musisz ręcznie wywoływać STS za każdym razem (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) i konfigurować poświadczeń.
Możesz użyć pliku `~/.aws/config`, aby [**wskazać, które role przyjąć**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), a następnie użyć parametru `--profile` jak zwykle (operacja `assume-role` zostanie wykonana w sposób przezroczysty dla użytkownika).\
Przykład pliku konfiguracyjnego:
@@ -379,6 +379,23 @@ aws --profile acc2 ...
```
Jeśli szukasz czegoś **podobnego** do tego, ale dla **przeglądarki**, możesz sprawdzić **rozszerzenie** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en).
#### Automatyzacja tymczasowych poświadczeń
Jeśli wykorzystujesz aplikację, która generuje tymczasowe poświadczenia, może być uciążliwe aktualizowanie ich w terminalu co kilka minut, gdy wygasają. Można to naprawić, używając dyrektywy `credential_process` w pliku konfiguracyjnym. Na przykład, jeśli masz jakąś podatną aplikację webową, możesz zrobić:
```toml
[victim]
credential_process = curl -d 'PAYLOAD' https://some-site.com
```
Zauważ, że poświadczenia _muszą_ być zwrócone do STDOUT w następującym formacie:
```json
{
"Version": 1,
"AccessKeyId": "an AWS access key",
"SecretAccessKey": "your AWS secret access key",
"SessionToken": "the AWS session token for temporary credentials",
"Expiration": "ISO8601 timestamp when the credentials expire"
}
```
## Odniesienia
- [https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)