Nastavení Bucket Policy uložené v souboru:
aws s3api put-bucket-policy --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz --bucket BUCKET-NAME --policy file://C:/Users/User/Downloads/example_policy_tenant-ro.json
aws s3api put-bucket-policy --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz --bucket BUCKET-NAME --policy file:///home/user/Downloads/example_policy_tenant-ro.json
Vypsání Bucket Policy na daném bucketu:
aws s3api get-bucket-policy --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz --bucket BUCKET-NAME
Odebrání Bucket Policy na daném bucketu:
aws s3api delete-bucket-policy --profile test_user --endpoint-url https://s3.cl2.du.cesnet.cz --bucket BUCKET-NAME
Nastavení Bucket Policy uložené v souboru:
s3cmd -c ~/.s3cfg_test_user setpolicy /home/user/bucket_policy.json s3://BUCKET-NAME
Vypsání Bucket Policy na daném bucketu
s3cmd -c ~/.s3cfg_test_user info s3://BUCKET-NAME
Odebrání Bucket Policy na daném bucketu:
s3cmd -c ~/.s3cfg_test_user delpolicy s3://BUCKET-NAME
Níže naleznete příklady 3 základních Bucket Policy. Jendá se o sdílení v rámci tentnatu pro read-only a read-write a nakonec pro veřejné sdílení (public).
"keys": [ { "user": "354dasf3_db44_4dsa_a9b9_24ae65476$136aadsdas57d4asdrt5hzuuzc", "access_key": "hash_access_key_hash", "secret_key": "hash_secret_key_hash" } ]
{ "Statement":[ { "Sid":"* on bucket-tenant-ro policy", "Effect":"Allow", "Principal": {"AWS": ["TENANT_NAME"]}, "Action": ["s3:ListBucket","s3:GetObject"], "Resource":[ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] } ] }
{ "Statement":[ { "Sid":"* on bucket-tenant-rw policy", "Effect":"Allow", "Principal": {"AWS": ["TENANT_NAME"]}, "Action": ["s3:ListBucket","s3:GetObject","s3:PutObject","s3:DeleteObject"], "Resource":[ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] } ] }
{ "Statement":[ { "Sid":"RW for user on bucket policy", "Effect":"Allow", "Principal": { "AWS": [ "arn:aws:iam::TENANT_NAME:user/BUCKET_OWNER", "arn:aws:iam::TENANT_NAME:user/RW_USER" ] }, "Action": ["s3:ListBucket","s3:GetObject","s3:PutObject","s3:DeleteObject"], "Resource":[ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] } ] }
kde:
TENANT_NAME je třeba nahradit názvem tenantu;
BUCKET_OWNER je třeba nahradit jménem uživatele, který vlastní bucket, aby měl práva k objektům, které nahrají jiní oprávnění uživatelé;
RW_USER je třeba nahradit jménem uživatele (resp. servisní identity), pro kterého je sdílení konfigurováno;
BUCKET-NAME je třeba nahradit názvem bucketu.
{ "Statement":[ { "Sid":"* on bucket-tenant-public policy", "Effect":"Allow", "Principal": "*", "Action": ["s3:ListBucket","s3:GetObject"], "Resource":[ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] } ] }
https://s3.cl2.du.cesnet.cz/354dasf3_db44_4dsa_a9b9_24ae65476:BUCKET-NAME/
{ "Id": "policy-240529-104335-5328", "Version": "2012-10-17", "Statement": [ { "Sid": "statement-240529-104335-2834", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::TENANT_NAME:user/BUCKET_OWNER", "arn:aws:iam::TENANT_NAME:user/RW_USER" ] }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] }, { "Sid": "statement-240529-105600-2834", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::TENANT_NAME:user/RO_USER" ] }, "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::BUCKET-NAME", "arn:aws:s3:::BUCKET-NAME/*" ] } ] }
kde:
TENANT_NAME je třeba nahradit názvem tenantu;
BUCKET_OWNER je třeba nahradit jménem uživatele, který vlastní bucket, aby měl práva k objektům, které nahrají jiní oprávnění uživatelé;
RW_USER je třeba nahradit jménem uživatele (resp. servisní identity), pro kterého je konfigurováno sdílení read-write;
RO_USER je třeba nahradit jménem uživatele (resp. servisní identity), pro kterého je konfigurováno sdílení read-only;
BUCKET-NAME je třeba nahradit názvem bucketu.
Příklad generování výšeuvedené Bucket Policy aws pluginem s3bucket-policy
:
aws s3bucket-policy --endpoint-url https://s3.cl2.du.cesnet.cz/ new-policy --dryrun --bucket BUCKET-NAME --newpol-type share-w-user --newpol-spec tenant=TENANT_NAME,user=RW_USER,action=rw tenant=TENANT_NAME,user=RO_USER,action=ro