Puncte:0

Profilul IAM permite crearea subrețelei VPC IPV6 în unele regiuni. De ce eșuează în alte regiuni?

drapel br

Într-un mediu de testare pentru a simula o problemă mai mare, am un utilizator IAM cu un profil IAM direct atașat. Am încercat și cu profilul atașat unui rol IAM pe care și l-a asumat utilizatorul IAM.

Profilul permite CloudFormation să creeze un VPC cu IPv6CidrBlock și subrețea IPv6Cidr. Această stivă cloud este întotdeauna creată bine în us-east-1 și în alte regiuni. După teste ulterioare, alte regiuni eșuează întotdeauna. Crearea subrețelei IPv6 eșuează. Investigația a constatat că o acțiune suplimentară de profil IAM, „ec2:DescribeNetworkAcls” este necesară pentru unele regiuni. De exemplu, us-east-1 și eu-west-2 nu necesită acțiune suplimentară. eu-central-1 și alte câteva regiuni necesită acțiunea suplimentară a profilului IAM.

  1. Există vreun motiv cunoscut pentru această cerință diferită între regiuni? Există vreo setare de serviciu EC2 sau VPC care poate fi interogată pentru a vedea diferența?
  2. De ce CloudTrail nu înregistrează mesajul de eroare când profilului IAM lipsește acțiunea „ec2:DescribeNetworkAcls”?
  3. Pentru regiunile anterioare eșuate, când acțiunea este adăugată la profilul IAM, la retestare, CloudTrail nu înregistrează evenimentul de succes numit „DescribeNetworkAcls”, deși înregistrează toate celelalte evenimente asociate.

Eroarea afișată în CloudFormation, deși nu în CloudTrail:

„ResourceStatus”: „CREATE_FAILED”,
LogicalId: subrețea,
„ResourceStatusReason”: 
„Imposibil de preluat atributul Ipv6CidrBlocks pentru AWS::EC2::VPC, cu mesaj de eroare Nu sunteți autorizat să efectuați această operațiune. (Serviciul: Ec2, Cod de stare: 403, ID cerere: XXX, ID cerere extins: nul). .

Când apare eroarea, adăugarea următoarei acțiuni de politică IAM rezolvă problema. Deși, totuși, acest eventName nu este niciodată înregistrat de CloudTrail:

„ec2:DescribeNetworkAcls”

Șablon de formare a norilor:

---
AWSTemplateFormatVersion: '2010-09-09'
Descriere: „Stiva de testare”
Resurse:
  VPC:
    Tip: AWS::EC2::VPC
    Proprietăți:
      CidrBlock: 172.16.0.0/16
      EnableDnsSupport: adevărat
      EnableDnsHostnames: adevărat
      InstanceTenancy: implicit

  VPCIPv6:
    Tip: AWS::EC2::VPCCidrBlock
    Proprietăți:
      AmazonProvidedIpv6CidrBlock: adevărat
      VpcId: !Ref VPC

  Subrețea:
    Tip: AWS::EC2::Subnet
    Depinde de:
      - VPCIPv6
    Proprietăți:
      CidrBlock: 172.16.254.0/23
      Ipv6CidrBlock: !Selectați [0, !Cidr [!Selectați [0, !GetAtt 'VPC.Ipv6CidrBlocks'], 1, 64]]
      MapPublicIpOnLaunch: fals
      VpcId: !Ref VPC

Politica IAM

{
    „Versiune”: „2012-10-17”,
    "Afirmație": [
        {
            "Sid": "CloudFormationStackActions",
            „Efect”: „Permite”,
            "Acțiune": [
                „cloudformation:CreateStack”,
                „cloudformation:UpdateStack”,
                „cloudformation:DescribeStacks”,
                „cloudformation:DescribeStackEvents”,
                „cloudformation:ListStackResources”
            ],
            „Resurse”: [
                "*"
            ]
        },
        {
        {
            „Sid”: „TESTINGVPCIPv6Subnet”,
            „Efect”: „Permite”,
            "Acțiune": [
                "ec2:CreateVpc",
                "ec2:CreateSubnet",
                „ec2:AssociateVpcCidrBlock”,
                „ec2:AssociateSubnetCidrBlock”,
                „ec2:ModifyVpcAttribute”,
                „ec2:DescribeVpcAttribute”,
                „ec2:DescribeVpcs”,
                „ec2:DescribeSubnets”
            ],
            „Resurse”: [
                "*"
            ]
        }
    ]
}

A reproduce:

  • Salvați textul de formare a norului de mai sus într-un fișier numit „a-test-stack-template.yaml”
  • Setați variabila bash temporară numită aws_cred_profile cu numele profilului aws credentials care va fi folosit pentru comenzile aws cli. Acreditările ar trebui să fie ale utilizatorului IAM cu profilul IAM de mai sus atașat. Utilizați implicit dacă există un singur set de acreditări
aws_cred_profile=implicit
  • Comenzi AWS CLI pentru a testa macheta:
aws_region=eu-central-1

# aws cli create-stack
test_env=$(aws cloudformation create-stack --region $aws_region --no-cli-pager \
--profile $aws_cred_profile --disable-rollback \
--stack-name test-$(data +%Y%b%d-%H%M%S) \
--template-body file://a-test-stack-template.yaml \
| sed -r -e 's/.*:stiva\/(.*)\/.*/\1/' | sed '1d' | sed '2d')

echo $test_env

# repetă apelurile către list-stack-resources până când crearea stivei este completă
aws cloudformation list-stack-resources --region $aws_region --no-cli-pager \
--stack-name=$test_env --max-items=3

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.