Учебники

DynamoDB — Контроль доступа

DynamoDB использует предоставленные вами учетные данные для аутентификации запросов. Эти учетные данные являются обязательными и должны включать разрешения на доступ к ресурсам AWS. Эти разрешения охватывают практически все аспекты DynamoDB вплоть до второстепенных функций операции или функциональности.

Типы разрешений

В этом разделе мы обсудим различные разрешения и доступ к ресурсам в DynamoDB.

Аутентификация пользователей

При регистрации вы предоставили пароль и адрес электронной почты, которые служат в качестве корневых учетных данных. DynamoDB связывает эти данные с вашей учетной записью AWS и использует их для предоставления полного доступа ко всем ресурсам.

AWS рекомендует использовать свои учетные данные root только для создания учетной записи администратора. Это позволяет создавать учетные записи / пользователей IAM с меньшими правами. Пользователи IAM — это другие учетные записи, созданные с помощью службы IAM. Их разрешения / привилегии доступа включают доступ к защищенным страницам и определенные пользовательские разрешения, такие как изменение таблицы.

Ключи доступа предоставляют еще одну опцию для дополнительных учетных записей и доступа. Используйте их для предоставления доступа, а также во избежание ручного предоставления доступа в определенных ситуациях. Федеративные пользователи предоставляют еще одну возможность, предоставляя доступ через провайдера идентификации.

администрация

Ресурсы AWS остаются в собственности аккаунта. Политики разрешений регулируют разрешения, предоставляемые для порождения или доступа к ресурсам. Администраторы связывают политики разрешений с удостоверениями IAM, то есть с ролями, группами, пользователями и службами. Они также прикрепляют разрешения к ресурсам.

Разрешения указывают пользователей, ресурсы и действия. Обратите внимание, что администраторы — это просто учетные записи с правами администратора.

Операция и ресурсы

Таблицы остаются основными ресурсами в DynamoDB. Подресурсы служат дополнительными ресурсами, например, потоками и индексами. Эти ресурсы используют уникальные имена, некоторые из которых упомянуты в следующей таблице:

Тип ARN (название ресурса Amazon)
Поток ARN: AWS: dynamodb: регион: счет-идентификатор: имя таблицы таблицы / / поток / поток метка
Индекс счет-идентификатор:: / / индекс имя-таблицы / имя-таблицы индекса ARN: AWS: dynamodb: регион
Таблица ARN: AWS: dynamodb: регион: счет-ID: имя-таблицы таблицы /

Владение

Владелец ресурса определяется как учетная запись AWS, которая породила ресурс, или учетная запись основного объекта, ответственная за проверку подлинности запроса при создании ресурса. Рассмотрим, как это работает в среде DynamoDB —

  • Используя корневые учетные данные для создания таблицы, ваша учетная запись остается владельцем ресурса.

  • При создании пользователя IAM и предоставлении пользователю разрешения на создание таблицы ваша учетная запись остается владельцем ресурса.

  • При создании пользователя IAM и предоставлении пользователю и любому лицу, способному взять на себя роль, разрешения на создание таблицы, ваша учетная запись остается владельцем ресурса.

Используя корневые учетные данные для создания таблицы, ваша учетная запись остается владельцем ресурса.

При создании пользователя IAM и предоставлении пользователю разрешения на создание таблицы ваша учетная запись остается владельцем ресурса.

При создании пользователя IAM и предоставлении пользователю и любому лицу, способному взять на себя роль, разрешения на создание таблицы, ваша учетная запись остается владельцем ресурса.

Управление доступом к ресурсам

Управление доступом в основном требует внимания к политике разрешений, описывающей пользователей и доступ к ресурсам. Вы связываете политики с идентификационными данными или ресурсами IAM. Однако DynamoDB поддерживает только политики IAM / идентификации.

Политики на основе идентификаторов (IAM) позволяют предоставлять привилегии следующими способами:

  • Прикрепите разрешения для пользователей или групп.
  • Присоедините разрешения к ролям для разрешений между учетными записями.

Другие AWS допускают политики на основе ресурсов. Эти политики разрешают доступ к таким вещам, как корзина S3.

Элементы политики

Политики определяют действия, эффекты, ресурсы и принципы; и дать разрешение на выполнение этих операций.

Примечание. Для операций API могут потребоваться разрешения для нескольких действий.

