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-services/aws-s3-a
This commit is contained in:
+101
-101
@@ -1,185 +1,185 @@
|
||||
# AWS - VPC & Networking Basiese Inligting
|
||||
# AWS - VPC & Netwerk Basiese Inligting
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## AWS Networking in a Nutshell
|
||||
## AWS Netwerking in 'n neutedop
|
||||
|
||||
A **VPC** contains a **network CIDR** like 10.0.0.0/16 (with its **routing table** and **network ACL**).
|
||||
A **VPC** bevat 'n **network CIDR** soos 10.0.0.0/16 (met sy **routing table** en **network ACL**).
|
||||
|
||||
This VPC network is divided in **subnetworks**, so a **subnetwork** is directly **related** with the **VPC**, **routing** **table** and **network ACL**.
|
||||
Hierdie VPC-netwerk is verdeel in **subnetworks**, dus is 'n **subnetwork** direk **verwant** aan die **VPC**, **routing** **table** en **network ACL**.
|
||||
|
||||
Then, **Network Interface**s attached to services (like EC2 instances) are **connected** to the **subnetworks** with **security group(s)**.
|
||||
Dan word **Network Interface**s wat aan dienste gekoppel is (soos EC2 instances) **verbind** met die **subnetworks** en gebruik **security group(s)**.
|
||||
|
||||
Therefore, a **security group** will limit the exposed ports of the network **interfaces using it**, **independently of the subnetwork**. And a **network ACL** will **limit** the exposed ports to to the **whole network**.
|
||||
Daarom sal 'n **security group** die blootgestelde poorte van die netwerk **interfaces wat dit gebruik** beperk, **onafhanklik van die subnet**. En 'n **network ACL** sal die blootgestelde poorte vir die **hele netwerk** **beperk**.
|
||||
|
||||
Moreover, in order to **access Internet**, there are some interesting configurations to check:
|
||||
Verder, om toegang tot die Internet te hê, is daar 'n paar belangrike konfigurasies om na te gaan:
|
||||
|
||||
- A **subnetwork** can **auto-assign public IPv4 addresses**
|
||||
- An **instance** created in the network that **auto-assign IPv4 addresses can get one**
|
||||
- An **Internet gateway** need to be **attached** to the **VPC**
|
||||
- You could also use **Egress-only internet gateways**
|
||||
- You could also have a **NAT gateway** in a **private subnet** so it's possible to **connect to external services** from that private subnet, but it's **not possible to reach them from the outside**.
|
||||
- The NAT gateway can be **public** (access to the internet) or **private** (access to other VPCs)
|
||||
- 'n **subnetwork** kan **auto-assign public IPv4 addresses** hê
|
||||
- 'n **instance** geskep in die netwerk wat **auto-assign IPv4 addresses** het, kan een kry
|
||||
- 'n **Internet gateway** moet aan die **VPC** **gekoppel** wees
|
||||
- Jy kan ook **Egress-only internet gateways** gebruik
|
||||
- Jy kan ook 'n **NAT gateway** in 'n **private subnet** hê sodat dit moontlik is om van daardie private subnet na eksterne dienste te **koppel**, maar dit is **nie moontlik om van buite na hulle te bereik** nie.
|
||||
- Die NAT gateway kan **public** wees (toegang tot die internet) of **private** (toegang tot ander VPCs)
|
||||
|
||||
.png>)
|
||||
|
||||
## VPC
|
||||
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) enables you to **launch AWS resources into a virtual network** that you've defined. This virtual network will have several subnets, Internet Gateways to access Internet, ACLs, Security groups, IPs...
|
||||
Amazon **Virtual Private Cloud** (Amazon VPC) stel jou in staat om **AWS resources in 'n virtuele netwerk te begin** wat jy gedefinieer het. Hierdie virtuele netwerk sal verskeie subnets hê, Internet Gateways om toegang tot die Internet te gee, ACLs, Security groups, IPs...
|
||||
|
||||
### Subnets
|
||||
|
||||
Subnets helps to enforce a greater level of security. **Logical grouping of similar resources** also helps you to maintain an **ease of management** across your infrastructure.
|
||||
Subnets help om 'n hoër vlak van sekuriteit af te dwing. 'n **Logiese groepering van soortgelyke bronne** help ook om 'n **makliker bestuur** van jou infrastruktuur te behou.
|
||||
|
||||
- Valid CIDR are from a /16 netmask to a /28 netmask.
|
||||
- A subnet cannot be in different availability zones at the same time.
|
||||
- **AWS reserves the first three host IP addresses** of each subnet **for** **internal AWS usage**: the first host address used is for the VPC router. The second address is reserved for AWS DNS and the third address is reserved for future use.
|
||||
- It's called **public subnets** to those that have **direct access to the Internet, whereas private subnets do not.**
|
||||
- Geldige CIDR is van 'n /16 netmask tot 'n /28 netmask.
|
||||
- 'n subnet kan nie op verskillende Availability Zones terselfdertyd wees nie.
|
||||
- **AWS reserves the first three host IP addresses** van elke subnet **vir** **interne AWS gebruik**: die eerste hostadres word gebruik vir die VPC router. Die tweede adres is gereserveer vir AWS DNS en die derde adres is gereserveer vir toekomstige gebruik.
|
||||
- Dit word **public subnets** genoem vir daardie wat **direkte toegang tot die Internet het, terwyl private subnets dit nie het nie.**
|
||||
|
||||
### Route Tables
|
||||
|
||||
Route tables determine the traffic routing for a subnet within a VPC. They determine which network traffic is forwarded to the internet or to a VPN connection. You will usually find access to the:
|
||||
Route tables bepaal die verkeerroete vir 'n subnet binne 'n VPC. Hulle bepaal watter netwerkverkeer na die internet of na 'n VPN-verbinding gestuur word. Jy sal gewoonlik toegang vind tot die:
|
||||
|
||||
- Local VPC
|
||||
- NAT
|
||||
- Internet Gateways / Egress-only Internet gateways (needed to give a VPC access to the Internet).
|
||||
- In order to make a subnet public you need to **create** and **attach** an **Internet gateway** to your VPC.
|
||||
- VPC endpoints (to access S3 from private networks)
|
||||
- Internet Gateways / Egress-only Internet gateways (nodig om 'n VPC toegang tot die Internet te gee).
|
||||
- Om 'n subnet openbaar te maak moet jy 'n **Internet gateway** **skep** en aan jou VPC **heg**.
|
||||
- VPC endpoints (om S3 vanaf private netwerke te bereik)
|
||||
|
||||
### ACLs
|
||||
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs are firewall rules that control incoming and outgoing network traffic to a subnet. They can be used to allow or deny traffic to specific IP addresses or ranges.
|
||||
**Network Access Control Lists (ACLs)**: Network ACLs is firewall-reëls wat inkomende en uitgaande netwerkverkeer na 'n subnet beheer. Hulle kan gebruik word om verkeer na spesifieke IP-adresse of reekse toe te laat of te weier.
|
||||
|
||||
- It’s most frequent to allow/deny access using security groups, but this is only way to completely cut established reverse shells. A modified rule in a security groups doesn’t stop already established connections
|
||||
- However, this apply to the whole subnetwork be careful when forbidding stuff because needed functionality might be disturbed
|
||||
- Dit is meer algemeen om toegang toe te laat/weier deur security groups, maar dit is die enigste manier om gevestigde reverse shells volledig af te sny. 'n Gewysigde reël in 'n security group stop nie reeds gevestigde verbindings nie.
|
||||
- Dit geld egter vir die hele subnet; wees versigtig wanneer jy dinge verbied omdat nodig funksionaliteit versteur kan word.
|
||||
|
||||
### Security Groups
|
||||
|
||||
Security groups are a virtual **firewall** that control inbound and outbound network **traffic to instances** in a VPC. Relation 1 SG to M instances (usually 1 to 1).\
|
||||
Usually this is used to open dangerous ports in instances, such as port 22 for example:
|
||||
Security groups is 'n virtuele **firewall** wat inkomende en uitgaande netwerk**verkeer na instances** in 'n VPC beheer. Verhouding 1 SG tot M instances (gewoonlik 1 tot 1).\
|
||||
Gewoonlik word dit gebruik om gevaarlike poorte in instances oop te maak, soos poort 22 byvoorbeeld:
|
||||
|
||||
<figure><img src="https://lh5.googleusercontent.com/LliB7eb3cYfkEyOpyw1-eYgWsn2kq1yF6uRn5VYndvOuTvDlURimYx9UvuK8F2impTLmx50mid4MdTXE-Ljt2i_rxaIfnKUdji_hFjCdU9tdoW-axng9-W4tSL71gbbjrPQ7IYY5lAdH_G3UoMRMGGGOxQ=s2048" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Elastic IP Addresses
|
||||
|
||||
An _Elastic IP address_ is a **static IPv4 address** designed for dynamic cloud computing. An Elastic IP address is allocated to your AWS account, and is yours until you release it. By using an Elastic IP address, you can mask the failure of an instance or software by rapidly remapping the address to another instance in your account.
|
||||
'n _Elastic IP address_ is 'n **statiese IPv4-adres** ontwerp vir dinamiese cloud computing. 'n Elastic IP-adres word aan jou AWS-rekening toegekend, en bly joune totdat jy dit vrygee. Deur 'n Elastic IP-adres te gebruik, kan jy die mislukking van 'n instance of sagteware maskeer deur die adres vinnig na 'n ander instance in jou rekening te herlei.
|
||||
|
||||
### Connection between subnets
|
||||
### Verbinding tussen subnets
|
||||
|
||||
By default, all subnets have the **automatic assigned of public IP addresses turned off** but it can be turned on.
|
||||
By verstek het alle subnets die **outomatiese toewysing van publieke IP-adresse afgeskakel**, maar dit kan aangeskakel word.
|
||||
|
||||
**A local route within a route table enables communication between VPC subnets.**
|
||||
**'n Local route binne 'n route table maak kommunikasie tussen VPC subnets moontlik.**
|
||||
|
||||
If you are **connection a subnet with a different subnet you cannot access the subnets connected** with the other subnet, you need to create connection with them directly. **This also applies to internet gateways**. You cannot go through a subnet connection to access internet, you need to assign the internet gateway to your subnet.
|
||||
As jy 'n subnet met 'n ander subnet verbind, kan jy nie toegang kry tot die subnets wat aan daardie ander subnet gekoppel is nie; jy moet direk verbindinge met hulle skep. **Dit geld ook vir internet gateways**. Jy kan nie deur 'n subnet-verbinding na die internet gaan nie; jy moet die internet gateway aan jou subnet toeken.
|
||||
|
||||
### VPC Peering
|
||||
|
||||
VPC peering allows you to **connect two or more VPCs together**, using IPV4 or IPV6, as if they were a part of the same network.
|
||||
VPC peering laat jou toe om **twee of meer VPCs met mekaar te koppel**, gebruikende IPv4 of IPv6, asof hulle deel is van dieselfde netwerk.
|
||||
|
||||
Once the peer connectivity is established, **resources in one VPC can access resources in the other**. The connectivity between the VPCs is implemented through the existing AWS network infrastructure, and so it is highly available with no bandwidth bottleneck. As **peered connections operate as if they were part of the same network**, there are restrictions when it comes to your CIDR block ranges that can be used.\
|
||||
If you have **overlapping or duplicate CIDR** ranges for your VPC, then **you'll not be able to peer the VPCs** together.\
|
||||
Each AWS VPC will **only communicate with its peer**. As an example, if you have a peering connection between VPC 1 and VPC 2, and another connection between VPC 2 and VPC 3 as shown, then VPC 1 and 2 could communicate with each other directly, as can VPC 2 and VPC 3, however, VPC 1 and VPC 3 could not. **You can't route through one VPC to get to another.**
|
||||
Sodra die peervinnigheid gevestig is, kan **hulpbronne in een VPC toegang hê tot hulpbronne in die ander**. Die verbinding tussen die VPCs word deur die bestaande AWS-netwerk-infrastruktuur geïmplementeer, en daarom is dit hoogs beskikbaar sonder bandbreedteknelpunte. Aangesien **peered connections werk asof dit deel is van dieselfde netwerk**, is daar beperkings wat betref die CIDR-blokreekse wat gebruik kan word.\
|
||||
As jy **oorvloedige of dubbele CIDR** reekse vir jou VPC het, kan jy **nie die VPCs peert nie**.\
|
||||
Elke AWS VPC sal **slegs met sy peer kommunikeer**. Byvoorbeeld, as jy 'n peering-verbinding tussen VPC 1 en VPC 2 het, en nog 'n verbinding tussen VPC 2 en VPC 3 soos getoon, kan VPC 1 en 2 direk met mekaar kommunikeer, net soos VPC 2 en VPC 3, maar VPC 1 en VPC 3 sal nie met mekaar kan nie. **Jy kan nie deur een VPC roeteer om by 'n ander uit te kom nie.**
|
||||
|
||||
### **VPC Flow Logs**
|
||||
|
||||
Within your VPC, you could potentially have hundreds or even thousands of resources all communicating between different subnets both public and private and also between different VPCs through VPC peering connections. **VPC Flow Logs allow you to capture IP traffic information that flows between your network interfaces of your resources within your VPC**.
|
||||
Binne jou VPC kan jy potensieel honderde of selfs duisende hulpbronne hê wat tussen verskillende subnets, beide openbare en private, kommunikeer en ook tussen verskillende VPCs deur VPC peering-verbindinge. **VPC Flow Logs laat jou toe om IP-verkeersinligting vas te vang wat tussen die netwerkinterfaces van jou hulpbronne binne jou VPC vloei**.
|
||||
|
||||
Unlike S3 access logs and CloudFront access logs, the **log data generated by VPC Flow Logs is not stored in S3. Instead, the log data captured is sent to CloudWatch logs**.
|
||||
Anders as S3 access logs en CloudFront access logs, word die **logdata gegenereer deur VPC Flow Logs nie in S3 gestoor nie. In plaas daarvan word die vasgevangte logdata na CloudWatch logs gestuur**.
|
||||
|
||||
Limitations:
|
||||
Beperkings:
|
||||
|
||||
- If you are running a VPC peered connection, then you'll only be able to see flow logs of peered VPCs that are within the same account.
|
||||
- If you are still running resources within the EC2-Classic environment, then unfortunately you are not able to retrieve information from their interfaces
|
||||
- Once a VPC Flow Log has been created, it cannot be changed. To alter the VPC Flow Log configuration, you need to delete it and then recreate a new one.
|
||||
- The following traffic is not monitored and captured by the logs. DHCP traffic within the VPC, traffic from instances destined for the Amazon DNS Server.
|
||||
- Any traffic destined to the IP address for the VPC default router and traffic to and from the following addresses, 169.254.169.254 which is used for gathering instance metadata, and 169.254.169.123 which is used for the Amazon Time Sync Service.
|
||||
- Traffic relating to an Amazon Windows activation license from a Windows instance
|
||||
- Traffic between a network load balancer interface and an endpoint network interface
|
||||
- As jy 'n VPC peered connection laat loop, sal jy slegs flow logs van peered VPCs wat binne dieselfde rekening is kan sien.
|
||||
- As jy steeds hulpbronne in die EC2-Classic omgewing laat loop, is dit ongelukkig nie moontlik om inligting van hul interfaces te kry nie.
|
||||
- Sodra 'n VPC Flow Log geskep is, kan dit nie verander word nie. Om die VPC Flow Log-konfigurasie te verander, moet jy dit uitvee en dan 'n nuwe skep.
|
||||
- Die volgende verkeer word nie gemonitor of deur die logs vasgelê nie: DHCP-verkeer binne die VPC, verkeer van instances bestem vir die Amazon DNS Server.
|
||||
- Enige verkeer bestem vir die IP-adres van die VPC standaard router en verkeer na en van die volgende adresse, 169.254.169.254 wat gebruik word vir die insameling van instance metadata, en 169.254.169.123 wat gebruik word vir die Amazon Time Sync Service.
|
||||
- Verkeer wat verband hou met 'n Amazon Windows aktiveringslisensie vanaf 'n Windows instance
|
||||
- Verkeer tussen 'n network load balancer interface en 'n endpoint network interface
|
||||
|
||||
For every network interface that publishes data to the CloudWatch log group, it will use a different log stream. And within each of these streams, there will be the flow log event data that shows the content of the log entries. Each of these **logs captures data during a window of approximately 10 to 15 minutes**.
|
||||
Vir elke netwerkinterface wat data na die CloudWatch log group publiseer, sal dit 'n ander log stream gebruik. En binne elkeen van hierdie streams sal daar die flow log gebeure wees wat die inhoud van die loginskrywings wys. Elk van hierdie **logs vang data vas gedurende 'n venster van ongeveer 10 tot 15 minute**.
|
||||
|
||||
## VPN
|
||||
|
||||
### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- A Customer Gateway is a resource that you create in AWS to represent your side of a VPN connection.
|
||||
- It is essentially a physical device or software application on your side of the Site-to-Site VPN connection.
|
||||
- You provide routing information and the public IP address of your network device (such as a router or a firewall) to AWS to create a Customer Gateway.
|
||||
- It serves as a reference point for setting up the VPN connection and doesn't incur additional charges.
|
||||
- 'n Customer Gateway is 'n resource wat jy in AWS skep om jou kant van 'n VPN-verbinding te verteenwoordig.
|
||||
- Dit is in wese 'n fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding.
|
||||
- Jy verskaf routeringsinligting en die publieke IP-adres van jou netwerkapparaat (soos 'n router of 'n firewall) aan AWS om 'n Customer Gateway te skep.
|
||||
- Dit dien as 'n verwysingspunt vir die opstel van die VPN-verbinding en veroorsaak geen bykomende koste nie.
|
||||
2. **Virtual Private Gateway**:
|
||||
- A Virtual Private Gateway (VPG) is the VPN concentrator on the Amazon side of the Site-to-Site VPN connection.
|
||||
- It is attached to your VPC and serves as the target for your VPN connection.
|
||||
- VPG is the AWS side endpoint for the VPN connection.
|
||||
- It handles the secure communication between your VPC and your on-premises network.
|
||||
- 'n Virtual Private Gateway (VPG) is die VPN-konsontrator aan die Amazon-kant van die Site-to-Site VPN-verbinding.
|
||||
- Dit is aan jou VPC gekoppel en dien as die teiken vir jou VPN-verbinding.
|
||||
- VPG is die AWS-kant eindpunt vir die VPN-verbinding.
|
||||
- Dit hanteer die veilige kommunikasie tussen jou VPC en jou on-premises netwerk.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- A Site-to-Site VPN connection connects your on-premises network to a VPC through a secure, IPsec VPN tunnel.
|
||||
- This type of connection requires a Customer Gateway and a Virtual Private Gateway.
|
||||
- It's used for secure, stable, and consistent communication between your data center or network and your AWS environment.
|
||||
- Typically used for regular, long-term connections and is billed based on the amount of data transferred over the connection.
|
||||
- 'n Site-to-Site VPN-verbinding verbind jou on-premises netwerk met 'n VPC deur 'n veilige, IPsec VPN-tonnel.
|
||||
- Hierdie tipe verbinding vereis 'n Customer Gateway en 'n Virtual Private Gateway.
|
||||
- Dit word gebruik vir veilige, stabiele en konsekwente kommunikasie tussen jou datacentrum of netwerk en jou AWS-omgewing.
|
||||
- Gewoonlik gebruik vir gereelde, langtermyn verbindings en word gefaktureer gebaseer op die hoeveelheid data wat oor die verbinding oorgedra word.
|
||||
4. **Client VPN Endpoint**:
|
||||
- A Client VPN endpoint is a resource that you create in AWS to enable and manage client VPN sessions.
|
||||
- It is used for allowing individual devices (like laptops, smartphones, etc.) to securely connect to AWS resources or your on-premises network.
|
||||
- It differs from Site-to-Site VPN in that it is designed for individual clients rather than connecting entire networks.
|
||||
- With Client VPN, each client device uses a VPN client software to establish a secure connection.
|
||||
- 'n Client VPN endpoint is 'n resource wat jy in AWS skep om client VPN-sessies moontlik te maak en te bestuur.
|
||||
- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) toe te laat om veilig aan AWS-hulpbronne of jou on-premises netwerk te koppel.
|
||||
- Dit verskil van Site-to-Site VPN aangesien dit ontwerp is vir individuele kliënte eerder as om hele netwerke te koppel.
|
||||
- Met Client VPN gebruik elke kliënttoestel 'n VPN client sagteware om 'n veilige verbinding te vestig.
|
||||
|
||||
### Site-to-Site VPN
|
||||
|
||||
**Connect your on premisses network with your VPC.**
|
||||
**Verbind jou on-premises netwerk met jou VPC.**
|
||||
|
||||
- **VPN connection**: A secure connection between your on-premises equipment and your VPCs.
|
||||
- **VPN tunnel**: An encrypted link where data can pass from the customer network to or from AWS.
|
||||
- **VPN connection**: 'n veilige verbinding tussen jou on-premises toerusting en jou VPCs.
|
||||
- **VPN tunnel**: 'n enkripteerde skakel waar data van die klantnetwerk na of van AWS kan deurgaan.
|
||||
|
||||
Each VPN connection includes two VPN tunnels which you can simultaneously use for high availability.
|
||||
Elke VPN-verbinding sluit twee VPN-tonnels in wat jy terselfdertyd kan gebruik vir hoë beskikbaarheid.
|
||||
|
||||
- **Customer gateway**: An AWS resource which provides information to AWS about your customer gateway device.
|
||||
- **Customer gateway device**: A physical device or software application on your side of the Site-to-Site VPN connection.
|
||||
- **Virtual private gateway**: The VPN concentrator on the Amazon side of the Site-to-Site VPN connection. You use a virtual private gateway or a transit gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
|
||||
- **Transit gateway**: A transit hub that can be used to interconnect your VPCs and on-premises networks. You use a transit gateway or virtual private gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
|
||||
- **Customer gateway**: 'n AWS resource wat inligting aan AWS verskaf oor jou customer gateway device.
|
||||
- **Customer gateway device**: 'n fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding.
|
||||
- **Virtual private gateway**: Die VPN-konsontrator aan die Amazon-kant van die Site-to-Site VPN-verbinding. Jy gebruik 'n virtual private gateway of 'n transit gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding.
|
||||
- **Transit gateway**: 'n transit-hub wat gebruik kan word om jou VPCs en on-premises netwerke met mekaar te verbind. Jy gebruik 'n transit gateway of virtual private gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding.
|
||||
|
||||
#### Limitations
|
||||
#### Beperkings
|
||||
|
||||
- IPv6 traffic is not supported for VPN connections on a virtual private gateway.
|
||||
- An AWS VPN connection does not support Path MTU Discovery.
|
||||
- IPv6 verkeer word nie ondersteun vir VPN-verbindinge op 'n virtual private gateway nie.
|
||||
- 'n AWS VPN-verbinding ondersteun nie Path MTU Discovery nie.
|
||||
|
||||
In addition, take the following into consideration when you use Site-to-Site VPN.
|
||||
Neem verder die volgende in ag wanneer jy Site-to-Site VPN gebruik.
|
||||
|
||||
- When connecting your VPCs to a common on-premises network, we recommend that you use non-overlapping CIDR blocks for your networks.
|
||||
- Wanneer jy jou VPCs met 'n gemeenskaplike on-premises netwerk verbind, beveel ons aan dat jy nie-oorvloedige CIDR-blokke vir jou netwerke gebruik nie.
|
||||
|
||||
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
|
||||
|
||||
**Connect from your machine to your VPC**
|
||||
**Verbind vanaf jou masjien na jou VPC**
|
||||
|
||||
#### Concepts
|
||||
#### Konsepte
|
||||
|
||||
- **Client VPN endpoint:** The resource that you create and configure to enable and manage client VPN sessions. It is the resource where all client VPN sessions are terminated.
|
||||
- **Target network:** A target network is the network that you associate with a Client VPN endpoint. **A subnet from a VPC is a target network**. Associating a subnet with a Client VPN endpoint enables you to establish VPN sessions. You can associate multiple subnets with a Client VPN endpoint for high availability. All subnets must be from the same VPC. Each subnet must belong to a different Availability Zone.
|
||||
- **Route**: Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.
|
||||
- **Authorization rules:** An authorization rule **restricts the users who can access a network**. For a specified network, you configure the Active Directory or identity provider (IdP) group that is allowed access. Only users belonging to this group can access the specified network. **By default, there are no authorization rules** and you must configure authorization rules to enable users to access resources and networks.
|
||||
- **Client:** The end user connecting to the Client VPN endpoint to establish a VPN session. End users need to download an OpenVPN client and use the Client VPN configuration file that you created to establish a VPN session.
|
||||
- **Client CIDR range:** An IP address range from which to assign client IP addresses. Each connection to the Client VPN endpoint is assigned a unique IP address from the client CIDR range. You choose the client CIDR range, for example, `10.2.0.0/16`.
|
||||
- **Client VPN ports:** AWS Client VPN supports ports 443 and 1194 for both TCP and UDP. The default is port 443.
|
||||
- **Client VPN network interfaces:** When you associate a subnet with your Client VPN endpoint, we create Client VPN network interfaces in that subnet. **Traffic that's sent to the VPC from the Client VPN endpoint is sent through a Client VPN network interface**. Source network address translation (SNAT) is then applied, where the source IP address from the client CIDR range is translated to the Client VPN network interface IP address.
|
||||
- **Connection logging:** You can enable connection logging for your Client VPN endpoint to log connection events. You can use this information to run forensics, analyze how your Client VPN endpoint is being used, or debug connection issues.
|
||||
- **Self-service portal:** You can enable a self-service portal for your Client VPN endpoint. Clients can log into the web-based portal using their credentials and download the latest version of the Client VPN endpoint configuration file, or the latest version of the AWS provided client.
|
||||
- **Client VPN endpoint:** Die resource wat jy skep en konfigureer om client VPN-sessies moontlik te maak en te bestuur. Dit is die resource waar alle client VPN-sessies beëindig word.
|
||||
- **Target network:** 'n target network is die netwerk wat jy met 'n Client VPN endpoint assosieer. **'n subnet van 'n VPC is 'n target network**. Om 'n subnet met 'n Client VPN endpoint te assosieer stel jou in staat om VPN-sessies te vestig. Jy kan meerdere subnets met 'n Client VPN endpoint assosieer vir hoë beskikbaarheid. Alle subnets moet uit dieselfde VPC kom. Elke subnet moet tot 'n ander Availability Zone behoort.
|
||||
- **Route**: Elke Client VPN endpoint het 'n route table wat die beskikbare bestemming-netwerkroetes beskryf. Elke roete in die route table spesifiseer die pad vir verkeer na spesifieke hulpbronne of netwerke.
|
||||
- **Authorization rules:** 'n authorization rule **beperk die gebruikers wat 'n netwerk kan toegang**. Vir 'n gespesifiseerde netwerk, konfigureer jy die Active Directory of identity provider (IdP) groep wat toegang toe toegestaan is. Slegs gebruikers wat tot hierdie groep behoort kan die gespesifiseerde netwerk en hulpbronne toegang. **By verstek is daar geen authorization rules nie** en jy moet authorization rules konfigureer om gebruikers toe te laat hulpbronne en netwerke te gebruik.
|
||||
- **Client:** Die eindgebruiker wat aan die Client VPN endpoint koppel om 'n VPN-sessie te vestig. Eindgebruikers moet 'n OpenVPN client aflaai en die Client VPN konfigurasielêer wat jy geskep het gebruik om 'n VPN-sessie te vestig.
|
||||
- **Client CIDR range:** 'n IP-adresreeks waarvan kliënt IP-adresse toegeken word. Elke verbinding na die Client VPN endpoint kry 'n unieke IP-adres uit die client CIDR range. Jy kies die client CIDR range, byvoorbeeld, `10.2.0.0/16`.
|
||||
- **Client VPN ports:** AWS Client VPN ondersteun poorte 443 en 1194 vir beide TCP en UDP. Die verstek is poort 443.
|
||||
- **Client VPN network interfaces:** Wanneer jy 'n subnet met jou Client VPN endpoint assosieer, skep ons Client VPN network interfaces in daardie subnet. **Verkeer wat na die VPC vanaf die Client VPN endpoint gestuur word gaan deur 'n Client VPN network interface**. Source network address translation (SNAT) word dan toegepas, waar die bron IP-adres van die client CIDR range na die Client VPN network interface IP-adres vertaal word.
|
||||
- **Connection logging:** Jy kan connection logging vir jou Client VPN endpoint aktiveer om verbindinggebeure te log. Jy kan hierdie inligting gebruik om forensiese ontledings uit te voer, te ontleed hoe jou Client VPN endpoint gebruik word, of verbindingsprobleme te debug.
|
||||
- **Self-service portal:** Jy kan 'n self-service portal vir jou Client VPN endpoint aktiveer. Kliente kan by die web-gebaseerde portaal aanmeld met hul geloofsbriewe en die nuutste weergawe van die Client VPN endpoint konfigurasielêer aflaai, of die nuutste weergawe van die AWS verskafte kliënt.
|
||||
|
||||
#### Limitations
|
||||
#### Beperkings
|
||||
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** of the VPC in which the associated subnet is located, or any routes manually added to the Client VPN endpoint's route table.
|
||||
- Client CIDR ranges must have a block size of at **least /22** and must **not be greater than /12.**
|
||||
- A **portion of the addresses** in the client CIDR range are used to **support the availability** model of the Client VPN endpoint, and cannot be assigned to clients. Therefore, we recommend that you **assign a CIDR block that contains twice the number of IP addresses that are required** to enable the maximum number of concurrent connections that you plan to support on the Client VPN endpoint.
|
||||
- The **client CIDR range cannot be changed** after you create the Client VPN endpoint.
|
||||
- The **subnets** associated with a Client VPN endpoint **must be in the same VPC**.
|
||||
- You **cannot associate multiple subnets from the same Availability Zone with a Client VPN endpoint**.
|
||||
- A Client VPN endpoint **does not support subnet associations in a dedicated tenancy VPC**.
|
||||
- Client VPN supports **IPv4** traffic only.
|
||||
- Client VPN is **not** Federal Information Processing Standards (**FIPS**) **compliant**.
|
||||
- If multi-factor authentication (MFA) is disabled for your Active Directory, a user password cannot be in the following format.
|
||||
- **Client CIDR ranges cannot overlap with the local CIDR** van die VPC waarin die geassosieerde subnet geleë is, of enige roetes wat handmatig by die Client VPN endpoint se route table gevoeg is.
|
||||
- Client CIDR ranges moet 'n blokgrootte van minstens **/22** hê en mag **nie groter as /12 wees** nie.
|
||||
- 'n **Gedeelte van die adresse** in die client CIDR range word gebruik om die beskikbaarheidsmodel van die Client VPN endpoint te **ondersteun**, en kan nie aan kliënte toegewys word nie. Daarom beveel ons aan dat jy **'n CIDR-blok toeken wat twee keer die aantal IP-adresse bevat wat benodig word** om die maksimum aantal gelyktydige verbindings wat jy beplan te ondersteun, moontlik te maak.
|
||||
- Die **client CIDR range kan nie verander word** nadat jy die Client VPN endpoint geskep het nie.
|
||||
- Die **subnets** geassosieer met 'n Client VPN endpoint **moet in dieselfde VPC wees**.
|
||||
- Jy **kan nie meerdere subnets vanaf dieselfde Availability Zone met 'n Client VPN endpoint assosieer nie**.
|
||||
- 'n Client VPN endpoint **ondersteun nie subnet associations in 'n dedicated tenancy VPC nie**.
|
||||
- Client VPN ondersteun slegs **IPv4** verkeer.
|
||||
- Client VPN is **nie** Federal Information Processing Standards (**FIPS**) **compliant** nie.
|
||||
- As multi-factor authentication (MFA) gedeaktiveer is vir jou Active Directory, kan 'n gebruikerswagwoord nie in die volgende formaat wees nie.
|
||||
|
||||
```
|
||||
SCRV1:<base64_encoded_string>:<base64_encoded_string>
|
||||
```
|
||||
|
||||
- The self-service portal is **not available for clients that authenticate using mutual authentication**.
|
||||
- Die self-service portal is **nie beskikbaar vir kliente wat mutual authentication gebruik nie**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -6,34 +6,34 @@
|
||||
|
||||
Amazon S3 is 'n diens wat jou toelaat om **groot hoeveelhede data te stoor**.
|
||||
|
||||
Amazon S3 bied verskeie opsies om die **beskerming** van data by rus te bewerkstellig. Die opsies sluit in **Toestemming** (Policy), **Enkripsie** (klient- en bedienerzijde), **Bucket Versioning** en **MFA** **based delete**. Die **gebruiker kan enige van hierdie opsies aktiveer** om databeskerming te bereik. **Data replication** is 'n interne funksie van AWS waar **S3 automatisch elke objek oor al die Availability Zones repliseer** en die organisasie dit in hierdie geval nie hoef te aktiveer nie.
|
||||
Amazon S3 bied verskeie opsies om die **beskerming** van data by rus te bewerkstellig. Die opsies sluit in **Toestemming** (Policy), **Enkripsie** (Client- en Server-side), **Bucket Versioning** en **MFA based delete**. Die **gebruiker kan enige van hierdie opsies aktiveer** om data-beskerming te bereik. **Data-replikasie** is 'n interne fasiliteit van AWS waar **S3 outomaties elke objek oor alle Availability Zones repliseer** en die organisasie dit nie hoef te aktiveer nie.
|
||||
|
||||
Met resource-based permissions kan jy toestemmings vir sub-gidse van jou bucket afsonderlik definieer.
|
||||
With resource-based permissions, you can define permissions for sub-directories of your bucket separately.
|
||||
|
||||
### Bucket Versioning and MFA based delete
|
||||
### Bucket Versioning en MFA based delete
|
||||
|
||||
Wanneer Bucket Versioning geaktiveer is, sal enige aksie wat probeer om 'n lêer te verander 'n nuwe weergawe van die lêer genereer en ook die vorige inhoud behou. Daarom sal dit nie die inhoud oorskryf nie.
|
||||
Wanneer Bucket Versioning geaktiveer is, sal enige aksie wat probeer om 'n lêer binne 'n lêer te verander 'n nuwe weergawe van die lêer genereer, en ook die vorige inhoud behou. Daarom sal dit nie die inhoud oorskryf nie.
|
||||
|
||||
Bo en behalwe sal MFA based delete verhinder dat weergawes van lêers in die S3 bucket uitgevee word en ook dat Bucket Versioning gedeaktiveer word, sodat 'n aanvaller nie hierdie lêers kan verander nie.
|
||||
Boonop sal MFA based delete verhoed dat weergawes van lêers in die S3 bucket verwyder word en ook dat Bucket Versioning gedeaktiveer word, sodat 'n aanvaller nie hierdie lêers kan verander nie.
|
||||
|
||||
### S3 Access logs
|
||||
|
||||
Dit is moontlik om **S3 access logging in te skakel** (wat standaard gedeaktiveer is) vir 'n bucket en die logs in 'n ander bucket te stoor om te weet wie toegang tot die bucket het (albei buckets moet in dieselfde streek wees).
|
||||
Dit is moontlik om **S3 toegangsaantekeninge te aktiveer** (wat standaard gedeaktiveer is) vir 'n bucket en die logs in 'n ander bucket te stoor om te weet wie die bucket benader (albei buckets moet in dieselfde streek wees).
|
||||
|
||||
### S3 Presigned URLs
|
||||
|
||||
Dit is moontlik om 'n presigned URL te genereer wat gewoonlik gebruik kan word om **toegang tot die gespesifiseerde lêer** in die bucket te kry. 'n **Presigned URL lyk soos hierdie**:
|
||||
Dit is moontlik om 'n presigned URL te genereer wat gewoonlik gebruik kan word om **toegang tot die gespesifiseerde lêer** in die bucket te kry. 'n **presigned URL lyk soos volg**:
|
||||
```
|
||||
https://<bucket-name>.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa
|
||||
```
|
||||
'n presigned URL kan **vanaf die cli geskep word deur inlogbewyse van 'n principal met toegang tot die objek te gebruik** (as die rekening wat jy gebruik nie toegang het nie, sal 'n korter presigned URL geskep word, maar dit sal nutteloos wees)
|
||||
'n presigned URL kan **van die cli geskep word deur gebruik te maak van die credentials van 'n principal wat toegang tot die object het** (as die account wat jy gebruik nie toegang het nie, sal 'n korter presigned URL geskep word maar dit sal nutteloos wees)
|
||||
```bash
|
||||
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
|
||||
```
|
||||
> [!NOTE]
|
||||
> Die enigste vereiste toestemming om 'n presigned URL te genereer is die toestemming wat gegee word, so vir die vorige opdrag is die enigste toestemming wat deur die principal benodig word `s3:GetObject`
|
||||
> Die enigste vereiste toestemming om 'n presigned URL te genereer is die toestemming wat gegee word, so vir die vorige opdrag is die enigste toestemming wat deur die prinsipaal benodig word `s3:GetObject`
|
||||
|
||||
Dit is ook moontlik om presigned URLs met **ander permissies** te skep:
|
||||
Dit is ook moontlik om presigned URLs met **ander regte** te skep:
|
||||
```python
|
||||
import boto3
|
||||
url = boto3.client('s3').generate_presigned_url(
|
||||
@@ -44,97 +44,97 @@ ExpiresIn=3600
|
||||
```
|
||||
### S3 Enkripsie-meganismes
|
||||
|
||||
**DEK means Data Encryption Key** en is die sleutel wat altyd gegenereer word en gebruik word om data te enkripteer.
|
||||
**DEK beteken Data Encryption Key** en is die sleutel wat altyd gegenereer word en gebruik word om data te enkripteer.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
|
||||
<summary><strong>Bedienerkant enkripsie met S3 beheerde sleutels, SSE-S3</strong></summary>
|
||||
|
||||
Hierdie opsie vereis minimale konfigurasie en alle bestuur van die encryption keys word deur AWS hanteer. Alles wat jy hoef te doen is om jou data op te laai en S3 sal al die ander aspekte hanteer. Elke bucket in 'n S3 account kry 'n bucket key toegewys.
|
||||
Hierdie opsie vereis minimale konfigurasie en alle bestuur van enkripsiesleutels word deur AWS hanteer. Al wat jy hoeft te doen is om **jou data op te laai en S3 sal al die ander aspekte hanteer**. Elke bucket in 'n S3-rekening kry 'n bucket-sleutel toegeken.
|
||||
|
||||
- Enkripsie:
|
||||
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
|
||||
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) and plain text is deleted from memory
|
||||
- Objekdata + gegenereerde plaintext DEK --> Enkripteerde data (gestoor in S3)
|
||||
- Gegenereerde plaintext DEK + S3 Master Key --> Enkripteerde DEK (gestoor in S3) en die plain text word uit geheue verwyder
|
||||
- Dekripsie:
|
||||
- Encrypted DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Encrypted data --> Object Data
|
||||
- Enkripteerde DEK + S3 Master Key --> Plaintext DEK
|
||||
- Plaintext DEK + Enkripteerde data --> Objekdata
|
||||
|
||||
Neem asseblief kennis dat in hierdie geval **die sleutel deur AWS bestuur word** (rotasie slegs elke 3 jaar). As jy jou eie sleutel gebruik sal jy in staat wees om te roteer, deaktiveer en toegangbeheer toe te pas.
|
||||
Neem asseblief kennis dat in hierdie geval **die sleutel deur AWS bestuur word** (rotasie slegs elke 3 jaar). As jy jou eie sleutel gebruik, sal jy dit kan roteer, deaktiveer en toegangskontroles toepas.
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
|
||||
<summary><strong>Bedienerkant enkripsie met KMS beheerde sleutels, SSE-KMS</strong></summary>
|
||||
|
||||
Hierdie metode laat S3 toe om die key management service te gebruik om jou data encryption keys te genereer. KMS gee jou baie groter buigsaamheid oor hoe jou sleutels bestuur word. Byvoorbeeld, jy kan die CMK deaktiveer, roteer en toegangskontroles toepas, en toesig oor hul gebruik hou met AWS Cloud Trail.
|
||||
Hierdie metode laat S3 toe om die key management service te gebruik om jou data-enkripsiesleutels te genereer. KMS gee jou baie meer buigsaamheid oor hoe jou sleutels bestuur word. Byvoorbeeld kan jy die CMK deaktiveer, roteer en toegangskontroles daarop toepas, en hul gebruik dophou met AWS CloudTrail.
|
||||
|
||||
- Enkripsie:
|
||||
- S3 request data keys from KMS CMK
|
||||
- KMS uses a CMK to generate the pair DEK plaintext and DEK encrypted and send them to S£
|
||||
- S3 uses the paintext key to encrypt the data, store the encrypted data and the encrypted key and deletes from memory the plain text key
|
||||
- S3 vra KMS vir data-sleutels vanaf die CMK
|
||||
- KMS gebruik 'n CMK om die paar plaintext DEK en enkripteerde DEK te genereer en stuur dit terug na S3
|
||||
- S3 gebruik die plaintext sleutel om die data te enkripteer, stoor die enkripteerde data en die enkripteerde sleutel en verwyder die plaintext sleutel uit geheue
|
||||
- Dekripsie:
|
||||
- S3 ask to KMS to decrypt the encrypted data key of the object
|
||||
- KMS decrypt the data key with the CMK and send it back to S3
|
||||
- S3 decrypts the object data
|
||||
- S3 vra KMS om die enkripteerde data-sleutel van die objek te dekripteer
|
||||
- KMS dekripteer die data-sleutel met die CMK en stuur dit terug na S3
|
||||
- S3 dekripteer die objekdata
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
|
||||
<summary><strong>Bedienerkant enkripsie met kliënt-verskafde sleutels, SSE-C</strong></summary>
|
||||
|
||||
Hierdie opsie gee jou die geleentheid om jou eie master key te voorsien wat jy moontlik al buite AWS gebruik. Jou customer-provided key sal saam met jou data na S3 gestuur word, waar S3 dan die enkripsie vir jou sal uitvoer.
|
||||
Hierdie opsie gee jou die geleentheid om jou eie master sleutel te voorsien wat jy dalk reeds buite AWS gebruik. Jou kliënt-verskafde sleutel word saam met jou data na S3 gestuur, waar S3 dan die enkripsie vir jou sal uitvoer.
|
||||
|
||||
- Enkripsie:
|
||||
- The user sends the object data + Customer key to S3
|
||||
- The customer key is used to encrypt the data and the encrypted data is stored
|
||||
- a salted HMAC value of the customer key is stored also for future key validation
|
||||
- the customer key is deleted from memory
|
||||
- Die gebruiker stuur die objekdata + kliënt-sleutel na S3
|
||||
- Die kliënt-sleutel word gebruik om die data te enkripteer en die enkripteerde data word gestoor
|
||||
- 'n Gesoute HMAC-waarde van die kliënt-sleutel word ook gestoor vir toekomstige sleutelverifikasie
|
||||
- Die kliënt-sleutel word uit geheue verwyder
|
||||
- Dekripsie:
|
||||
- The user send the customer key
|
||||
- The key is validated against the HMAC value stored
|
||||
- The customer provided key is then used to decrypt the data
|
||||
- Die gebruiker stuur die kliënt-sleutel
|
||||
- Die sleutel word geverifieer teen die gestoor HMAC-waarde
|
||||
- Die kliënt-verskafde sleutel word dan gebruik om die data te dekripteer
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
|
||||
<summary><strong>Kliëntkant enkripsie met KMS, CSE-KMS</strong></summary>
|
||||
|
||||
Soos met SSE-KMS, gebruik dit ook die key management service om jou data encryption keys te genereer. Hierdie keer word KMS egter deur die client aangeroep, nie S3 nie. Die enkripsie vind client-side plaas en die encrypted data word dan na S3 gestuur om gestoor te word.
|
||||
Soortgelyk aan SSE-KMS, gebruik hierdie metode ook die key management service om jou data-enkripsiesleutels te genereer. Hierdie keer word KMS egter deur die kliënt aangespreek en nie deur S3 nie. Die enkripsie vind dus aan kliëntkant plaas en die enkripteerde data word dan na S3 gestuur om gestoor te word.
|
||||
|
||||
- Enkripsie:
|
||||
- Client request for a data key to KMS
|
||||
- KMS returns the plaintext DEK and the encrypted DEK with the CMK
|
||||
- Both keys are sent back
|
||||
- The client then encrypts the data with the plaintext DEK and send to S3 the encrypted data + the encrypted DEK (which is saved as metadata of the encrypted data inside S3)
|
||||
- Kliënt vra KMS vir 'n data-sleutel
|
||||
- KMS stuur die plaintext DEK en die enkripteerde DEK met die CMK terug
|
||||
- Albei sleutels word teruggestuur
|
||||
- Die kliënt enkripteer dan die data met die plaintext DEK en stuur na S3 die enkripteerde data + die enkripteerde DEK (wat as metadata van die enkripteerde data binne S3 gestoor word)
|
||||
- Dekripsie:
|
||||
- The encrypted data with the encrypted DEK is sent to the client
|
||||
- The client asks KMS to decrypt the encrypted key using the CMK and KMS sends back the plaintext DEK
|
||||
- The client can now decrypt the encrypted data
|
||||
- Die enkripteerde data met die enkripteerde DEK word na die kliënt gestuur
|
||||
- Die kliënt vra KMS om die enkripteerde sleutel met die CMK te dekripteer en KMS stuur die plaintext DEK terug
|
||||
- Die kliënt kan nou die enkripteerde data dekripteer
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
|
||||
<summary><strong>Kliëntkant enkripsie met kliënt-verskafde sleutels, CSE-C</strong></summary>
|
||||
|
||||
Met hierdie meganisme kan jy jou eie voorsiene sleutels gebruik en 'n AWS-SDK client gebruik om jou data te enkripteer voordat jy dit na S3 stuur vir berging.
|
||||
Met hierdie meganisme kan jy jou eie sleutels gebruik en 'n AWS-SDK kliënt gebruik om jou data te enkripteer voordat dit na S3 gestuur word vir berging.
|
||||
|
||||
- Enkripsie:
|
||||
- The client generates a DEK and encrypts the plaintext data
|
||||
- Then, using it's own custom CMK it encrypts the DEK
|
||||
- submit the encrypted data + encrypted DEK to S3 where it's stored
|
||||
- Die kliënt genereer 'n DEK en enkripteer die plaintext data
|
||||
- Daarna enkripteer hy die DEK met sy eie CMK
|
||||
- Stuur die enkripteerde data + enkripteerde DEK na S3 waar dit gestoor word
|
||||
- Dekripsie:
|
||||
- S3 sends the encrypted data and DEK
|
||||
- As the client already has the CMK used to encrypt the DEK, it decrypts the DEK and then uses the plaintext DEK to decrypt the data
|
||||
- S3 stuur die enkripteerde data en DEK
|
||||
- Aangesien die kliënt reeds die CMK het wat gebruik is om die DEK te enkripteer, dekripteer hy die DEK en gebruik dan die plaintext DEK om die data te dekripteer
|
||||
|
||||
</details>
|
||||
|
||||
### **Enumerasie**
|
||||
|
||||
Een van die tradisionele hoofmaniere om AWS orgs te kompromitteer begin deur openbare toeganklike buckets te kompromitteer. **Jy kan** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
Een van die tradisionele hoofmaniere om AWS-organisasies te kompromitteer begin deur openbare beskikbare buckets te kompromitteer. **Jy kan [**openbare bucket-enummeraars op hierdie bladsy vind**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
|
||||
```bash
|
||||
# Get buckets ACLs
|
||||
aws s3api get-bucket-acl --bucket <bucket-name>
|
||||
@@ -229,7 +229,7 @@ aws s3api put-object-acl --bucket <bucket-name> --key flag --access-control-poli
|
||||
```
|
||||
### dual-stack <a href="#dual-stack-endpoints-description" id="dual-stack-endpoints-description"></a>
|
||||
|
||||
Jy kan toegang tot 'n S3 bucket kry via 'n dual-stack endpoint deur 'n virtual hosted-style of 'n path-style endpoint-naam te gebruik. Hierdie is nuttig om toegang tot S3 via IPv6 te kry.
|
||||
Jy kan toegang tot 'n S3 bucket kry via 'n dual-stack endpoint deur 'n virtual hosted-style of 'n path-style endpoint-naam te gebruik. Dit is nuttig om toegang tot S3 via IPv6 te kry.
|
||||
|
||||
Dual-stack endpoints gebruik die volgende sintaksis:
|
||||
|
||||
@@ -238,7 +238,7 @@ Dual-stack endpoints gebruik die volgende sintaksis:
|
||||
|
||||
### Privesc
|
||||
|
||||
Op die volgende bladsy kan jy kyk hoe om **abuse S3 permissions to escalate privileges**:
|
||||
Op die volgende bladsy kan jy sien hoe om **abuse S3 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-s3-privesc/README.md
|
||||
@@ -266,19 +266,19 @@ Op die volgende bladsy kan jy kyk hoe om **abuse S3 permissions to escalate priv
|
||||
|
||||
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
|
||||
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) dit was moontlik om die respons van 'n ewekansige bucket te cache asof dit aan 'n ander behoort. Dit sou misbruik kon word om byvoorbeeld JavaScript-lêerresponsse te verander en ewekansige bladsye te kompromitteer wat S3 gebruik om statiese kode te stoor.
|
||||
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) dit was moontlik om die respons van 'n arbitrary bucket in die cache te hou asof dit aan 'n ander behoort. Dit kon misbruik word om byvoorbeeld javascript-lêer-respons te verander en willekeurige bladsye wat S3 gebruik om statiese kode te stoor, te kompromitteer.
|
||||
|
||||
## Amazon Athena
|
||||
|
||||
Amazon Athena is 'n interaktiewe query-diens wat dit maklik maak om data direk in Amazon Simple Storage Service (Amazon **S3**) te ontleed met standaard **SQL**.
|
||||
Amazon Athena is 'n interaktiewe query service wat dit maklik maak om **data te ontleed** direk in Amazon Simple Storage Service (Amazon **S3**) **met** standaard **SQL**.
|
||||
|
||||
Jy moet 'n relationele DB-tabel voorberei met die formaat van die inhoud wat in die gemonitorde S3-buckets gaan verskyn. Daarna kan Amazon Athena die DB uit die logs vul, sodat jy dit kan query.
|
||||
Jy moet 'n **relational DB table** voorberei met die formaat van die inhoud wat in die gemonitorde S3 buckets gaan verskyn. En dan sal Amazon Athena in staat wees om die DB vanuit die logs te vul, sodat jy dit kan query.
|
||||
|
||||
Amazon Athena ondersteun die vermoë om S3-data te query wat reeds geënkripteer is, en as dit so gekonfigureer is, kan Athena ook die resultate van die query enkripteer wat dan in S3 gestoor kan word.
|
||||
Amazon Athena ondersteun die **vermoë om S3 data wat reeds geïnkripteer is te query** en as dit so gekonfigureer is, **kan Athena ook die resultate van die query enkripsieer wat dan in S3 gestoor kan word**.
|
||||
|
||||
**Hierdie enkripsie van resultate is onafhanklik van die onderliggende ge-queryde S3-data**, wat beteken dat selfs al is die S3-data nie geënkripteer nie, die ge-queryde resultate geënkripteer kan wees. 'n Paar punte om bewus van te wees: Amazon Athena ondersteun slegs data wat geënkripteer is met die volgende S3-enkripsiemetodes, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
**Hierdie enkripsie van resultate is onafhanklik van die onderliggende gevraagde S3 data**, wat beteken dat selfs al is die S3 data nie geïnkripteer nie, kan die gevraagde resultate geïnkripteer wees. 'n Paar punte om bewus van te wees is dat Amazon Athena slegs data ondersteun wat **geïnkripteer** is met die **volgende S3 enkripsie metodes**, **SSE-S3, SSE-KMS, and CSE-KMS**.
|
||||
|
||||
SSE-C and CSE-C are not supported. Daarbenewens is dit belangrik om te verstaan dat Amazon Athena slegs queries teen geënkripteerde objecte sal uitvoer wat in dieselfde regio as die query self is. As jy S3-data wil query wat met KMS geënkripteer is, vereis dit spesifieke toestemmings deur die Athena-gebruiker om die query uit te voer.
|
||||
SSE-C en CSE-C word nie ondersteun nie. Daarbenewens is dit belangrik om te verstaan dat Amazon Athena slegs queries teen **geënkripteerde objects wat in dieselfde region as die query self is** sal uitvoer. As jy S3 data wil query wat met KMS geïnkripteer is, dan is spesifieke permissies deur die Athena gebruiker benodig om hulle in staat te stel om die query uit te voer.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user