ECS: ACL del bucket read-only per l'utente dell'oggetto non proprietario che non è in grado di scaricare gli oggetti caricati
摘要: Questa knowledge base spiega il concetto di ACL (Access Control List) dei bucket per l'utente di oggetti non proprietario da una prospettiva di sola lettura nel browser S3.
症狀
L'utente dell'oggetto non proprietario è stato aggiunto come read-only al bucket utilizzando un ACL del bucket.
Un utente dell'oggetto non proprietario del bucket non è in grado di scaricare gli oggetti caricati dall'utente proprietario del bucket di oggetti prima della creazione dell'ACL del bucket.
Il flusso del problema è il seguente:
- Il bucket è stato creato con l'utente proprietario dell'object assegnato.
- Alcuni file sono stati caricati nel bucket dall'utente proprietario dell'object.
- L'utente dell'oggetto non proprietario è stato aggiunto come read-only al bucket utilizzando un ACL del bucket.
- Quando si tenta di accedere al bucket, l'utente dell'oggetto non proprietario può elencare e scaricare gli oggetti appena caricati, ma non gli oggetti caricati prima dell'ACL del bucket read-only. Si può notare che i diritti utente sugli oggetti non sono impostati sul browser S3 come da configurazione nell'interfaccia utente di ECS.
L'errore quando l'utente di oggetti non proprietario fa clic su un oggetto utilizzando il browser S3 è il seguente: (Accesso negato: Accesso negato):
Di seguito è riportata la configurazione degli ACL del bucket per l'utente proprietario dell'oggetto (a_s3user) e l'utente dell'oggetto non proprietario (a_s3test):
原因
Le autorizzazioni S3 possono essere impostate a livello di bucket o oggetto. ECS aderisce agli stessi principi di AWS S3, a seconda del tipo di policy applicata. Determina il tipo di operazioni consentite a livello di bucket o di oggetto.
- Quando READ e READ ACL vengono concessi a livello di bucket ECS, il proprietario non bucket deve elencare solo gli oggetti nel bucket, il proprietario non bucket non può scaricare i dati dal bucket
- Quando si scrive un oggetto in un bucket, solo l'utente che scrive l'oggetto dispone dell'autorizzazione di lettura. Affinché altri utenti possano leggere gli oggetti, il proprietario deve concedere esplicitamente l'autorizzazione agli utenti.
- Per concedere l'autorizzazione ai proprietari non di bucket, è necessario utilizzare le policy dei bucket S3
Le autorizzazioni ACL che possono essere assegnate sono fornite nella tabella seguente. Le autorizzazioni applicabili dipendono dal tipo di bucket.
| ACL | Autorizzazione | ||
|---|---|---|---|
| Read | Consente all'utente di elencare gli oggetti nel bucket | ||
| Read ACL | Consente all'utente di leggere l'ACL del bucket | ||
| Write | Consente all'utente di creare o aggiornare qualsiasi oggetto nel bucket | ||
| ACL di scrittura. | Consente all'utente di scrivere l'ACL per il bucket | ||
| Execute | Imposta l'autorizzazione di esecuzione quando si accede come file system: questa autorizzazione non ha alcun effetto quando si accede all'oggetto utilizzando i protocolli dell'oggetto ECS. | ||
| Full Control | Consente all'utente di leggere, scrivere nonché leggere e scrivere ACL.
|
||
| Privileged Write | Consente all'utente di eseguire scritture in un bucket o un oggetto quando non dispone della normale autorizzazione di scrittura: richiesta per i bucket CAS | ||
| Delete | Consente all'utente di eliminare bucket e oggetti: obbligatorio per i bucket CAS | ||
| None | L'utente non dispone di privilegi sul bucket. |
AWS supporta più tipi di policy.
- ACL (Access Control List)
- Policy basate sull'identità
- Limiti delle autorizzazioni
- Policy basate sulle risorse
La tabella seguente elenca il set di autorizzazioni supportate da Amazon S3 in un ACL. Il set di autorizzazioni ACL è lo stesso per un ACL dell'oggetto e un ACL del bucket. Tuttavia, a seconda del contesto (ACL del bucket o ACL dell'oggetto), queste autorizzazioni ACL concedono autorizzazioni per operazioni su oggetti o bucket specifici. La tabella elenca le autorizzazioni e ne descrive il significato nel contesto di oggetti e bucket.
| Autorizzazione | Quando concesso in un bucket | Quando concesso su un oggetto |
|---|---|---|
READ |
Consente all'utente autorizzato di elencare gli oggetti nel bucket | Consente all'utente autorizzato di leggere i dati dell'object e i relativi metadati |
WRITE |
Consente all'utente autorizzato di creare, sovrascrivere ed eliminare qualsiasi oggetto nel bucket | Non applicabile |
READ_ACP |
Consente all'utente autorizzato di leggere l'ACL del bucket | Consente all'utente autorizzato di leggere l'ACL dell'oggetto |
WRITE_ACP |
Consente all'utente autorizzato di scrivere l'ACL per il bucket applicabile | Consente all'utente autorizzato di scrivere l'ACL per l'oggetto applicabile |
FULL_CONTROL |
Consente di concedere le autorizzazioni di LETTURA, SCRITTURA, READ_ACP e WRITE_ACP nel bucket | Consente di concedere le autorizzazioni di LETTURA, READ_ACP e WRITE_ACP sull'oggetto |
Documentazione di Amazon S3
La tabella seguente mostra il modo in cui ciascuna autorizzazione ACL viene mappata alle autorizzazioni delle policy di accesso corrispondenti. Come si può notare, la policy di accesso consente più autorizzazioni rispetto a un ACL. Gli ACL vengono utilizzati principalmente per concedere autorizzazioni di lettura/scrittura di base, analogamente alle autorizzazioni del file system. Per ulteriori informazioni su quando utilizzare un ACL, consultare Linee guida per l'utilizzo delle opzioni dei criteri di accesso disponibili.
| Autorizzazione ACL | Autorizzazioni delle policy di accesso corrispondenti quando viene concessa l'autorizzazione ACL in un bucket | Autorizzazioni delle policy di accesso corrispondenti quando viene concessa l'autorizzazione ACL per un oggetto |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionse s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersione s3:GetObjectTorrent |
WRITE |
Inoltre, quando l'utente autorizzato è il proprietario del bucket, la concessione |
Non applicabile |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl e s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl e s3:PutObjectVersionAcl |
FULL_CONTROL |
Equivalente a concedere READ, WRITE, READ_ACPe WRITE_ACP Autorizzazioni ACL: questa autorizzazione ACL viene mappata a una combinazione di autorizzazioni delle policy di accesso corrispondenti. |
Equivalente a concedere READ, READ_ACPe WRITE_ACP Autorizzazioni ACL. Pertanto, questa autorizzazione ACL viene mappata a una combinazione di autorizzazioni delle policy di accesso corrispondenti. |
解析度
Opzione 1:
Consultare la Guida all'accesso ai dati ECS per informazioni su come utilizzare le policy dei bucket. A differenza degli ACL, che consentono tutte o nessuna azione, le policy di accesso forniscono a utenti specifici o a tutti gli utenti autorizzazioni condizionali e granulari per azioni specifiche. Le condizioni delle policy possono essere utilizzate per assegnare autorizzazioni per una serie di oggetti che soddisfano la condizione. Questa opzione può essere utilizzata per assegnare automaticamente le autorizzazioni agli oggetti appena caricati.
Riferimento 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.htmlDall'interfaccia utente-> Manage-Bucket>>- Edit bucket policy, inserire qualcosa di simile a questo nell'editor di policy:
{
"Version": "2012-10-17",
"Id": "Policy1593674317613",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": "bucket_name/*",
"Effect": "Allow",
"Principal": "read-only_user",
"Sid": "Stmt1593673962638"
}
]
}Dove Azione: "S3:GetObject" è l'azione a cui è consentito il download degli oggetti.
Dove Effetto: "Allow"
where resource": "bucket_name/*" è il nome del bucket.
Dove Principale": "read-only_user" è un utente non proprietario del bucket.
Opzione 2:
Utilizzando S3 Browser con il proprietario dell'object, modificare l'autorizzazione per Authenticated Users per gli oggetti caricati prima dell'ACL del bucket read-only per garantire che l'utente dell'oggetto non proprietario possa scaricare l'oggetto:
其他資訊
Se si verificano problemi durante il caricamento di un oggetto tramite il proprietario dell'oggetto e le autorizzazioni non vengono applicate agli utenti autenticati con accesso in scrittura, consultare l'articolo della Knowledge Base 520711