Ідентичність, ресурс і межа

Використання AWS Security для розробників

Rahul Singh

Technical Product Manager

Яка політика головна?

Редагування, що нічого не змінює

  • Розділ перший: явна відмова або відсутність дозволу
  • Тут: третя причина

Запит стикається зі стеком із трьох перевірок політик, зі знаком питання на місці рішення.

Використання AWS Security для розробників

Яка політика головна?

До трьох шарів

  1. Політика ідентичності на викликачу
  2. Політика ресурсу на ресурсі
  3. Межа зверху, лише віднімає

У вашому обліковому записі досить дозволу будь-якої з них

Відмова на будь-якому шарі блокує

Запит прямує згори донизу через три перевірки: політика ідентичності, політика ресурсу та межа дозволів, після чого отримує дозвіл.

Використання AWS Security для розробників

Де може «жити» політика: два місця

Політика на основі ідентичності

  • Прикріплена до викликувача
  • Визначає, що ця ідентичність може робити
  • Перепустка, яку ви «носите»

Роль угорі має політику на основі ідентичності, нижче є місце для ресурсної частини того ж запиту.

Використання AWS Security для розробників

Де може «жити» політика: два місця

Політика на основі ідентичності

  • Прикріплена до викликувача
  • Визначає, що ця ідентичність може робити
  • Перепустка, яку ви «носите»

Політика на основі ресурсу

  • Прикріплена до ресурсу
  • Хто може його торкатися
  • Потрібна для міжоблікових викликів

Роль угорі має політику на основі ідентичності, а бакет S3 внизу має політику на основі ресурсу; між ними проходить запит.

Використання AWS Security для розробників

Керують за вас або ви самі

Два види політик ідентичності

  • Керована AWS: належить AWS
  • Керована клієнтом: належить вам

Дві картки порівнюють політику, керовану AWS (належить AWS, широка за замовчуванням), і політику, керовану клієнтом (належить вам, обмежена завданням).

Використання AWS Security для розробників

Керують за вас або ви самі

Два види політик ідентичності

  • Керована AWS: належить AWS
  • Керована клієнтом: належить вам

 

Зручність чи точність

  • Керована AWS: швидкий старт
  • Керована клієнтом: найменші привілеї

Дві картки порівнюють політику, керовану AWS (належить AWS, широка за замовчуванням), і політику, керовану клієнтом (належить вам, обмежена завданням).

Використання AWS Security для розробників

Межа обмежує те, що надає політика

Навіщо обліковий запис додає її

  • Розробники створюють ролі, ніхто не ескалує

Межа дозволів

  • Стеля для того, що надає політика
  • Ефективні дозволи: має дозволити обидві

Три дозволи з політики ідентичності проходять через межу дозволів, що дозволяє лише дії S3: `iam:CreateUser` зупинено, інші два переходять до ефективних дозволів нижче.

Використання AWS Security для розробників

Межа обмежує те, що надає політика

Навіщо обліковий запис додає її

  • Розробники створюють ролі, ніхто не ескалує

Межа дозволів

  • Стеля для того, що надає політика
  • Ефективні дозволи: має дозволити обидві

Чому iam:CreateUser нічого не дав

  • Лише віднімає, ніколи не надає

Три дозволи з політики ідентичності проходять через межу дозволів, що дозволяє лише дії S3: `iam:CreateUser` зупинено, інші два переходять до ефективних дозволів нижче.

Використання AWS Security для розробників

Межа обмежує те, що надає політика

Навіщо обліковий запис додає її

  • Розробники створюють ролі, ніхто не ескалує

Межа дозволів

  • Стеля для того, що надає політика
  • Ефективні дозволи: має дозволити обидві

Чому iam:CreateUser нічого не дав

  • Лише віднімає, ніколи не надає

Політика сеансу: один сеанс AssumeRole

Три дозволи з політики ідентичності проходять через межу дозволів, що дозволяє лише дії S3: `iam:CreateUser` зупинено, інші два переходять до ефективних дозволів нижче.

Використання AWS Security для розробників

Умова звужує дозвіл

Ключ умови

  • Звужує дозвіл до контексту запиту

  • aws:SourceIp: мережа, звідки прийшов

Дозвіл на читання об'єкта S3 проходить через смугу умов із ключем мережі джерела та тегом викликувача, далі розгалужується: дозволено, якщо контекст збігається, і відмовлено, якщо ні.

Використання AWS Security для розробників

Умова звужує дозвіл

Ключ умови

  • Звужує дозвіл до контексту запиту

  • aws:SourceIp: мережа, звідки прийшов

  • aws:PrincipalTag: тег на викликачу

ABAC: керування доступом за атрибутами

  • Одна політика — багато суб'єктів

Дозвіл на читання об'єкта S3 проходить через смугу умов із ключем мережі джерела та тегом викликувача, далі розгалужується: дозволено, якщо контекст збігається, і відмовлено, якщо ні.

Використання AWS Security для розробників

Одна таблиця, по одному орендарю

Одна спільна таблиця

  • DynamoDB, один ключ розділу на орендаря
  • Сама по собі не дає ізоляції

Викликач орендаря A проходить через умову провідних ключів до спільної таблиці DynamoDB; повертаються рядки орендаря A, а орендарів B і C заблоковано.

Використання AWS Security для розробників

Одна таблиця, по одному орендарю

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

Одна спільна таблиця

  • DynamoDB, один ключ розділу на орендаря
  • Сама по собі не дає ізоляції

Одна умова це звужує

  • ForAllValues: кожен наданий ключ має збігатися
Використання AWS Security для розробників

Одна таблиця, по одному орендарю

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

Одна спільна таблиця

  • DynamoDB, один ключ розділу на орендаря
  • Сама по собі не дає ізоляції

Одна умова це звужує

  • ForAllValues: кожен наданий ключ має збігатися
Прогалина: не кожен запит вказує розділ
  • dynamodb:Scan не подає жодного, тож нема чому не збігтися
Використання AWS Security для розробників

Давайте потренуємось!

Використання AWS Security для розробників

Preparing Video For Download...