ECS: Lista ACL zasobnika tylko do odczytu dla użytkownika obiektu niebędącego właścicielem nie może pobrać przesłanych obiektów
摘要: W tej bazie wiedzy wyjaśniono koncepcję zasobników list kontroli dostępu (ACL) dla użytkownika obiektu niebędącego właścicielem z perspektywy tylko do odczytu w przeglądarce S3.
症狀
Użytkownik obiektu niebędący właścicielem został dodany jako tylko do odczytu do zasobnika przy użyciu listy ACL zasobnika.
Użytkownik obiektu niebędący właścicielem zasobnika nie może pobrać obiektów, które zostały przesłane przez użytkownika będącego właścicielem zasobnika obiektów przed utworzeniem listy ACL zasobnika.
Przebieg problemu jest następujący:
- Zasobnik został utworzony z przypisanym użytkownikiem właściciela obiektu.
- Niektóre pliki zostały przesłane do zasobnika przez użytkownika będącego właścicielem obiektu.
- Użytkownik obiektu niebędący właścicielem został dodany jako tylko do odczytu do zasobnika przy użyciu listy ACL zasobnika.
- Próbując uzyskać dostęp do zasobnika, użytkownik obiektu niebędący właścicielem może wyświetlać i pobierać nowo przekazane obiekty, ale nie może pobierać obiektów przesłanych przed listą ACL zasobnika tylko do odczytu. Widzimy, że prawa użytkownika do obiektów nie są ustawione w przeglądarce S3 zgodnie z konfiguracją w interfejsie użytkownika ECS.
Błąd, gdy użytkownik obiektu niebędący właścicielem kliknie obiekt za pomocą przeglądarki S3, jest następujący: (Odmowa dostępu: Odmowa dostępu):
Poniżej przedstawiono konfigurację listy ACL zasobnika dla użytkownika właściciela obiektu (a_s3user) i użytkownika obiektu niebędącego właścicielem (a_s3test):
原因
Uprawnienia S3 można ustawić na poziomie zasobnika lub obiektu. ECS przestrzega tych samych zasad co AWS S3 — w zależności od typu zastosowanych zasad. Określa typ operacji, które będą dozwolone na poziomie zasobnika lub na poziomie obiektu.
- Po przyznaniu listy ACL odczytu i odczytu na poziomie zasobnika ECS właściciel niebędący zasobnikiem może tylko wyświetlać listę obiektów w zasobniku. Właściciel niebędący zasobnikiem nie może pobierać danych z zasobnika
- Podczas zapisywania obiektu w zasobniku tylko użytkownik, który zapisuje obiekt, ma uprawnienia do odczytu. Aby inni użytkownicy mogli odczytać obiekty, właściciel musi wyraźnie przyznać im uprawnienia.
- Aby przyznać uprawnienia osobom niebędącym właścicielami zasobnika, musimy użyć zasad zasobnika S3
Uprawnienia listy ACL, które można przypisać, znajdują się w poniższej tabeli. Uprawnienia, które mają zastosowanie, zależą od typu zasobnika.
| ACL | Permission | ||
|---|---|---|---|
| Odczyt | Umożliwia wyświetlanie listy obiektów w zasobniku | ||
| Odczytywanie ACL | Umożliwia użytkownikowi odczytanie listy ACL zasobnika | ||
| Zapis | Umożliwia użytkownikowi tworzenie lub aktualizowanie dowolnych obiektów w zasobniku | ||
| Napisz listę ACL. | Umożliwia użytkownikowi wpisanie listy ACL dla zasobnika | ||
| Execute | Ustawia uprawnienie do wykonywania w przypadku dostępu jako system plików — to uprawnienie nie ma znaczenia, gdy dostęp do obiektu jest uzyskiwany przy użyciu protokołów obiektów ECS. | ||
| Full Control | Umożliwia odczytywanie, zapisywanie, odczytywanie i zapisywanie ACL.
|
||
| Privileged Write | Umożliwia wykonywanie zapisu w zasobniku lub obiekcie, gdy użytkownik nie ma normalnych uprawnień do zapisu — wymagane w przypadku zasobników CAS | ||
| Usuń | Umożliwia użytkownikowi usuwanie zasobników i obiektów — wymagane w przypadku zasobników CAS | ||
| None | Użytkownik nie ma żadnych uprawnień do zasobnika. |
Platforma AWS obsługuje wiele typów zasad.
- Listy kontroli dostępu (ACL)
- Zasady oparte na tożsamościach
- Granice uprawnień
- Zasady oparte na zasobach
Odwołanie do listy ACL zasobnika AWS
W poniższej tabeli wymieniono zestaw uprawnień obsługiwanych przez usługę Amazon S3 na liście ACL. Zestaw uprawnień listy ACL jest taki sam dla listy ACL obiektu i listy ACL zasobnika. Jednak w zależności od kontekstu (lista ACL zasobnika lub lista ACL obiektu) te uprawnienia listy ACL przyznają uprawnienia do określonych zasobników lub operacji na obiektach. W poniższej tabeli wymieniono uprawnienia i opisano ich znaczenie w kontekście obiektów i zasobników.
| Permission | Po przyznaniu w zasobniku | Po przyznaniu na obiekcie |
|---|---|---|
READ |
Umożliwia beneficjentowi wyszczególnienie obiektów w zasobniku | Umożliwia grantobiorcy odczyt danych obiektu i jego metadanych |
WRITE |
Umożliwia grantobiorcy tworzenie, zastępowanie i usuwanie dowolnego obiektu w zasobniku | Nie dotyczy |
READ_ACP |
Zezwalanie grantobiorcy na odczyt listy ACL zasobnika | Umożliwia grantobiorcy odczytanie listy ACL obiektu |
WRITE_ACP |
Zezwala grantobiorcy na napisanie listy ACL dla odpowiedniego zasobnika | Zezwala grantobiorcy na napisanie listy ACL dla odpowiedniego obiektu |
FULL_CONTROL |
Przyznaje beneficjentowi uprawnienia ODCZYT, ZAPIS, READ_ACP i WRITE_ACP w zasobniku | Przyznaje beneficjentowi uprawnienia ODCZYT, READ_ACP i WRITE_ACP do obiektu |
Dokumentacja Amazon S3
W poniższej tabeli pokazano, w jaki sposób każde uprawnienie ACL jest mapowane na odpowiednie uprawnienia zasad dostępu. Jak widać, zasady dostępu zezwalają na więcej uprawnień niż lista ACL. Listy ACL są używane głównie do przyznawania podstawowych uprawnień do odczytu/zapisu, podobnie jak uprawnienia systemu plików. Aby uzyskać więcej informacji o tym, kiedy używać listy ACL, zobacz Wskazówki dotyczące korzystania z dostępnych opcji zasad dostępu.
| Uprawnienie ACL | Odpowiednie uprawnienia zasad dostępu, gdy uprawnienie ACL jest przyznawane dla zasobnika | Odpowiednie uprawnienia zasad dostępu, gdy uprawnienie ACL jest przyznawane obiektowi |
|---|---|---|
READ |
s3:ListBucket, s3:ListBucketVersionsi s3:ListBucketMultipartUploads |
s3:GetObject, s3:GetObjectVersioni s3:GetObjectTorrent |
WRITE |
Ponadto, gdy beneficjent jest właścicielem zasobnika, przyznanie |
Nie dotyczy |
READ_ACP |
s3:GetBucketAcl |
s3:GetObjectAcl i s3:GetObjectVersionAcl |
WRITE_ACP |
s3:PutBucketAcl |
s3:PutObjectAcl i s3:PutObjectVersionAcl |
FULL_CONTROL |
Równoznaczne z przyznaniem READ, WRITE, READ_ACPi WRITE_ACP Uprawnienia listy ACL — to uprawnienie listy ACL jest mapowane na kombinację odpowiednich uprawnień zasad dostępu. |
Równoznaczne z przyznaniem READ, READ_ACPi WRITE_ACP Uprawnienia listy ACL. Tak więc to uprawnienie ACL jest mapowane na kombinację odpowiednich uprawnień zasad dostępu. |
解析度
Opcja 1:
Zapoznaj się z podręcznikiem dostępu do danych ECS, jak korzystać z zasad zasobnika. W przeciwieństwie do list ACL, które zezwalają na wszystkie akcje lub żadne, zasady dostępu zapewniają określonym użytkownikom lub wszystkim użytkownikom warunkowe i szczegółowe uprawnienia dla określonych akcji. Warunki zasad mogą służyć do przypisywania uprawnień do zakresu obiektów spełniających warunek. Można tego użyć do automatycznego przypisywania uprawnień do nowo przesłanych obiektów.
Odniesienie 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.htmlZ UI-> Manage-Bucket>-> Edit bucket policy, umieść coś podobnego do tego w edytorze zasad:
{
"Version": "2012-10-17",
"Id": "Policy1593674317613",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Resource": "bucket_name/*",
"Effect": "Allow",
"Principal": "read-only_user",
"Sid": "Stmt1593673962638"
}
]
}Gdzie działanie: "S3:GetObject" to akcja, która umożliwia pobieranie obiektów.
Gdzie Efekt: "Zezwól"
, gdzie zasób": "bucket_name/*" to nazwa zasobnika.
Gdzie Zleceniodawca": "Read only_useR" to użytkownik, który nie jest właścicielem zasobnika.
Opcja 2:
Korzystając z przeglądarki S3 z właścicielem obiektu, zmień uprawnienia uwierzytelnionych użytkowników dla obiektów przesłanych przed listą ACL zasobnika tylko do odczytu, aby upewnić się, że użytkownik obiektu niebędący właścicielem może pobrać obiekt:
其他資訊
Jeśli występują problemy z przesyłaniem obiektu za pośrednictwem właściciela obiektu, a uprawnienia nie są stosowane do uwierzytelnionych użytkowników, którzy mają dostęp do zapisu, zapoznaj się z artykułem bazy wiedzy 520711