← Cloudflare One / cloudflare-one / tutorials
Chraňte přístup k bucketům Amazon S3 pomocí Cloudflare Zero Trust
Tento návod ukazuje, jak zabezpečit přístup k bucketům Amazon S3 pomocí Cloudflare Zero Trust tak, aby data v těchto bucketech nebyla veřejně vystavena na internetu. Cloudflare Access můžete kombinovat s VPC endpoints od AWS. Enterprise může navíc využít zásady egress Cloudflare Gateway s vyhrazenými odchozími IP adresami.
Metoda 1: přes Cloudflare Access a VPC endpoints
flowchart TB
cf1[/Cloudflare One Client or clientless users/]--Access policy-->cf2{{Cloudflare}}
cf2--Cloudflare Tunnel-->vpc1
subgraph VPC
vpc1[EC2 VM]-->vpc2[VPC endpoint]
end
vpc2-->s3_1
subgraph S3 service
s3_1([S3 bucket])
end
i1[/Users outside </br> Zero Trust/]-. "S3 access denied" .->s3_1
Předpoklady
- S3 bucket, který má být chráněný pomocí Cloudflare Zero Trust
- VPC AWS s jedním virtuálním strojem (VM) EC2, na kterém běží Daemon Cloudflare Tunnel
- S3 bucket a AWS VPC nakonfigurované ve stejném region AWS ↗
1. Vytvořte endpoint VPC v AWS
- V AWS dashboard ↗, přejděte na Služby > Síťování a doručování obsahu > VPC.
- V části Virtuální privátní cloud, přejděte na Endpointy.
- Vyberte Vytvořit endpoint a pojmenujte endpoint.
- Vyberte služby AWS jako kategorii služby.
- V Služby, vyhledejte a vyberte službu S3 ve stejném regionu jako VPC. Pokud je to například region AWS Europe (London) - eu-west-2, odpovídající služba S3 se jmenuje
com.amazonaws.eu-west-2.s3s typem Gateway. - V VPC, vyberte svou VPC, která obsahuje EC2 VM hostující daemon Cloudflare tunnelu.
- V Směrovací tabulky, vyberte tabulku tras přiřazenou k VPC.
- V Zásada, vyberte Plný přístup.
- Vyberte Vytvořit endpoint.
Po vytvoření VPC endpointu se v tabulce tras VPC objeví nový záznam, jehož cílem je váš VPC endpoint. Záznam bude mít formát vpce-xxxxxxxxxxxxxxxxx.
2. Nastavte zásadu bucketu pro přístup VPC
- Přejděte na Služby > Úložiště > S3.
- V Amazon S3 přejděte na Buckets > <your-S3-bucket> > Oprávnění.
- Zakázat Blokovat veškerý veřejný přístup.
- V Zásada bucketu, přidejte následující zásadu:
{
"Version": "2012-10-17",
"Id": "VPCe",
"Statement": [
{
"Sid": "VPCe",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<your-S3-bucket01>",
"arn:aws:s3:::<your-S3-bucket01>/*"
],
"Condition": {
"StringEquals": {
"aws:SourceVpce": "<your-vpc-endpoint>"
}
}
}
]
}Zásada vašeho bucketu umožní vašemu VPC přístup k vašemu bucketu S3.
3. Povolte statické webové hostování pro bucket S3
- Vraťte se do Amazon S3 a přejděte na Buckets > <your-S3-bucket01> > Vlastnosti.
- V Hosting statických webových stránek, vyberte Úprava.
- Povolit Hosting statických webových stránek.
- Zadejte dokumenty Index a Error pro bucket S3.
- Vyberte Uložit změny.
Endpoint webu bucketu bude dostupný na adrese http://<your-S3-bucket01>.s3-website.<aws-region>.amazonaws.com. Vzhledem k zásadě bucketu bude tento webový endpoint přístupný pouze z VPC, na kterém je nakonfigurován endpoint VPC.
4. Přidejte publikovanou aplikaci do Cloudflare Tunnel
-
V Cloudflare dashboardu přejděte na Sítě > Tunnels.
Přejděte na Tunnels ↗ -
Vyberte svůj tunel a poté přejděte na Trasy kartě.
-
Vyberte Přidat trasu, pak vyberte Publikovaná aplikace.
-
Zadejte subdoménu, kterou bude vaše organizace používat pro přístup k bucketu S3. Například
s3-bucket.<your-domain>.com. -
V URL služby, zadejte
http://<your-S3-bucket01>.s3-website.<aws-region>.amazonaws.com. -
V Další nastavení aplikace > Nastavení HTTP, zadejte HTTP Host Header jako
<your-S3-bucket01>.s3-website.<aws-region>.amazonaws.com. -
Vyberte Uložit hostname.
Váš Cloudflare Tunnel bude ukončen na AWS VPC pomocí vašeho veřejného hostname.
5. Omezte přístup k S3 pomocí zásady Access
- Přejděte na Řízení přístupu > Aplikace.
- Vyberte Vytvořit novou aplikaci.
- Vyberte Vlastní hosting a soukromé.
- Vyberte Přidejte veřejný hostname a zadejte veřejný hostitelský název používaný vaším Tunnelem. Například
s3-bucket.<your-domain>.com. - Přidejte Zásady Access určit, kteří uživatelé a aplikace mají přístup k vašemu bucketu. Volitelně můžete vytvořit token služby zásadu k automatickému ověřování přístupu k vašemu S3 bucketu.
- Postupujte podle zbývajících kroky pro vytvoření aplikace s vlastním hostováním k publikování aplikace.
Uživatelé a aplikace, kteří se úspěšně ověří přes Cloudflare Access, mohou přistupovat k vašemu S3 bucketu na https://s3-bucket.<your-domain>.com.
Metoda 2: přes zásady egress v Cloudflare Gateway
flowchart TB
cf1[/Cloudflare One Client users/]--Egress policy-->cf2{{Cloudflare}}
cf2--Egress with dedicated IP-->i1[Internet]
i1-->s3_1
subgraph S3 Service
s3_1([S3 bucket])
end
i2[/Users outside </br> Zero Trust/]-. "IPs denied" .->s3_1
Předpoklady
- účet Cloudflare Zero Trust s vyhrazené odchozí IP adresy
- S3 bucket, který má být chráněný pomocí Cloudflare Zero Trust
1. Nastavte zásadu bucketu pro omezení přístupu na konkrétní IP adresu
- V AWS dashboard ↗, přejděte na Služby > Úložiště > S3.
- Přejděte na Buckets > <your-S3-bucket02> > Oprávnění.
- Zakázat Blokovat veškerý veřejný přístup.
- V Zásada bucketu, přidejte následující zásadu:
{
"Version": "2012-10-17",
"Id": "SourceIP",
"Statement": [
{
"Sid": "SourceIP",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<your-S3-bucket02>",
"arn:aws:s3:::<your-S3-bucket02>/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "<your-dedicated-ip>/32"
}
}
}
]
}2. Povolte statické hostování webových stránek pro bucket S3
- Vraťte se do svého bucketu a přejděte na Vlastnosti.
- V Hosting statických webových stránek, vyberte Úprava.
- Povolit Hosting statických webových stránek.
- Zadejte dokumenty Index a Error pro bucket S3.
- Vyberte Uložit změny.
Endpoint webu bucketu bude dostupný na adrese http://<your-S3-bucket02>.s3-website.<aws-region>.amazonaws.com. Vzhledem k zásadě bucketu bude webový endpoint přístupný pouze pro provoz pocházející ze zadané vyhrazené výstupní IP adresy.
3. Nastavte zásadu vyhrazené výstupní IP adresy
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Zásady provozu > Zásady egress. Vyberte Přidat zásadu.
- Vytvořte zásadu, která určuje, kterému proxy provozu má Gateway přiřadit vyhrazená odchozí IP adresa kam odkazuje. Další informace najdete v Zásady egress.
- V Vyberte odchozí IP adresu, vyberte Použít vyhrazené výstupní IP adresy Cloudflare. Vyberte vyhrazenou výstupní IP adresu definovanou v zásadě bucketu.
- Vyberte Vytvořit zásadu.
Provoz proxovaný přes Gateway a přiřazený k vaší zadané odchozí IP adrese může přistupovat k vašemu S3 bucketu na http://<your-S3-bucket02>.s3-website.<aws-region>.amazonaws.com.