S3
W tym dokumencie dowiesz się, jak utworzyć nowego bucketa na S3, utworzyć dla niego użytkownika administracyjnego oraz jak skonfigurować dostęp publiczny.
Przygotowanie
Do administracji klastrem S3 potrzebujesz programu mcli, którego znajdziesz we większości repozytoriów dystrybucji linuxa.
Panel webowy jest niestety mocno ograniczony, i nie skonfigurujesz przez niego odpowiednio dostępów.
Zaloguj się do klastra komendą mcli alias set.
Dane logowania otrzymasz od przewodniczącego sekcji.
Nowy bucket
Buckety można tworzyć komendą mcli mb.
Jest to również jedyna akcja, którą można dokonać przez webowy panel administracyjny S3.
Nowy użytkownik
Użytkownika utworzysz komendą mcli admin user add.
Generuj losowe hasła lokalnymi generatorami, na przykład poprzez menedżer haseł, lub ulubionym narzędziem CLI.
W przypadku tworzenia konta dla innego projektu, przekaż dane dostępowe poprzez vaultwardena, funkcją “Send”.
Przypisywanie uprawnień
By przypisać uprawnienia do bucketa użytkownikowi, napisz odpowiednią politykę w formacie AWS IAM Policy. Przykładowa polityka znajduje się na końcu tego rozdziału.
Po napisaniu polityki, zapisz ją do lokalnego pliku JSON, a następnie wgraj na klaster S3 komendą mcli admin policy create.
Po wgraniu polityki, przypisz ją użytkownikowi komendą mcli admin policy attach.
Przypisania polityk do użytkownika możesz wylistować komendą mcli admin policy entities.
Przykładowa polityka, zezwalająca użytkownikowi na listowanie, odczyt, zapis i usuwanie danych z bucketa test-bucket:
{ "Statement": [ { "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"], "Effect": "Allow", "Resource": ["arn:aws:s3:::test-bucket/*"] }, { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::test-bucket"] } ], "Version": "2012-10-17"}Dostęp publiczny
Dostęp publiczny do bucketa skonfigurujesz komendą mcli anonymous set-json.
Przygotuj politykę AWS IAM, tak jak w rozdziale wyżej, dodając pole Principal do każdej reguły.
Przykładowo, by udostepnić publicznie pobieranie z bucketa test-bucket, nie zezwalając na listowanie zawartości, użyj nastepującej polityki:
{ "Statement": [ { "Action": ["s3:GetObject"], "Effect": "Allow", "Principal": { "AWS": ["*"] }, "Resource": ["arn:aws:s3:::test-bucket/*"] } ], "Version": "2012-10-17"}By usunąć politykę dostępu publicznego, wgraj nową politykę z pustą listą reguł:
{ "Statement": [], "Version": "2012-10-17"}