ECS: Skrivebeskyttet samlebåndskontroll for ikke-eierobjektbrukere som ikke kan laste ned opplastede objekter
摘要: Denne kunnskapsbasen forklarer konseptet med samlinger tilgangskontrollister (ACLer) for ikke-eierobjektbrukeren fra et skrivebeskyttet perspektiv i S3 Browser.
症狀
Objektbrukeren for ikke-eier ble lagt til som skrivebeskyttet i samlingen ved hjelp av en tilgangskontrolliste for en samling.
En nonbucket eier, objekt brukeren er ikke i stand til å laste ned objekter som ble lastet opp av objektet bøtte eieren brukeren, før bøtte ACL opprettelse.
Problemflyten er som følger:
- Samlingen ble opprettet med tilordnet bruker for objekteier.
- Noen filer ble lastet opp til samlingen av objekteieren brukeren.
- Objektbrukeren for ikke-eier ble lagt til som skrivebeskyttet i samlingen ved hjelp av en tilgangskontrolliste for en samling.
- Prøver å få tilgang til bøtta, kan nonowner objektbrukeren liste og laste ned nylig opplastede objekter, men kan ikke laste ned objekter lastet opp før skrivebeskyttet bøtte ACL. Vi kan se at brukerrettighetene for objektene ikke er angitt over S3-nettleser i henhold til konfigurasjonen i ECS-grensesnittet.
Feilen når ikke-eierobjektbrukeren klikker et objekt ved hjelp av S3 Browser, er som følger: (AccessDenied: Ingen tilgang):
Nedenfor finner du ACL-oppsettet for samlingen for objekteieren (a_s3user) og ikke-eierobjektbrukeren (a_s3test):
原因
S3-tillatelser kan angis på samlings- eller objektnivå. ECS følger de samme prinsippene som AWS S3 - Avhengig av hvilken type policy som brukes. Det bestemmer hvilken type operasjoner som vil bli tillatt på Bucket-nivå eller objektnivå.
- Når READ- og READ-tilgangskontrollisten gis på ECS-samlingsnivået, skal eieren av ikke-bøtte bare føre opp objektene i samlingen. Eieren av verdiområdet uten bøtte kan ikke laste ned data fra samlingen
- Når du skriver et objekt til en samling, har bare brukeren som skriver objektet lesetillatelse. For at andre brukere skal kunne lese objektene, må eieren eksplisitt gi tillatelse til brukerne.
- For å gi tillatelse til nonbucket-eiere, må vi bruke S3-bøttepolicyer
Tillatelsene for tilgangskontrollisten som kan tilordnes, angis i tabellen nedenfor. Tillatelsene som gjelder avhenger av typen samling.
| TILGANGSKONTROLLISTE | Tillatelse | ||
|---|---|---|---|
| Lese | Gjør det mulig for brukeren å liste opp objektene i samlingen | ||
| Les tilgangskontrollisten | Gjør at brukeren kan lese tilgangskontrollisten for bøtte | ||
| Skrive | Gjør at brukeren kan opprette eller oppdatere et hvilket som helst objekt i samlingen | ||
| Skriv ACL. | Gjør at brukeren kan skrive tilgangskontrollisten for samlingen | ||
| Henrette | Angir kjøretillatelse ved tilgang som filsystem – Denne tillatelsen har ingen innvirkning når objektet åpnes ved hjelp av ECS-objektprotokollene. | ||
| Full kontroll | Gjør at brukeren kan lese, skrive, lese tilgangskontrollisten og skrive tilgangskontrollisten.
|
||
| Privilegert skriving | Gjør at brukeren kan skrive til en samling eller et objekt når brukeren ikke har vanlig skrivetillatelse – kreves for CAS-samlinger | ||
| Slett | Gjør at brukeren kan slette samlinger og objekter – obligatorisk for CAS-samlinger | ||
| None | Brukeren har ingen privilegier på bøtta. |
AWS støtter flere policytyper.
- Tilgangskontrollister (ACLer)
- Identitetsbaserte retningslinjer
- Grenser for tillatelser
- Ressursbaserte policyer
Tabellen nedenfor viser settet med tillatelser som Amazon S3 støtter i en tilgangskontrolliste. Settet med tilgangskontrollistetillatelser er det samme for en objekttilgangskontrolliste og en tilgangskontrolliste for verdiområder. Avhengig av konteksten (nettkurve-ACL eller objekt-ACL) gir imidlertid disse tilgangskontrollistene tillatelser for bestemte samlinger eller objektoperasjoner. Tabellen viser tillatelsene og beskriver hva de betyr i konteksten til objekter og samlinger.
| Tillatelse | Når det gis på en bøtte | Når det gis på et objekt |
|---|---|---|
READ |
Gjør det mulig for adgangsberettigede å føre opp objektene i samlingen | Gjør det mulig for adgangsberettigede å lese objektdataene og metadataene for dem |
WRITE |
Gjør det mulig for adgangsberettigede å opprette, overskrive og slette et hvilket som helst objekt i samlingen | Ikke aktuelt |
READ_ACP |
Tillater adgangsberettigede å lese ACL-en i bøtta | Gjør det mulig for adgangsberettigede å lese objektets tilgangskontrolliste |
WRITE_ACP |
Gjør det mulig for adgangsberettigede å skrive tilgangskontrollisten for den aktuelle samlingen | Gjør det mulig for adgangsberettigede å skrive tilgangskontrollisten for det gjeldende objektet |
FULL_CONTROL |
Gir adgangsberettigede tillatelsene LES, SKRIVE, READ_ACP og WRITE_ACP på samlingen | Gir adgangshaver tillatelsene lese, READ_ACP og WRITE_ACP for objektet |
Amazon S3 Dokumentasjon
Tabellen nedenfor viser hvordan hver tilgangskontrollistetillatelse tilordnes de tilsvarende tillatelsene for tilgangspolicy. Som du kan se, tillater tilgangspolicyen flere tillatelser enn en tilgangskontrolliste. Du bruker tilgangskontrollister primært til å gi grunnleggende lese-/skrivetillatelser, på samme måte som filsystemtillatelser. Hvis du vil ha mer informasjon om når du skal bruke en tilgangskontrolliste, kan du se Guidelines for using the available access policy options.
| ACL-tillatelse | Tilsvarende tilgangspolicytillatelser når ACL-tillatelsen gis på en samlebånd | Tilsvarende tillatelser for tilgangspolicy når tilgangskontrollistetillatelsen gis for et objekt |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionsog s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersionog s3:GetObjectTorrent |
WRITE |
I tillegg, når bevillingshaver er bøtteeier, gir |
Ikke aktuelt |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl og s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl og s3:PutObjectVersionAcl |
FULL_CONTROL |
Tilsvarer tildeling READ, WRITE, READ_ACPog WRITE_ACP ACL-tillatelser – denne tilgangskontrollistetillatelsen tilordnes derfor til en kombinasjon av tilsvarende tilgangspolicytillatelser. |
Tilsvarer tildeling READ, READ_ACPog WRITE_ACP ACL-tillatelser. Denne tilgangskontrollistetillatelsen tilordnes derfor til en kombinasjon av tilsvarende tillatelser for tilgangspolicy. |
解析度
Alternativ 1:
Se ECS-datatilgangsveiledningen for hvordan du bruker samlingspolicyer. I motsetning til ACLer, som enten tillater alle handlinger eller ingen, gir tilgangspolicyer bestemte brukere, eller alle brukere, betingede og detaljerte tillatelser for bestemte handlinger. Policybetingelser kan brukes til å tilordne tillatelser for et område med objekter som samsvarer med betingelsen. Dette kan brukes til å tilordne tillatelser til nylig opplastede objekter automatisk.
Referanse 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-Rediger>>> bøtte policy, sette noe som ligner på 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 for å få lov til å kunne laste ned objekter.
Hvor-effekt: "Tillat"
hvor ressurs": "bucket_name/*", er bøttenavnet.
Hvor rektor": "Read-only_useR", er en nonbucket eier bruker.
Alternativ 2:
Ved hjelp av S3 Browser med objekteieren endrer du tillatelsen for godkjente brukere for objekter som er lastet opp før skrivebeskyttet tilbakeslagskontrolliste for å sikre at ikke-eierobjektbrukeren kan laste ned objektet:
其他資訊
Hvis du har problemer med å laste opp et objekt via objekteieren, og tillatelsene ikke gjelder for godkjente brukere som har skrivetilgang, kan du lese kunnskapsbaseartikkelen 520711