Użyj generowania zasad IAM Access Analyzer, aby przyznać szczegółowe uprawnienia dla ról usługi AWS CloudFormation

24 października 2022

AWS Identity and Access Management (IAM) Access Analyzer udostępnia narzędzia upraszczające zarządzanie uprawnieniami, ułatwiając ustawianie, weryfikację i udoskonalanie uprawnień.

Jednym z takich narzędzi jest generowanie zasad IAM Access Analyzer, które tworzy szczegółowe zasady na podstawie aktywności dostępu do AWS CloudTrail – na przykład czynności, których używasz z Amazon Elastic Compute Cloud (Amazon EC2), AWS Lambda i Amazon Simple Storage Service (Amazon S3).

AWS rozszerzył możliwości generowania polityk, aby wspierać identyfikację działań wykorzystywanych z ponad 140 usług. Nowe dodatki obejmują usługi takie jak AWS CloudFormation, Amazon DynamoDB i Amazon Simple Queue Service (Amazon SQS). Gdy zażądasz zasad, IAM Access Analyzer generuje je, analizując dzienniki CloudTrail, aby zidentyfikować działania używane z tej grupy z ponad 140 usług. Wygenerowane zasady sprawiają, że wydajne jest przyznawanie tylko wymaganych uprawnień dla Twoich obciążeń. W przypadku innych usług Access Analyzer pomaga identyfikować używane usługi i prowadzi do dodania niezbędnych działań.

W tym artykule dowiesz się, w jaki sposób można użyć Access Analyzer do wygenerowania polityki uprawnień IAM, która ogranicza uprawnienia CloudFormation tylko do tych działań, które są niezbędne do wdrożenia danego szablonu, aby zachować zasadę najmniejszych uprawnień.

Uprawnienia dla AWS CloudFormation

AWS CloudFormation umożliwia tworzenie kolekcji powiązanych zasobów AWS i stron trzecich oraz udostępnianie ich w spójny i powtarzalny sposób. Typowym wzorcem zarządzania dostępem jest przyznanie programistom uprawnień do używania CloudFormation do udostępniania zasobów w środowisku produkcyjnym i ograniczanie ich możliwości bezpośredniego robienia tego. Kieruje to programistów do wprowadzania zmian w infrastrukturze w środowisku produkcyjnym za pośrednictwem CloudFormation, przy użyciu wzorców infrastruktury jako kodu do zarządzania zmianami.

CloudFormation może tworzyć, aktualizować i usuwać zasoby w imieniu programisty, przyjmując rolę IAM, która posiada wystarczające uprawnienia. Administratorzy chmury często przyznają IAM szeroki zakres uprawnień – wykraczających poza to, co jest konieczne do tworzenia, aktualizowania i usuwania zasobów z szablonu programisty – ponieważ nie jest jasne, jakie są minimalne uprawnienia dla szablonu. W rezultacie programista może używać CloudFormation do tworzenia lub modyfikowania zasobów poza tym, co jest wymagane do ich obciążenia.

Najlepszym rozwiązaniem dla CloudFormation jest uzyskanie uprawnień przy użyciu poświadczeń z roli IAM, którą przekazujesz do CloudFormation. Po dołączeniu do roli zasad najniższych uprawnień, działania, które CloudFormation może wykonywać, mogą być ograniczone tylko do tych, które są niezbędne do zarządzania zasobami w szablonie. W ten sposób można uniknąć antywzorców, takich jak przypisywanie do roli zasad AdministratorAccess lub PowerUserAccess – z których obie przyznają nadmierne uprawnienia.

W poniższej sekcji opisano, jak skonfigurować konto i przyznać te uprawnienia.

Przygotuj Development Account

Na koncie Development Account skonfigurujesz tę samą metodę wdrażania infrastruktury, której używasz w środowisku produkcyjnym: przekazywanie roli do CloudFormation podczas uruchamiania stosu. Najpierw zweryfikujesz, czy posiadasz niezbędne uprawnienia, a następnie utworzysz rolę i politykę uprawnień roli.

Uzyskaj uprawnienia do korzystania z CloudFormation i IAM Access Analyzer

Będziesz potrzebować następujących minimalnych uprawnień na swoim koncie Development Account:

  • Zezwolenie na korzystanie z CloudFormation, w szczególności do tworzenia, aktualizowania i usuwania stosów;
  • Pozwolenie na przekazanie roli IAM do CloudFormation;
  • Pozwolenie na tworzenie ról i polityk IAM;
  • Uprawnienie do korzystania z narzędzia Access Analyzer, w szczególności działań GetGeneratedPolicy, ListPolicyGenerations i StartPolicyGeneration.

