Bezpieczeństwo AWS dla deweloperów
Rahul Singh
Technical Product Manager
Zmiana, która nic nie zmienia

Maksymalnie trzy warstwy
We własnym koncie wystarczy zezwolenie z jednej zasady
Odmowa z dowolnej napotkanej warstwy

Zasada oparta na tożsamości

Zasada oparta na tożsamości
Zasada oparta na zasobie

Dwa rodzaje zasad opartych na tożsamości

Dwa rodzaje zasad opartych na tożsamości
Wygoda czy precyzja

Dlaczego konto ją dołącza
Granica uprawnień

Dlaczego konto ją dołącza
Granica uprawnień
Dlaczego iam:CreateUser nic nie dało

Dlaczego konto ją dołącza
Granica uprawnień
Dlaczego iam:CreateUser nic nie dało
Zasada sesji: jedna sesja AssumeRole

Klucz warunku
Zawęża zezwolenie do kontekstu żądania
aws:SourceIp: sieć, z której przyszło żądanie

Klucz warunku
Zawęża zezwolenie do kontekstu żądania
aws:SourceIp: sieć, z której przyszło żądanie
aws:PrincipalTag: tag na wywołującymABAC: kontrola dostępu oparta na atrybutach

Jedna współdzielona tabela

"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
}
}
Jedna współdzielona tabela
Jeden warunek to zawęża
ForAllValues: każdy podany klucz musi pasować"Action": ["dynamodb:Query", "dynamodb:GetItem", "dynamodb:Scan"],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
}
}
Jedna współdzielona tabela
Jeden warunek to zawęża
ForAllValues: każdy podany klucz musi pasowaćdynamodb:Scan nie podaje żadnej, więc nic nie może nie przejśćBezpieczeństwo AWS dla deweloperów