Присмотритесь к следующим элементам политики —

  • Ресурс — ARN идентифицирует это.

  • Действие — ключевые слова идентифицируют эти операции с ресурсами и разрешают или запрещают.

  • Эффект — он определяет эффект для пользовательского запроса на действие, то есть разрешить или запретить с отказом по умолчанию.

  • Принципал — это идентифицирует пользователя, прикрепленного к политике.

Ресурс — ARN идентифицирует это.

Действие — ключевые слова идентифицируют эти операции с ресурсами и разрешают или запрещают.

Эффект — он определяет эффект для пользовательского запроса на действие, то есть разрешить или запретить с отказом по умолчанию.

Принципал — это идентифицирует пользователя, прикрепленного к политике.

условия

Предоставляя разрешения, вы можете указать условия, когда политики станут активными, например, на определенную дату. Выразите условия с помощью ключей условий, которые включают общесистемные ключи AWS и ключи DynamoDB. Эти ключи подробно обсуждаются позже в руководстве.

Разрешения консоли

Пользователь требует определенных основных разрешений для использования консоли. Они также требуют разрешения для консоли в других стандартных службах —

  • CloudWatch
  • Конвейер данных
  • Управление идентификацией и доступом
  • Служба уведомлений
  • лямбда

Если политика IAM оказывается слишком ограниченной, пользователь не может эффективно использовать консоль. Кроме того, вам не нужно беспокоиться о правах пользователей для тех, кто только вызывает CLI или API.

Общие правила использования Iam

AWS покрывает обычные операции в разрешениях с помощью автономных политик, управляемых IAM. Они предоставляют ключевые разрешения, позволяющие вам избежать глубокого изучения того, что вы должны предоставить.

Некоторые из них следующие:

  • AmazonDynamoDBReadOnlyAccess — предоставляет доступ только для чтения через консоль.

  • AmazonDynamoDBFullAccess — предоставляет полный доступ через консоль.

  • AmazonDynamoDBFullAccesswithDataPipeline — предоставляет полный доступ через консоль и разрешает экспорт / импорт с помощью Data Pipeline.

AmazonDynamoDBReadOnlyAccess — предоставляет доступ только для чтения через консоль.

AmazonDynamoDBFullAccess — предоставляет полный доступ через консоль.

AmazonDynamoDBFullAccesswithDataPipeline — предоставляет полный доступ через консоль и разрешает экспорт / импорт с помощью Data Pipeline.

Вы также можете создавать собственные политики.

Предоставление привилегий: использование оболочки

Вы можете предоставить разрешения с помощью оболочки Javascript. Следующая программа показывает типичную политику разрешений —

{ 
   "Version": "2016-05-22", 
   "Statement": [ 
      { 
         "Sid": "DescribeQueryScanToolsTable", 
         "Effect": "Deny", 
         
         "Action": [ 
            "dynamodb:DescribeTable", 
            "dynamodb:Query", 
            "dynamodb:Scan" 
         ], 
         "Resource": "arn:aws:dynamodb:us-west-2:account-id:table/Tools" 
      } 
   ] 
}

Вы можете просмотреть три примера:

Заблокировать пользователя от выполнения любого табличного действия.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AllAPIActionsOnTools", 
         "Effect": "Deny", 
         "Action": "dynamodb:*", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:table/Tools" 
      } 
   ] 
}

Блокировать доступ к таблице и ее индексам.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "AccessAllIndexesOnTools", 
         "Effect": "Deny", 
         "Action": [
            "dynamodb:*" 
         ], 
         "Resource": [ 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools", 
            "arn:aws:dynamodb:us-west-2:155556789012:table/Tools/index/*" 
         ] 
      } 
   ] 
}

Заблокировать пользователя от совершения покупки зарезервированной емкости.

{ 
   "Version": "2016-05-23", 
   "Statement": [ 
      { 
         "Sid": "BlockReservedCapacityPurchases", 
         "Effect": "Deny", 
         "Action": "dynamodb:PurchaseReservedCapacityOfferings", 
         "Resource": "arn:aws:dynamodb:us-west-2:155556789012:*" 
      } 
   ] 
}

Предоставление прав: использование консоли с графическим интерфейсом

Вы также можете использовать консоль GUI для создания политик IAM. Для начала выберите Таблицы на панели навигации. В списке таблиц выберите таблицу назначения и выполните следующие действия.

Шаг 1 — Выберите вкладку Контроль доступа .

Шаг 2 — Выберите поставщика удостоверений, действий и атрибутов политики. Выберите Создать политику после ввода всех настроек.

Шаг 3. Выберите « Прикрепить инструкции к политике» и выполните каждый необходимый шаг, чтобы связать политику с соответствующей ролью IAM.