Hva vil vi dekke?
I denne guiden vil vi se hvordan du bruker tillatelsen “IAM Passrole”. Som et spesifikt eksempel vil vi se hvordan du kan koble en EC2 -forekomst med S3 -bøtta ved hjelp av passroletillatelse.
Viktige vilkår og konsepter
AWS servicerolle: Det er en rolle som en tjeneste antas, slik at den kan utføre oppgavene på vegne av brukeren eller kontoinnehaveren.
AWS servicerolle for en EC2 -forekomst: Det er en rolle påtatt av en applikasjon som kjører på en Amazon EC2 -forekomst for å utføre oppgavene på brukerkontoen som er tillatt av denne rollen.
AWS-tjenestekoblet rolle: Det er en rolle som er forhåndsdefinert og direkte knyttet til en AWS-tjeneste, som RDS-tjenestekoblet rolle for å lansere en RDS DB.
Bruke passrolet tillatelse til å koble en EC2 -forekomst med S3
Mange AWS -tjenester trenger en rolle for konfigurasjon, og denne rollen sendes/administreres til dem av brukeren. På denne måten antar/tar/tar tjenestene rollen og utfører oppgavene på vegne av brukeren. For de fleste tjenester må rollen sendes en gang mens den konfigurerer denne tjenesten. En bruker krever tillatelser for å overføre en rolle til en AWS -tjeneste. Dette er en god ting fra et sikkerhetssynspunkt siden administratorene kan kontrollere hvilke brukere som kan gi en rolle til en tjeneste. Tillatelsen "Passrole" er gitt av en bruker til sin IAM -bruker, rolle eller gruppe for å overføre en rolle til en AWS -tjeneste.
For å utdype det forrige konseptet, bør du vurdere en sak når en applikasjon som kjører på en EC2 -forekomst krever tilgang til S3 -bøtta. For dette kan vi knytte en IAM -rolle med denne forekomsten slik at denne applikasjonen får S3 -tillatelsen definert i rollen. Denne applikasjonen trenger midlertidig legitimasjon for autentisering og autorisasjonsformål. EC2 får midlertidig sikkerhetsopplysning når en rolle knytter seg til forekomsten som kjører vår søknad. Disse legitimasjonene blir deretter gjort tilgjengelig for vår søknad for å få tilgang til S3.
For å gi en IAM -bruker muligheten til å gi en rolle til EC2 -tjenesten på tidspunktet for å starte en forekomst, trenger vi tre ting:
La oss gjøre det på en mer pragmatisk måte. Vi har en IAM -bruker med begrenset tillatelse. Vi legger deretter til en inline -policy for å starte EC2 -forekomster og tillatelse til å gi en IAM -rolle til en tjeneste. Deretter skaper vi en rolle for S3 -tilgang; La oss kalle det "s3access". Og knytte en IAM -policy til den. I denne rollen tillater vi bare lesing av S3 -dataene ved å bruke AWS -administrerte “Amazons3ReadOnlyAccess” -politikken.
Trinn for å skape rollen
Trinn 1. Fra IAM -konsollen til administratoren (roten) klikker du på "rolle" og velger deretter "Opprett rolle".
Steg 2. Fra siden "Select Trusted Entity", velg "AWS Service" under "Trusted Entity Type".
Trinn 3. I henhold til "Brukssaken", velg alternativknappen som tilsvarer "EC2" for "brukssakene for andre AWS -tjenester":
Trinn 4. På neste side, tilordne en "Amazons3ReadOnlyAccess" -policy:
Trinn 5. Gi et navn til din rolle (“S3Access” i vårt tilfelle). Legg til en beskrivelse for denne rollen. Følgende tillitspolitikk opprettes automatisk med denne rollen:
"Versjon": "2012-10-17",
"Uttalelse": [
"Effekt": "Tillat",
"Handling": [
"STS: Assumerole"
],
"Rektor":
"Service": [
"EC2.Amazonaws.com "
]
]
Trinn 6. Klikk på "Opprett rolle" for å skape rollen:
IAM policy for brukeren
Denne policyen gir IAM -brukeren full EC2 -tillatelser og tillatelse til å knytte “S3Access” -rollen til forekomsten.
Trinn 1. Fra IAM -konsollen klikker du på policyer og deretter på "Opprett retningslinjer".
Steg 2. På den nye siden velger du JSON -fanen og lim inn følgende kode:
"Versjon": "2012-10-17",
"Uttalelse": [
"Effekt": "Tillat",
"Handling": ["EC2:*"],
"Ressurs":"*"
,
"Effekt": "Tillat",
"Handling": "IAM: Passrole",
"Ressurs": "Arn: AWS: iam :: Account_id: rolle/s3access"
]
Bytt ut den fet teksten “Konto_id”Med brukerkonto -ID.
Trinn 3. (Valgfritt) Gi koder for policyen din.
Trinn 4. Sett et passende navn for policyen ("IAM-bruker-policy" i vårt tilfelle) og klikk på "Opprett policy" -knappen og legg ved denne policyen til din IAM-bruker.
Knytte "s3access" -rollen til EC2 -forekomsten
Nå vil vi knytte denne rollen til vårt forekomst. Velg forekomst fra EC2 -konsollen og gå til “Handling> Sikkerhet> Endre IAM -rolle”. På den nye siden velger du "S3Access" -rollen fra rullegardinmenyen og lagrer den.
Verifisere oppsettet
Nå vil vi sjekke om EC2 -forekomsten vår er i stand til å få tilgang til vår S3 -bøtte opprettet av administratoren. Logg inn i EC2 -forekomsten og installer AWS CLI -applikasjonen. Kjør nå følgende kommando på denne EC2 -forekomsten:
$ aws s3 ls
Igjen, kjør den forrige kommandoen fra IAM -kontoen som er konfigurert på din lokale maskin. Du vil legge merke til at kommandoen blir utført på EC2 -forekomsten, men vi fikk en "Access Nekt" -feil på den lokale maskinen:
Feilen er åpenbar fordi vi bare har gitt S3 -tilgangstillatelse for EC2 -forekomsten, men ikke til IAM -brukeren og til noen annen AWS -tjeneste. En annen viktig ting å merke seg er at vi ikke gjorde bøtta og dens gjenstander offentlig tilgjengelig.
Konklusjon
I denne guiden demonstrerte vi hvordan vi bruker passroletillatelse i AWS. Vi klarte vellykket å koble EC2 til S3. Det er et veldig viktig konsept hvis du bryr deg om å gi minst privilegier til dine IAM -brukere.