Poniższe zasady uprawnień mogą służyć do przyznania tożsamości tych uprawnień.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DeveloperPermissions”,
            "Effect": "Allow",
            "Action": [
                "access-analyzer:GetGeneratedPolicy",
                "access-analyzer:ListPolicyGenerations",
                "access-analyzer:StartPolicyGeneration",
                "cloudformation:*",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:CreateRole",
                "iam:DeletePolicyVersion",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:ListPolicies",
                "iam:ListPolicyTags",
                "iam:ListPolicyVersions",
                "iam:ListRolePolicies",
                "iam:ListRoleTags",
                "iam:ListRoles",
                "iam:PutRolePolicy",
                "iam:UpdateAssumeRolePolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowPassCloudFormationRole”,
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ]
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "cloudformation.amazonaws.com"
                }
            }
        }
    ]
}

Uwaga: Jeśli Twoja tożsamość ma już te uprawnienia w ramach istniejących zasad uprawnień, nie ma potrzeby stosowania powyższych zasad co do Twojej tożsamości.

Utwórz rolę dla CloudFormation

Utworzenie roli usługi dla CloudFormation na koncie development account sprawia, że generowanie zasad najmniejszych uprawnień jest mniej trudne, ponieważ łatwiej jest zidentyfikować działania podejmowane przez CloudFormation podczas tworzenia i usuwania zasobów zdefiniowanych w szablonie. Identyfikując działania podjęte przez CloudFormation, możesz utworzyć właściwą politykę uprawnień.

Aby utworzyć rolę IAM na koncie deweloperskim dla CloudFormation:

  1. Otwórz konsolę IAM i wybierz Role, a następnie Utwórz rolę.
  2. Dla zaufanego podmiotu wybierz usługę AWS. Z listy usług wybierz CloudFormation.
  3. Wybierz Dalej: Uprawnienia.
  4. Wybierz jedną lub więcej zasad uprawnień, które są zgodne z typami zasobów, które tworzy Twój stos. Na przykład, jeśli stos tworzy funkcję Lambda i rolę uprawnień, wybierz zasady AWSLambda_FullAccess i IAMFullAccess.

Uwaga: Ponieważ nie utworzono jeszcze zasady uprawnień najmniejszych uprawnień, rola posiada uprawnienia obszerniejsze niż wymagane. Użyjesz tej roli, aby uruchomić swój stos i ocenić wynikające z tego działania podejmowane przez CloudFormation w celu zbudowania polityki niższych uprawnień.

  1. Wybierz Dalej: Tagi, aby kontynuować.
  2. Wprowadź jeden lub więcej opcjonalnych znaczników, a następnie wybierz Dalej: Przejrzyj.
  3. Wprowadź nazwę roli, na przykład CloudFormationDevExecRole.
  4. Wybierz Utwórz rolę.

Utwórz i usuń stos

Aby CloudFormation wykonał czynności wymagane przez stos, musisz utworzyć i zniszczyć stos.

Aby utworzyć i usunąć stos:

  1. Przejdź do CloudFormation w konsoli, rozwiń menu w lewym panelu i wybierz Stosy.
  2. Na stronie Stosy wybierz Utwórz stos, a następnie wybierz Z nowymi zasobami.
  3. Wybierz Szablon jest gotowy, wybierz Prześlij plik szablonu, a następnie wybierz plik szablonu. Wybierz Dalej.
  4. Wprowadź nazwę stosu, a następnie wybierz Dalej.
  5. W polu IAM execution role name wybierz nazwę roli utworzonej w poprzedniej sekcji (CloudFormationDevExecRole). Wybierz Dalej.
  6. Sprawdź konfigurację stosu. Jeśli jest obecny, zaznacz pola wyboru w sekcji Możliwości, a następnie wybierz Utwórz stos.
  7. Poczekaj, aż stos osiągnie stan CREATE_COMPLETE przed kontynuowaniem.
  8. Z listy stosów wybierz właśnie utworzony stos, wybierz Usuń, a następnie wybierz Usuń stos.
  9. Poczekaj, aż stos osiągnie stan DELETE_COMPLETE (w tym czasie zniknie również z listy aktywnych stosów).

