security: restrict MinIO app to one bucket
This commit is contained in:
@@ -85,13 +85,21 @@ services:
|
||||
test "$$MINIO_ROOT_USER" != "$$S3_ACCESS_KEY" &&
|
||||
test "$$MINIO_ROOT_PASSWORD" != "$$S3_SECRET_KEY" &&
|
||||
mc alias set local http://minio:9000 "$$MINIO_ROOT_USER" "$$MINIO_ROOT_PASSWORD" >/dev/null &&
|
||||
mc mb --ignore-existing "local/$$S3_BUCKET" >/dev/null &&
|
||||
printf '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["s3:GetBucketLocation","s3:ListBucket"],"Resource":["arn:aws:s3:::%s"]},{"Effect":"Allow","Action":["s3:GetObject","s3:PutObject","s3:DeleteObject"],"Resource":["arn:aws:s3:::%s/*"]}]}' "$$S3_BUCKET" "$$S3_BUCKET" > /tmp/rf4-app-policy.json &&
|
||||
mc admin policy create local rf4-app-bucket /tmp/rf4-app-policy.json >/dev/null &&
|
||||
(mc admin user info local "$$S3_ACCESS_KEY" >/dev/null 2>&1 || mc admin user add local "$$S3_ACCESS_KEY" "$$S3_SECRET_KEY") &&
|
||||
mc admin policy attach local readwrite --user "$$S3_ACCESS_KEY" >/dev/null
|
||||
(mc admin policy detach local readwrite --user "$$S3_ACCESS_KEY" >/dev/null 2>&1 || true) &&
|
||||
mc admin policy attach local rf4-app-bucket --user "$$S3_ACCESS_KEY" >/dev/null &&
|
||||
mc alias set app http://minio:9000 "$$S3_ACCESS_KEY" "$$S3_SECRET_KEY" >/dev/null &&
|
||||
mc stat "app/$$S3_BUCKET" >/dev/null &&
|
||||
! mc ls app >/dev/null 2>&1
|
||||
environment:
|
||||
MINIO_ROOT_USER: ${MINIO_ROOT_USER:?Set MINIO_ROOT_USER}
|
||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?Set MINIO_ROOT_PASSWORD}
|
||||
S3_ACCESS_KEY: ${S3_ACCESS_KEY:?Set S3_ACCESS_KEY}
|
||||
S3_SECRET_KEY: ${S3_SECRET_KEY:?Set S3_SECRET_KEY}
|
||||
S3_BUCKET: ${S3_BUCKET:-catch-screenshots}
|
||||
depends_on:
|
||||
minio: {condition: service_healthy}
|
||||
networks: [backend]
|
||||
|
||||
Reference in New Issue
Block a user