Zarządzanie zasobnikami S3 i IAM
Nauczą się Państwo udostępniać i konfigurować zasobniki magazynu S3 oraz zarządzać zasobami AWS Identity and Access Management (IAM) za pomocą Terraform.
Zarządzanie zasobnikami S3 i IAM to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
S3 i Terraform: pamięć masowa w chmurze
Amazon S3 (Simple Storage Service) oferuje wysoce skalowalną, trwałą i dostępną obiektową pamięć masową. Doskonale nadaje się do tworzenia kopii zapasowych, hostowania statycznych witryn internetowych i archiwizowania danych.
Zarządzanie zasobnikami S3 za pomocą Terraform przynosi wiele korzyści:
- Automatyzacja: Tworzenie i konfigurowanie zasobników programowo.
- Kontrola wersji: Śledzenie zmian w konfiguracjach zasobników.
- Spójność: Zapewnienie identycznej konfiguracji S3 we wszystkich środowiskach.
Pierwszy zasobnik S3
Zdefiniujmy prosty zasobnik S3. Służy do tego zasób aws_s3_bucket.
Nazwy zasobników muszą być unikatowe globalnie we wszystkich kontach AWS. Proszę wybrać unikatową nazwę!
Proszę uruchomić ten przykład:
resource "aws_s3_bucket" "my_unique_bucket" {
bucket = "my-coddykit-unique-bucket-12345" # Replace with a globally unique name
}
output "bucket_id" {
value = aws_s3_bucket.my_unique_bucket.id
}Nazewnictwo zasobników i region
Podczas tworzenia zasobnika S3 należy pamiętać o następujących kwestiach:
- Globalna unikatowość: Nazwy zasobników muszą być globalnie unikatowe we wszystkich kontach AWS.
- Region: Choć nazwy są globalne, sam zasobnik znajduje się w konkretnym regionie AWS (określonym w konfiguracji dostawcy AWS).
- Zasady nazewnictwa: Nazwy muszą składać się z małych liter, mieć od 3 do 63 znaków i mogą zawierać łączniki.
Wybór dobrej konwencji nazewnictwa ma kluczowe znaczenie dla organizacji i przejrzystości.
Bezpieczeństwo i funkcje S3
S3 oferuje takie funkcje jak przechowywanie wielu wersji obiektu oraz blokowanie dostępu publicznego w celu zwiększenia bezpieczeństwa. W przypadku większości zasobników kluczowe jest domyślne zablokowanie dostępu publicznego.
Ten przykład konfiguruje przechowywanie wersji i zapewnia zablokowanie dostępu publicznego.
Proszę uruchomić ten przykład:
resource "aws_s3_bucket" "my_versioned_bucket" {
bucket = "coddykit-versioned-bucket-98765" # Replace with a unique name
}
resource "aws_s3_bucket_versioning" "my_versioned_bucket_versioning" {
bucket = aws_s3_bucket.my_versioned_bucket.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_public_access_block" "my_versioned_bucket_public_access_block" {
bucket = aws_s3_bucket.my_versioned_bucket.id
block_public_acls = true
block_public_and_cross_account_access = true
ignore_public_acls = true
restrict_public_buckets = true
}
output "bucket_name_versioned" {
value = aws_s3_bucket.my_versioned_bucket.bucket
}AWS IAM: tożsamość i dostęp
AWS IAM (Identity and Access Management) to usługa internetowa, która pomaga bezpiecznie kontrolować dostęp do zasobów AWS. Jest podstawą bezpieczeństwa.
Za pomocą IAM mogą Państwo:
- Zarządzać użytkownikami oraz ich dostępem programowym i dostępem do konsoli.
- Nadawać szczegółowe uprawnienia do konkretnych zasobów AWS.
- Kontrolować, kto i jakie działania może wykonywać na Państwa koncie AWS.
Terraform umożliwia definiowanie i zarządzanie zasobami IAM, podobnie jak zasobnikami S3.
Aprowizowanie użytkownika IAM
Utwórzmy nowego użytkownika IAM za pomocą Terraform. Użytkownik IAM reprezentuje osobę lub usługę, która korzysta z AWS.
Ten użytkownik nie będzie mieć jeszcze żadnych uprawnień; dodamy je w następnym kroku.
Proszę uruchomić ten przykład:
resource "aws_iam_user" "coddykit_user" {
name = "coddykit-app-user"
path = "/system/"
tags = {
Department = "DevOps"
}
}
output "iam_user_name" {
value = aws_iam_user.coddykit_user.name
}
output "iam_user_arn" {
value = aws_iam_user.coddykit_user.arn
}Zrozumienie polityk IAM
Polityki IAM to dokumenty definiujące uprawnienia. Określają, jakie działania są dozwolone lub zabronione dla konkretnych zasobów i w jakich warunkach.
Polityki są zapisywane w formacie JSON i można je dołączać do użytkowników, grup lub ról.
- Polityki oparte na tożsamości: Dołączane do tożsamości IAM (użytkownika, grupy lub roli).
- Polityki oparte na zasobach: Dołączane do zasobu (takiego jak zasobnik S3 lub kolejka SQS).
Nadawanie uprawnień S3
Utwórzmy teraz politykę, która nada naszemu użytkownikowi IAM dostęp tylko do odczytu do konkretnego zasobnika S3, a następnie dołączmy ją do użytkownika.
Zasób aws_iam_policy definiuje politykę, a aws_iam_user_policy_attachment łączy ją z użytkownikiem.
Proszę uruchomić ten przykład:
resource "aws_s3_bucket" "policy_target_bucket" {
bucket = "coddykit-policy-bucket-112233" # Unique name
}
resource "aws_iam_user" "s3_reader_user" {
name = "coddykit-s3-reader"
}
data "aws_iam_policy_document" "s3_read_only_policy" {
statement {
actions = [
"s3:GetObject",
"s3:ListBucket"
]
resources = [
aws_s3_bucket.policy_target_bucket.arn,
"${aws_s3_bucket.policy_target_bucket.arn}/*"
]
}
}
resource "aws_iam_policy" "s3_read_only" {
name = "CoddyKitS3ReadOnlyPolicy"
description = "Grants read-only access to a specific S3 bucket"
policy = data.aws_iam_policy_document.s3_read_only_policy.json
}
resource "aws_iam_user_policy_attachment" "attach_s3_read_only" {
user = aws_iam_user.s3_reader_user.name
policy_arn = aws_iam_policy.s3_read_only.arn
}
output "s3_reader_user_name" {
value = aws_iam_user.s3_reader_user.name
}
output "s3_read_only_policy_arn" {
value = aws_iam_policy.s3_read_only.arn
}Organizowanie za pomocą grup IAM
Aby ułatwić zarządzanie, szczególnie w przypadku wielu użytkowników, mogą Państwo używać grup IAM. Grupa to zbiór użytkowników IAM.
Zamiast dołączać polityki do poszczególnych użytkowników, można dołączyć je do grupy, a wszyscy użytkownicy należący do tej grupy odziedziczą te uprawnienia.
Upraszcza to zarządzanie uprawnieniami i ułatwia przestrzeganie zasady najmniejszych uprawnień.
Szybkie sprawdzenie: S3 i IAM
Które z poniższych stwierdzeń dotyczących zarządzania zasobnikami AWS S3 oraz użytkownikami i politykami IAM za pomocą Terraform są PRAWDZIWE?
Podsumowanie: S3 i IAM
Świetnie! W tej lekcji nauczyli się Państwo zarządzać zasobnikami AWS S3 i zasobami IAM za pomocą Terraform.
- Utworzyliśmy zasobniki S3, skonfigurowaliśmy przechowywanie wersji i zablokowaliśmy dostęp publiczny.
- Utworzyliśmy użytkowników IAM i dołączyliśmy niestandardowe polityki, aby nadać konkretne uprawnienia.
- Rozumieją już Państwo znaczenie S3 do przechowywania danych oraz IAM do bezpiecznego kontrolowania dostępu w AWS — wszystko zdefiniowane jako kod!
W następnej części zajmiemy się zaawansowanymi technikami zarządzania stanem.
Często zadawane pytania
Czy lekcja „Zarządzanie zasobnikami S3 i IAM” jest bezpłatna?
Tak — pełny tekst „Zarządzanie zasobnikami S3 i IAM” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Zarządzanie zasobnikami S3 i IAM”?
Nauczą się Państwo udostępniać i konfigurować zasobniki magazynu S3 oraz zarządzać zasobami AWS Identity and Access Management (IAM) za pomocą Terraform. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Zarządzanie zasobnikami S3 i IAM”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Konfiguracja dostawcy AWS
- Udostępnianie instancji EC2
- Zarządzanie zasobnikami S3 i IAM
- Konfigurowanie VPC i sieci