Uwaga: Zaleca się również zmodyfikowanie szablonu CloudFormation i zaktualizowanie stosu w celu zainicjowania aktualizacji wdrożonych zasobów. Umożliwi to Access Analyzer przechwytywanie akcji, które aktualizują zasoby stosu, a także tworzenie i usuwanie akcji. Należy również przejrzeć dokumentację interfejsu API dotyczącą zasobów używanych w stosie i określić wszelkie dodatkowe czynności, które mogą być wymagane.

Teraz, gdy środowisko programistyczne jest gotowe, możesz utworzyć zasady uprawnień z najniższymi uprawnieniami dla roli CloudFormation.

Użyj narzędzia Access Analyzer, aby wygenerować szczegółową politykę tożsamości

Access Analyzer przegląda historię dostępu w AWS CloudTrail, aby zidentyfikować działania, których użyła rola IAM. Ze względu na to, że CloudTrail dostarcza dzienniki w ciągu średnio około 15 minut od wywołania interfejsu API, należy odczekać co najmniej tyle czasu po usunięciu stosu przed próbą wygenerowania zasad, aby prawidłowo przechwycić wszystkie akcje.

Uwaga: CloudTrail musi być aktywowany na Twoim koncie AWS, aby generowanie zasad mogło działać. Aby dowiedzieć się, jak utworzyć ślad CloudTrail, zobacz Tworzenie śladu dla konta AWS w Podręczniku użytkownika AWS CloudTrail.

Aby wygenerować politykę uprawnień za pomocą programu Access Analyzer:

  1. Otwórz konsolę IAM i wybierz Role. W polu wyszukiwania wprowadź CloudFormationDevExecRole i wybierz nazwę roli z listy.
  2. Na karcie Uprawnienia przewiń w dół i wybierz Generuj politykę na podstawie zdarzeń CloudTrail, aby rozwinąć tę sekcję. Wybierz Generuj zasady.
  3. Wybierz okres czasu dzienników CloudTrail, które chcesz przeanalizować.
  4. Wybierz region AWS, w którym utworzyłeś i usunąłeś stos, a następnie wybierz nazwę śladu CloudTrail z listy rozwijanej.
  5. Jeśli generujesz zasady po raz pierwszy, wybierz opcję Utwórz i użyj nowej roli usługi, aby automatycznie utworzyć dla Ciebie rolę uprawnień. Możesz wyświetlić zasady uprawnień, które otrzyma rola, wybierając Wyświetl szczegóły uprawnień. W przeciwnym razie wybierz Użyj istniejącej roli usługi i wybierz rolę z listy rozwijanej. Opcje generowania polis przedstawiono na rysunku nr 1.
  1. Wybierz Wygeneruj zasady.

Rysunek 1: Opcje generowania polityki

Rysunek 1: Opcje generowania polityki

Zostaniesz przekierowany z powrotem do strony, która pokazuje rolę CloudFormationDevExecRole. Stan w sekcji Generuj zasady na podstawie zdarzeń CloudTrail będzie wyświetlany jako w toku. Poczekaj na wygenerowanie polityki, po czym status zmieni się na Powodzenie.

 

Przejrzyj wygenerowane zasady

Musisz przejrzeć i zapisać wygenerowaną zasadę, zanim będzie można ją zastosować do roli.

Aby przejrzeć wygenerowaną zasadę:

1. Podczas gdy nadal wyświetlasz rolę CloudFormationDevExecRole w konsoli IAM, w obszarze Generuj zasady na podstawie zdarzeń CloudTrail wybierz Wyświetl wygenerowane zasasdy.

2. Otworzy się strona Wygenerowane zasady. Akcje zawarte w sekcji wygenerowanych zasad pokażą listę usług i jedną lub więcej akcji, które zostały znalezione w dzienniku CloudTrail. Przejrzyj listę pod kątem pominięć. Zapoznaj się z dokumentacją uprawnień, aby uzyskać listę usług AWS, dla których można wygenerować zasady na poziomie działania. Przykładową listę usług i akcji dla szablonu CloudFormation tworzącego funkcję Lambda pokazano na rysunku nr 2.

Rysunek 2: Działania uwzględnione w wygenerowanej polityce

Rysunek 2: Działania uwzględnione w wygenerowanej polityce

3. Użyj menu rozwijanych w sekcji Dodaj akcje dla używanych usług, aby dodać wszelkie niezbędne dodatkowe akcje do zasad dla usług, które zostały zidentyfikowane przy użyciu CloudTrail. Może to być potrzebne, jeśli akcja nie jest rejestrowana w CloudTrail lub jeśli informacje na poziomie akcji nie są obsługiwane przez usługę.

