0Pricing
DevOps Bootcamp · Lekcja

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

  1. Konfiguracja dostawcy AWS
  2. Udostępnianie instancji EC2
  3. Zarządzanie zasobnikami S3 i IAM
  4. Konfigurowanie VPC i sieci
← Powrót do DevOps Bootcamp