Am o găleată pe care aș dori să o accesez folosind un browser similar cu acesta http://data.openspending.org/
și aș dori să fie vizibil doar un subdosar.
Deci, dacă Bucket1 are mai multe foldere, vreau doar să arăt și să permit utilizatorilor să descarce conținutul folderului zipFiles (Bucket1/zipFiles/*)
Preluând instrucțiuni de la https://github.com/rufuspollock/s3-bucket-listing Am reușit să o fac cu următoarele 5 modificări
Dezactivați
blocarea accesului public în permisiuni de găleată
Adăugați o politică de grup
{
„Versiune”: „2012-10-17”,
"Afirmație": [
{
„Sid”: „AllowPublicRead”,
„Efect”: „Permite”,
„Principal”: {
"AWS": "*"
},
„Acțiune”: „s3:GetObject”,
„Resursa”: [
„arn:aws:s3:::Bucket1/index.html”,
„arn:aws:s3:::Bucket1/zipFiles/*”
]
},
{
„Sid”: „AllowPublicList”,
„Efect”: „Permite”,
„Principal”: „*”,
„Acțiune”: „s3:ListBucket”,
„Resurse”: „arn:aws:s3:::Bucket1”,
"Condiție": {
„StringLike”: {
"s3:prefix": "zipFiles/*"
}
}
}
]
}
Adăuga
CORS în permisiunile grupului
Adăugați index.html în rădăcina găleții
<!DOCTYPE html>
<html>
<head>
<title>S3 Bucket Listing Generator</title>
</head>
<body>
<div id="navigation"></div>
<div id="listing"></div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
var S3BL_IGNORE_PATH = false;
// var BUCKET_NAME = 'Bucket1';
var BUCKET_URL = 'https://Bucket1.s3-eu-west-1.amazonaws.com';
// var S3B_ROOT_DIR = 'SUBDIR_L1/SUBDIR_L2/';
// var S3B_SORT = 'DEFAULT';
// var EXCLUDE_FILE = 'index.html'; // change to array to exclude multiple files, regexp also supported e.g. /^(.*\/)?index.html$/ to exclude all index.html
// var AUTO_TITLE = true;
// var S3_REGION = 's3-eu-west-1';
</script>
<script type="text/javascript" src="https://rufuspollock.github.io/s3-bucket-listing/list.js"></script>
</body>
</html>
- Activați găzduirea statică a site-ului web
Funcționează până la punctul de a restricționa accesul la foldere la zipFiles. Problema mea este că nu vreau să fac public acest site. Vreau să-l păstrez vizibil numai pentru utilizatorii organizației. Am încercat două lucruri. Prima este limitarea prin adrese IP. Celălalt este limitarea prin vpc. Ambele nu funcționează deoarece adresa IP nu se compară cu IP-ul privat, ci cu IP-ul extern. și limitarea vpc are dependențe pe care nu mi-am dat seama pe deplin
Există o modalitate de a expune conținutul folderului S3 ca structură de directoare navigabilă (nu format xml) fără a-l face public? Intervalul IP al organizației este interconectat cu contul aws, astfel încât angajații să poată accesa ec2 cu IP-uri private.Este posibil același lucru pentru S3?
Sau dacă publicarea este singura modalitate, cum pot limita accesul numai la utilizatorii organizației?