Uwaga: Akcja iam:PassRole nie pojawi się w CloudTrail i należy ją dodać ręcznie, jeśli Twój szablon CloudFormation przypisuje rolę IAM do usługi (na przykład podczas tworzenia funkcji Lambda). Dobrą zasadą jest: jeśli widzisz w akcjach iam:CreateRole, prawdopodobnie musisz również zezwolić na iam:PassRole. Przykład tego pokazano na rysunku nr 3.

Rysunek 3: Dodawanie PassRole jako akcji uprawnień

Rysunek 3: Dodawanie PassRole jako akcji uprawnień

4. Kiedy zakończyłeś dodawanie doddatkowych akcji, wybierz Dalej.

Wygenerowane polityki zawierają symbole zastępcze, które należy wypełnić nazwami zasobów, nazwami regionów AWS i innymi zmiennymi danymi. Rzeczywiste wartości tych symboli zastępczych należy określić na podstawie zawartości szablonu CloudFormation i regionu lub regionów, w których planujesz wdrożyć szablon.

Aby zastąpić symbole zastępcze prawdziwymi wartościami:

  • W wygenerowanej zasadzie zidentyfikuj wszystkie właściwości zasobów, które w wartości używają symboli zastępczych, na przykład ${RoleNameWithPath} lub ${Region}. Wykorzystaj swoją wiedzę o zasobach, które tworzy Twój szablon CloudFormation, aby odpowiednio wypełnić je prawdziwymi wartościami.
    • ${RoleNameWithPath} to przykład symbolu zastępczego, który odzwierciedla nazwę zasobu z szablonu CloudFormation. Zastąp symbol zastępczy rzeczywistą nazwą zasobu.
    • ${Region} to przykład symbolu zastępczego, który odzwierciedla miejsce wdrażania zasobu, czyli w tym przypadku region AWS. Zastąp go nazwą regionu (na przykład us-east-1) lub symbolem wieloznacznym (*), w zależności od tego, czy chcesz ograniczyć politykę odpowiednio do określonego regionu, czy do wszystkich regionów.

Dla przykładu poniżej przedstawiono oświadczenie z wygenerowanej wcześniej polityki.

{
    "Effect": "Allow",
    "Action": [
        "lambda:CreateFunction",
        "lambda:DeleteFunction",
        "lambda:GetFunction",
        "lambda:GetFunctionCodeSigningConfig"
    ],
    "Resource": "arn:aws:lambda:${Region}:${Account}:function:${FunctionName}"
},

Po podstawieniu wartości rzeczywistych dla symboli zastępczych w Zasobie wygląda to następująco:

{
    "Effect": "Allow",
    "Action": [
        "lambda:CreateFunction",
        "lambda:DeleteFunction",
        "lambda:GetFunction",
        "lambda:GetFunctionCodeSigningConfig"
    ],
    "Resource": "arn:aws:lambda:*:123456789012:function:MyLambdaFunction"
},

Ta instrukcja umożliwia wykonywanie akcji Lambda na funkcji o nazwie MyLambdaFunction na koncie AWS 123456789012 w dowolnym regionie (*). Zastąp w zasadach prawidłowymi wartościami Region, Account i FunctionName.

Okno edytora zasad uprawnień automatycznie zidentyfikuje zabezpieczenia lub inne problemy w wygenerowanej zasadzie. Przejrzyj i napraw problemy zidentyfikowane na kartach Zabezpieczenia, Błędy, Ostrzeżenia i Sugestie w dolnej części okna.

Aby przejrzeć i rozwiązać problemy związane z zasadami:

1. Użyj zakładki Błędy u dołu okna edytora zasad IAM (obsługiwanej przez weryfikację zasad IAM Access Analyzer), aby zidentyfikować wszystkie symbole zastępcze, które nadal wymagają wymiany. Sprawdzanie poprawności zasad programu Access Analyzer umożliwia przeglądanie zasad i udostępnia wyniki, które obejmują ostrzeżenia dotyczące zabezpieczeń, błędy, ostrzeżenia ogólne i sugestie dotyczące zasad. Aby znaleźć więcej informacji na temat różnych weryfikacji, zobacz Access Analyzer policy validation. Przykład błędów zasady spowodowanych przez symbole zastępcze nadal obecne w zasadach pokazano na rysunku nr 4.

