ECS: Skrivebeskyttet bucket ACL for ikke-ejerobjektbruger, der ikke kan downloade uploadede objekter
摘要: Denne vidensbase forklarer begrebet buckets Access Control Lists (ACL'er) for ikke-ejerobjektbrugeren fra et skrivebeskyttet perspektiv i S3 Browser.
症狀
Ikke-ejerobjektbruger blev tilføjet som skrivebeskyttet til bucket ved hjælp af en bucket ACL.
En ikke-bucket-ejer, objektbruger kan ikke downloade objekter, der blev uploadet af objektbucket-ejerbrugeren, før bucket ACL-oprettelse.
Problemstrømmen er som følger:
- Bucket blev oprettet med objektejeren brugeren tildelt.
- Nogle filer blev uploadet til bucket af objektejerbrugeren.
- Ikke-ejerobjektbruger blev tilføjet som skrivebeskyttet til bucket ved hjælp af en bucket ACL.
- I forsøget på at få adgang til bucket kan brugeren af objekter, der ikke ejer, angive og downloade nyligt uploadede objekter, men kan ikke downloade objekter, der er uploadet før skrivebeskyttet bucket ACL. Vi kan se, at brugerrettighederne på objekterne ikke er indstillet over S3 Browser i henhold til konfigurationen i ECS UI.
Fejlen, når ikke-ejerobjektbrugeren klikker på et objekt ved hjælp af S3 Browser, er som følger: (Adgang nægtet: Adgang nægtet):
Følgende er ACL-opsætningen for objektejerbrugeren (a_s3user) og ikke-ejerobjektbrugeren (a_s3test):
原因
S3-tilladelser kan indstilles på bucket- eller objektniveau. ECS overholder de samme principper som AWS S3 - afhængigt af den anvendte politiktype. Den bestemmer, hvilken type handlinger der tillades på bucket-niveau eller objektniveau.
- Når READ og READ ACL tildeles på ECS-bucket-niveau, skal nonbucket-ejeren kun angive objekterne i bucket, nonbucket-ejeren kan ikke downloade data fra bucket
- Når du skriver et objekt til en bucket, er det kun den bruger, der skriver objektet, der har læsetilladelse. For at andre brugere kan læse objekterne, skal ejeren udtrykkeligt give tilladelse til brugerne.
- For at give tilladelse til ejere af ikke-bucket skal vi bruge S3-bucketpolitikker
De ACL-tilladelser, der kan tildeles, er angivet i følgende tabel. De tilladelser, der gælder, afhænger af buckettypen.
| ACL | Tilladelse | ||
|---|---|---|---|
| Læse | Giver brugeren mulighed for at angive objekterne i spanden | ||
| Læs ACL | Giver brugeren mulighed for at læse bucket ACL | ||
| Skrive | Giver brugeren mulighed for at oprette eller opdatere ethvert objekt i bucket | ||
| Skriv ACL. | Giver brugeren mulighed for at skrive ACL en for bucket | ||
| Udføre | Indstiller kørselstilladelsen, når det åbnes som et filsystem – Denne tilladelse har ingen effekt, når objektet åbnes vha. ECS-objektprotokollerne. | ||
| Fuld kontrol | Giver brugeren mulighed for at læse, skrive, læse og skrive ACL.
|
||
| Privilegeret skrivning | Tillader brugeren at udføre skrivninger til en bucket eller et objekt, når brugeren ikke har normal skrivetilladelse – Påkrævet for CAS-buckets | ||
| Slet | Tillader bruger at slette buckets og objekter – Påkrævet for CAS-buckets | ||
| Ingen | Brugeren har ingen rettigheder på bucket. |
AWS understøtter flere politiktyper.
- Adgangskontrollister (ACL'er)
- Identitetsbaserede politikker
- Tilladelsesgrænser
- Ressourcebaserede politikker
Følgende tabel viser det sæt tilladelser, som Amazon S3 understøtter i en ACL. Sættet af ACL-tilladelser er det samme for et objekt-ACL og en bucket ACL. Afhængigt af konteksten (bucket ACL eller objekt-ACL) giver disse ACL-tilladelser tilladelser til specifikke buckets eller objekthandlinger. Tabellen viser tilladelserne og beskriver, hvad de betyder i forbindelse med objekter og buckets.
| Tilladelse | Når det gives på en spand | Når den tildeles på en genstand |
|---|---|---|
READ |
Gør det muligt for modtageren at angive objekterne i spanden | Giver modtageren mulighed for at læse objektdataene og deres metadata |
WRITE |
Giver modtageren mulighed for at oprette, overskrive og slette ethvert objekt i bucket | Ikke relevant |
READ_ACP |
Giver modtageren mulighed for at læse ACL-spanden | Giver modtageren mulighed for at læse objektets ACL |
WRITE_ACP |
Giver tilskudsmodtager mulighed for at skrive ACL for den relevante bucket | Giver tilskudsmodtager mulighed for at skrive ACL for det relevante objekt |
FULL_CONTROL |
Giver modtageren tilladelserne LÆS, SKRIV, READ_ACP og WRITE_ACP til bucket | Giver modtageren tilladelserne READ, READ_ACP og WRITE_ACP til objektet |
Amazon S3-dokumentation
Følgende tabel viser, hvordan hver ACL-tilladelse knyttes til de tilsvarende adgangspolitiktilladelser. Som du kan se, tillader adgangspolitikken flere tilladelser, end en ACL gør. Du bruger primært ACL'er til at tildele grundlæggende læse-/skrivetilladelser, på samme måde som filsystemtilladelser. Du kan finde flere oplysninger om, hvornår du skal bruge en ACL, under Retningslinjer for brug af de tilgængelige indstillinger for adgangspolitik.
| ACL-tilladelse | Tilsvarende adgangspolitiktilladelser, når ACL-tilladelsen gives på en bucket | Tilsvarende adgangspolitiktilladelser, når ACL-tilladelsen gives til et objekt |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionsog s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersionog s3:GetObjectTorrent |
WRITE |
Når tilskudsmodtageren er skovlejer, ydes der desuden |
Ikke relevant |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl og s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl og s3:PutObjectVersionAcl |
FULL_CONTROL |
Svarende til at yde READ, WRITE, READ_ACPog WRITE_ACP ACL-tilladelser – Så denne ACL-tilladelse knyttes til en kombination af tilsvarende adgangspolitiktilladelser. |
Svarende til at yde READ, READ_ACPog WRITE_ACP ACL-tilladelser. Så denne ACL-tilladelse knyttes til en kombination af tilsvarende adgangspolitiktilladelser. |
解析度
Mulighed 1:
Se ECS Data Access Guide, hvordan du bruger Bucket Policies. I modsætning til ACL'er, som enten tillader alle handlinger eller ingen, giver adgangspolitikker specifikke brugere eller alle brugere betingede og detaljerede tilladelser til specifikke handlinger. Politikbetingelser kan bruges til at tildele tilladelser til en række objekter, der svarer til betingelsen. Dette kan bruges til automatisk at tildele tilladelser til nyligt uploadede objekter.
Reference AWS S3:
https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.htmlFra UI-> Manage-Bucket>-> Edit bucket policy, sæt noget, der ligner dette i policy editor:
{
"Version": "2012-10-17",
"Id": "Policy1593674317613",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": "bucket_name/*",
"Effect": "Allow",
"Principal": "read-only_user",
"Sid": "Stmt1593673962638"
}
]
} Hvor handling: "S3:GetObject" er handlingen, der skal have lov til at downloade objekter.
Hvor effekt: "Tillad"
hvor ressource": "bucket_name/*" er bucket-navnet.
Hvor hovedstol": "read-only_user", er en nonbucket-ejerbruger.
Mulighed 2:
Brug S3-browseren med objektejeren til at ændre tilladelsen for Godkendte brugere for objekter, der uploades før skrivebeskyttet bucket ACL for at sikre, at den ikke-ejerobjektbruger kan downloade objektet:
其他資訊
Hvis du oplever problemer med at uploade et objekt via objektejeren, og tilladelserne ikke anvendes på godkendte brugere, som har skriveadgang, skal du læse vidensartiklen 520711