Identitet, resurs och gräns

Använda AWS-säkerhet för utvecklare

Rahul Singh

Technical Product Manager

Vilken policy gäller?

Ändringen som inte gör skillnad

  • Kapitel ett: explicit nekande, eller inget tillåtande
  • Här: en tredje orsak

En förfrågan som möter en stapel med tre policykontroller, med ett frågetecken där beslutet skulle fattas.

Använda AWS-säkerhet för utvecklare

Vilken policy gäller?

Upp till tre lager

  1. Identitetspolicy på anroparen
  2. Resurspolicy på resursen
  3. Gräns ovanför, drar bara bort

I ditt eget konto räcker det att en policy tillåter

Nekas av vilket lager som helst

En förfrågan flödar uppifrån och ner genom tre kontroller i ordning, en identitetspolicy, en resurspolicy och en behörighetsgräns, innan den når ett tillåtet resultat.

Använda AWS-säkerhet för utvecklare

Två platser en policy kan finnas

Identitetsbaserad policy

  • Kopplad till anroparen
  • Vad identiteten får göra
  • Ett pass du bär

En roll högst upp bär en identitetsbaserad policy, med utrymme nedanför för resurssidan av samma förfrågan.

Använda AWS-säkerhet för utvecklare

Två platser en policy kan finnas

Identitetsbaserad policy

  • Kopplad till anroparen
  • Vad identiteten får göra
  • Ett pass du bär

Resursbaserad policy

  • Kopplad till resursen
  • Vem som får röra den
  • Behövs för anropare från andra konton

En roll högst upp bär en identitetsbaserad policy medan en S3-bucket nedanför bär en resursbaserad policy, och en förfrågan rör sig nedåt mellan dem.

Använda AWS-säkerhet för utvecklare

Hanterad åt dig, eller av dig

Två typer av identitetsbaserade policyer

  • AWS-hanterad: ägs av AWS
  • Kundhanterad: ägs av dig

Två staplade kort jämför en AWS-hanterad policy, ägd av AWS och bred som standard, med en kundhanterad policy, ägd av dig och avgränsad till uppgiften.

Använda AWS-säkerhet för utvecklare

Hanterad åt dig, eller av dig

Två typer av identitetsbaserade policyer

  • AWS-hanterad: ägs av AWS
  • Kundhanterad: ägs av dig

 

Bekvämlighet eller precision

  • AWS-hanterad: snabbt igång
  • Kundhanterad: minsta möjliga behörighet

Två staplade kort jämför en AWS-hanterad policy, ägd av AWS och bred som standard, med en kundhanterad policy, ägd av dig och avgränsad till uppgiften.

Använda AWS-säkerhet för utvecklare

En gräns begränsar vad en policy ger

Varför ett konto kopplar in en gräns

  • Utvecklare skapar roller, ingen eskalerar

Behörighetsgräns

  • Ett tak för vad en policy ger
  • Effektivt: tillåtet av båda

Tre behörigheter som ges av en identitetspolicy går vidare ner genom en behörighetsgräns som bara tillåter S3-åtgärder, där behörigheten iam:CreateUser stoppas medan de andra två fortsätter in i de effektiva behörigheterna nedanför.

Använda AWS-säkerhet för utvecklare

En gräns begränsar vad en policy ger

Varför ett konto kopplar in en gräns

  • Utvecklare skapar roller, ingen eskalerar

Behörighetsgräns

  • Ett tak för vad en policy ger
  • Effektivt: tillåtet av båda

Varför iam:CreateUser inte gjorde något

  • Drar bara bort, ger aldrig

Tre behörigheter som ges av en identitetspolicy går vidare ner genom en behörighetsgräns som bara tillåter S3-åtgärder, där behörigheten iam:CreateUser stoppas medan de andra två fortsätter in i de effektiva behörigheterna nedanför.

Använda AWS-säkerhet för utvecklare

En gräns begränsar vad en policy ger

Varför ett konto kopplar in en gräns

  • Utvecklare skapar roller, ingen eskalerar

Behörighetsgräns

  • Ett tak för vad en policy ger
  • Effektivt: tillåtet av båda

Varför iam:CreateUser inte gjorde något

  • Drar bara bort, ger aldrig

Sessionspolicy: en AssumeRole-session

Tre behörigheter som ges av en identitetspolicy går vidare ner genom en behörighetsgräns som bara tillåter S3-åtgärder, där behörigheten iam:CreateUser stoppas medan de andra två fortsätter in i de effektiva behörigheterna nedanför.

Använda AWS-säkerhet för utvecklare

Ett villkor begränsar tillåtandet

Villkorsnyckel

  • Begränsar ett tillåtande till förfrågans kontext

  • aws:SourceIp: nätverket den kom från

Ett tillåtande att läsa ett S3-objekt passerar genom ett villkorsband med en källnätverksnyckel och en anropartaggnyckel, och delar sig sedan i en tillåten väg där kontexten matchar och en nekad väg där den inte gör det.

Använda AWS-säkerhet för utvecklare

Ett villkor begränsar tillåtandet

Villkorsnyckel

  • Begränsar ett tillåtande till förfrågans kontext

  • aws:SourceIp: nätverket den kom från

  • aws:PrincipalTag: en tagg på anroparen

ABAC: attributbaserad åtkomstkontroll

  • En policy, många identiteter

Ett tillåtande att läsa ett S3-objekt passerar genom ett villkorsband med en källnätverksnyckel och en anropartaggnyckel, och delar sig sedan i en tillåten väg där kontexten matchar och en nekad väg där den inte gör det.

Använda AWS-säkerhet för utvecklare

En tabell, en klient i taget

En delad tabell

  • DynamoDB, en partitionsnyckel per klient
  • Inte isolering i sig

En anropare från klient A passerar genom ett villkor om ledande nycklar in i en delad DynamoDB-tabell, där rader för klient A returneras och rader för klient B och klient C blockeras.

Använda AWS-säkerhet för utvecklare

En tabell, en klient i taget

"Condition": {
  "ForAllValues:StringEquals": {
    "dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
  }
}

En delad tabell

  • DynamoDB, en partitionsnyckel per klient
  • Inte isolering i sig

Ett villkor begränsar den

  • ForAllValues: varje angiven nyckel måste matcha
Använda AWS-säkerhet för utvecklare

En tabell, en klient i taget

"Action": ["dynamodb:Query", "dynamodb:GetItem", "dynamodb:Scan"],
"Condition": {
  "ForAllValues:StringEquals": {
    "dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
  }
}

En delad tabell

  • DynamoDB, en partitionsnyckel per klient
  • Inte isolering i sig

Ett villkor begränsar den

  • ForAllValues: varje angiven nyckel måste matcha
Luckan som kvarstår: alla förfrågningar anger inte en partition
  • dynamodb:Scan anger ingen, så inget kan misslyckas
Använda AWS-säkerhet för utvecklare

Nu kör vi en övning!

Använda AWS-säkerhet för utvecklare

Preparing Video For Download...