Rysunek 4: Błędy zidentyfikowane w wygenerowanej polityce

Rysunek 4: Błędy zidentyfikowane w wygenerowanej polityce

2. Użyj zakładki Zabezpieczenia na dole okna edytora, aby przejrzeć wszelkie ostrzeżenia dotyczące zabezpieczeń, takie jak przekazywanie zasobu wieloznacznego (*) z uprawnieniem iam:PassRole. Wybierz link Dowiedz się więcej obok każdego ostrzeżenia, aby uzyskać informacje na temat środków zaradczych. Przykład ostrzeżenia dotyczącego bezpieczeństwa związanego z PassRole pokazano na rysunku nr 5.

Rysunek 5: Ostrzeżenia dotyczące bezpieczeństwa zidentyfikowane w wygenerowanej polityce

Rysunek 5: Ostrzeżenia dotyczące bezpieczeństwa zidentyfikowane w wygenerowanej polityce.

Usuń ostrzeżenie PassRole With Star In Resource, modyfikując Resource w instrukcji iam:PassRole, aby wyświetlić nazwę zasobów Amazon (ARN) wszystkich ról, które CloudFormation musi przekazać innym usługom. Dodatkowo dodaj warunek, aby ograniczyć usługę, do której można przekazać rolę. Na przykład, aby umożliwić przekazanie roli o nazwie MyLambdaRole do usługi Lambda, instrukcja wyglądałaby następująco:

{
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/MyLambdaRole"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "lambda.amazonaws.com"
                    ]
                }
            }
        }

Wygenerowane zasady można teraz zapisać jako zasady uprawnień.

Aby zapisać wygenerowane zasady:

  1. W oknie edytora zasad IAM wybierz Dalej.
  2. Wprowadź nazwę polityki i opcjonalny opis.
  3. Przejrzyj sekcję Podsumowanie z listą uprawnień w zasadach.
  4. Wprowadź opcjonalne znaczniki w sekcji Znaczniki.
  5. Wybierz Utwórz i dołącz zasady.

Przetestuj tę zasadę, zastępując istniejącą zasadę ról nowo wygenerowaną. Następnie ponownie utwórz i zniszcz stos, aby uzyskać niezbędne uprawnienia. Jeśli akcja nie powiedzie się podczas tworzenia lub usuwania, podejmij kroki, aby ponownie wygenerować zasady i upewnij się, że dla wszystkich instrukcji iam:PassRole są używane prawidłowe wartości.

Wdrażanie roli i zasad CloudFormation

Teraz, gdy masz utworzoną zasadę najmniej istotnych uprawnień, możesz przekazać tę zasadę administratorowi chmury, aby mógł wdrożyć zasady i rolę usługi CloudFormation w środowisku produkcyjnym.

Aby utworzyć szablon CloudFormation, z którego może korzystać administrator chmury:

1. Otwórz konsolę IAM, wybierz Zasady, a następnie użyj pola wyszukiwania, aby wyszukać utworzone zasady. Wybierz nazwę zasady z listy.

2. Na karcie Uprawnienia upewnij się, że przycisk {}JSON jest aktywny. Wybierz dokument polityki, podświetlając od wiersza 1 do ostatniego wiersza polityki, jak pokazano na rysunku nr 6.

Rysunek 6: Podświetlanie wygenerowanej polityki

Rysunek 6: Podświetlanie wygenerowanej polityki

3. Gdy zasada jest nadal wyszczególniona, ​​użyj klawiatury, aby skopiować zasadę do schowka (Ctrl-C w systemie Linux lub Windows, Option-C w systemie macOS).

4. Wklej obiekt JSON polityki uprawnień do następującego szablonu CloudFormation, zastępując znacznik . Pamiętaj, aby wciąć nawiasy klamrowe z lewej strony obiektu JSON, tak aby znajdowały się po prawej stronie słowa kluczowego PolicyDocument.

AWSTemplateFormatVersion: '2010-09-09'

Parameters:
  PolicyName:
    Type: String
    Description: The name of the IAM policy that will be created

  RoleName:
    Type: String
    Description: The name of the IAM role that will be created

Resources:
  CfnPolicy:
    Type: AWS::IAM::ManagedPolicy
    Properties:
      ManagedPolicyName: !Ref PolicyName
      Path: /
      PolicyDocument: >
        

  CfnRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: !Ref RoleName
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Action:
            - sts:AssumeRole
            Effect: Allow
            Principal:
              Service:
                - cloudformation.amazonaws.com
      ManagedPolicyArns:
        - !Ref CfnPolicy
      Path: /

