DynamoDB - Contrôle d'accès

DynamoDB utilise les informations d'identification que vous fournissez pour authentifier les demandes. Ces informations d'identification sont obligatoires et doivent inclure des autorisations d'accès aux ressources AWS. Ces autorisations couvrent pratiquement tous les aspects de DynamoDB jusqu'aux fonctionnalités mineures d'une opération ou d'une fonctionnalité.

Types d'autorisations

Dans cette section, nous discuterons des différentes autorisations et accès aux ressources dans DynamoDB.

Authentification des utilisateurs

Lors de votre inscription, vous avez fourni un mot de passe et une adresse e-mail, qui servent d'identifiants root. DynamoDB associe ces données à votre compte AWS et les utilise pour donner un accès complet à toutes les ressources.

AWS vous recommande d'utiliser vos informations d'identification racine uniquement pour la création d'un compte d'administration. Cela vous permet de créer des comptes / utilisateurs IAM avec moins de privilèges. Les utilisateurs IAM sont d'autres comptes générés avec le service IAM. Leurs autorisations / privilèges d'accès incluent l'accès aux pages sécurisées et certaines autorisations personnalisées comme la modification de table.

Les clés d'accès offrent une autre option pour des comptes et un accès supplémentaires. Utilisez-les pour accorder l'accès et pour éviter l'octroi manuel de l'accès dans certaines situations. Les utilisateurs fédérés offrent encore une autre option en autorisant l'accès via un fournisseur d'identité.

Administration

Les ressources AWS restent sous la propriété d'un compte. Les stratégies d'autorisation régissent les autorisations accordées pour générer ou accéder aux ressources. Les administrateurs associent les stratégies d'autorisations aux identités IAM, c'est-à-dire aux rôles, groupes, utilisateurs et services. Ils attachent également des autorisations aux ressources.

Les autorisations spécifient les utilisateurs, les ressources et les actions. Remarque les administrateurs sont simplement des comptes avec des privilèges d'administrateur.

Fonctionnement et ressources

Les tables restent les principales ressources de DynamoDB. Les sous-ressources servent de ressources supplémentaires, par exemple, des flux et des indices. Ces ressources utilisent des noms uniques, dont certains sont mentionnés dans le tableau suivant -

Type ARN (nom de la ressource Amazon)
Courant arn: aws: dynamodb: region: account-id: table / table-name / stream / stream-label
Indice arn: aws: dynamodb: region: account-id: table / table-name / index / index-name
Table arn: aws: dynamodb: region: account-id: table / table-name

La possession

Un propriétaire de ressource est défini comme un compte AWS qui a engendré la ressource, ou un compte d'entité principale responsable de l'authentification des demandes lors de la création de ressources. Considérez comment cela fonctionne dans l'environnement DynamoDB -

  • En utilisant les informations d'identification racine pour créer une table, votre compte reste propriétaire de la ressource.

  • Lors de la création d'un utilisateur IAM et de l'octroi à l'utilisateur de l'autorisation de créer une table, votre compte reste le propriétaire de la ressource.

  • En créant un utilisateur IAM et en accordant à l'utilisateur, et à toute personne capable d'assumer le rôle, l'autorisation de créer une table, votre compte reste le propriétaire de la ressource.

Gérer l'accès aux ressources

La gestion des accès nécessite principalement une attention à une politique d'autorisations décrivant les utilisateurs et l'accès aux ressources. Vous associez des stratégies à des identités ou des ressources IAM. Cependant, DynamoDB ne prend en charge que les stratégies IAM / d'identité.

Les stratégies basées sur l'identité (IAM) vous permettent d'accorder des privilèges des manières suivantes:

  • Attachez des autorisations aux utilisateurs ou aux groupes.
  • Attachez des autorisations aux rôles pour les autorisations entre comptes.

D'autres AWS autorisent les stratégies basées sur les ressources. Ces stratégies permettent d'accéder à des éléments tels qu'un compartiment S3.

Éléments de politique

Les politiques définissent les actions, les effets, les ressources et les principes; et accordez la permission d'effectuer ces opérations.

Note - Les opérations de l'API peuvent nécessiter des autorisations pour plusieurs actions.

Examinez de plus près les éléments politiques suivants -

  • Resource - Un ARN l'identifie.

  • Action - Les mots-clés identifient ces opérations sur les ressources et indiquent s'il faut autoriser ou refuser.

  • Effect - Il spécifie l'effet d'une demande utilisateur pour une action, c'est-à-dire autoriser ou refuser avec le refus par défaut.

  • Principal - Cela identifie l'utilisateur attaché à la politique.

Conditions

Lors de l'octroi d'autorisations, vous pouvez spécifier des conditions pour le moment où les stratégies deviennent actives, par exemple à une date particulière. Conditions express avec des clés de condition, qui incluent des clés à l'échelle du système AWS et des clés DynamoDB. Ces clés sont décrites en détail plus loin dans le didacticiel.

Autorisations de la console

Un utilisateur a besoin de certaines autorisations de base pour utiliser la console. Ils nécessitent également des autorisations pour la console dans d'autres services standard -

  • CloudWatch
  • Pipeline de données
  • Gestion des identités et des accès
  • Service de notification
  • Lambda

Si la stratégie IAM s'avère trop limitée, l'utilisateur ne peut pas utiliser efficacement la console. En outre, vous n'avez pas à vous soucier des autorisations des utilisateurs pour ceux qui appellent uniquement la CLI ou l'API.

Stratégies Iam à usage commun

AWS couvre les opérations courantes dans les autorisations avec des stratégies gérées IAM autonomes. Ils fournissent des autorisations clés vous permettant d'éviter des enquêtes approfondies sur ce que vous devez accorder.

Certains d'entre eux sont les suivants -

  • AmazonDynamoDBReadOnlyAccess - Il donne un accès en lecture seule via la console.

  • AmazonDynamoDBFullAccess - Il donne un accès complet via la console.

  • AmazonDynamoDBFullAccesswithDataPipeline - Il donne un accès complet via la console et permet l'exportation / l'importation avec Data Pipeline.

Vous pouvez également bien sûr créer des politiques personnalisées.

Octroi de privilèges: utilisation du shell

Vous pouvez accorder des autorisations avec le shell Javascript. Le programme suivant montre une politique d'autorisations typique -

{ 
   "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" 
      } 
   ] 
}

Vous pouvez consulter les trois exemples qui sont les suivants -

Block the user from executing any table action.

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

Block access to a table and its indices.

{ 
   "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/*" 
         ] 
      } 
   ] 
}

Block a user from making a reserved capacity offering purchase.

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

Octroi de privilèges: utilisation de la console GUI

Vous pouvez également utiliser la console GUI pour créer des stratégies IAM. Pour commencer, choisissezTablesdepuis le volet de navigation. Dans la liste des tableaux, choisissez la table cible et procédez comme suit.

Step 1 - Sélectionnez le Access control languette.

Step 2- Sélectionnez le fournisseur d'identité, les actions et les attributs de stratégie. SélectionnerCreate policy après avoir entré tous les paramètres.

Step 3 - Choisissez Attach policy instructionset effectuez chaque étape requise pour associer la stratégie au rôle IAM approprié.