Na przykład po wklejeniu zasad zasób CfnPolicy w szablonie będzie wyglądał następująco:

CfnPolicy:
    Type: AWS::IAM::ManagedPolicy
    Properties:
      ManagedPolicyName: !Ref PolicyName
      Path: /
      PolicyDocument: >
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": "ec2:DescribeNetworkInterfaces",
                    "Resource": [
                        "*"
                    ]
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "iam:AttachRolePolicy",
                        "iam:CreateRole",
                        "iam:DeleteRole",
                        "iam:DetachRolePolicy",
                        "iam:GetRole"
                    ],
                    "Resource": [
                        "arn:aws:iam::123456789012:role/MyLambdaRole"
                    ]
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "lambda:CreateFunction",
                        "lambda:DeleteFunction",
                        "lambda:GetFunction",
                        "lambda:GetFunctionCodeSigningConfig"
                    ],
                    "Resource": [
                        "arn:aws:lambda:*:123456789012:function:MyLambdaFunction"
                    ]
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "iam:PassRole"
                    ],
                    "Resource": [
                        "arn:aws:iam::123456789012:role/MyLambdaRole"
                    ],
                    "Condition": {
                        "StringEquals": {
                            "iam:PassedToService": [
                                "lambda.amazonaws.com"
                            ]
                        }
                    }
                }
            ]
        }

5. Zapisz szablon CloudFormation i udostępnij go administratorowi chmury. Może używać tego szablonu do tworzenia zasad roli i uprawnień, których CloudFormation może używać do wdrażania zasobów na koncie produkcyjnym.

Uwaga: upewnij się, że oprócz posiadania niezbędnych uprawnień do pracy z CloudFormation Twoja tożsamość produkcyjna posiada również uprawnienia do wykonywania akcji iam:PassRole z CloudFormation dla roli utworzonej przez poprzedni szablon.

Kontynuując rozwijanie swojego stosu, będziesz musiał powtórzyć kroki opisane w sekcji Użyj narzędzia Access Analyzer, aby utworzyć politykę uprawnień i wdrożyć sekcje dotyczące roli i zasad CloudFormation w tym artykule, aby upewnić się, że zasady uprawnień pozostają aktualne z uprawnieniami wymaganymi do wdrożenia stosu.

Warto rozważyć

Jeśli Twój szablon CloudFormation używa niestandardowych zasobów, które są wspierane przez AWS Lambda, powinieneś również uruchomić Access Analyzer na roli IAM utworzonej dla funkcji Lambda, aby zbudować odpowiednią politykę uprawnień dla tej roli.

Aby wygenerować politykę uprawnień dla roli usługi Lambda:

  1. Uruchom stos na swoim deweloperskim koncie AWS, aby utworzyć rolę funkcji Lamba.
  2. Zanotuj nazwę utworzonej roli.
  3. Zniszcz stos na swoim koncie deweloperskim AWS.
  4. Postępuj zgodnie z instrukcjami z narzędzia Use Access Analyzer, aby wygenerować szczegółową politykę tożsamości i przejrzyj sekcje wygenerowanych polityk w tym poście, aby utworzyć politykę najmniej istotnych uprawnień dla roli, zastępując nazwę roli funkcji Lambda nazwą CloudFormationDevExecRole.
  5. Skompiluj powstałą politykę najmniej uprzywilejowanych uprawnień do szablonu CloudFormation jako politykę uprawnień funkcji Lambda.

Podsumowanie

IAM Access Analyzer pomaga generować szczegółowe zasady tożsamości, których można użyć do przyznania CloudFormation uprawnień potrzebnych do tworzenia, aktualizowania i usuwania zasobów w stosie. Przyznając CloudFormation tylko niezbędne uprawnienia, możesz zastosować zasadę najmniejszego uprzywilejowania, programiści mogą wdrażać swoje stosy w środowisku produkcyjnym przy użyciu ograniczonych uprawnień, a administratorzy chmury mogą tworzyć bariery ochronne dla programistów w ustawieniach produkcyjnych.

Aby uzyskać dodatkowe informacje na temat stosowania zasady najmniejszego uprzywilejowania do AWS CloudFormation, zobacz How to implement the principle of least privilege with CloudFormation StackSets.

źródło: AWS

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.