AWS DynamoDB Problème: l'Utilisateur n'est pas autorisé à effectuer: dynamodb:PutItem sur les ressources
Je suis en train d'essayer d'accéder à DynamoDB de mon Nœud de l'application déployée sur AWS ElasticBeanStalk. J'obtiens une erreur "Utilisateur n'est pas autorisé à effectuer: dynamodb:PutItem sur la ressource"
Il fonctionne parfaitement bien localement, seulement quand je le déployer à l'AWS il cesse d'effectuer.
Quelqu'un connait la solution? Merci à l'avance!
code: 'AccessDeniedException', statusCode: 400,
OriginalL'auteur Tirath Shah | 2016-01-14
Vous devez vous connecter pour publier un commentaire.
La dynamoDB refus d'accès est généralement une question de Politique. De vérifier la IAM/le Rôle des politiques que vous utilisez. Une vérification rapide pour ajouter
politique dans votre rôle en allant à l'onglet "Autorisations" dans la console AWS. Si cela fonctionne après ça, alors cela signifie que vous devez créer un droit d'accès de la politique et de l'attacher à votre rôle.
AmazonDynamoDBFullAccess
devrait fonctionner, il est préférable d'accorder des autorisations que pour les fonctions que vous attendez d'appel, qui dans ce cas estdynamodb:PutItem
. Cela peut aider à éviter les appels involontaires et les conséquences. Ici est la liste complète des autorisations.La lecture de l'affiche du commentaire, je pense qu'il disait à ajouter FullAccess pour voir si cela a résolu le problème. Si il l'a fait, alors vous savez que c'est un problème d'autorisations et peut alors régler vos autorisations de façon appropriée.
Dans mon cas de besoin le rôle était
AWSLambdaInvocation-DynamoDB
Merci @JJRoman !! Vous devriez ajouter que comme une réponse!
OriginalL'auteur Abhimanu Kumar
Vérification de la clé d'accès que vous utilisez pour vous connecter à DynamoDB dans votre Nœud application sur AWS. Cette clé d'accès appartient à un utilisateur qui n'a pas les privilèges nécessaires dans IAM. Donc, trouvez l'utilisateur IAM, créer ou mettre à jour une politique appropriée et vous devriez être bon.
Pour Beanstalk vous devez mettre en place des stratégies d'utilisateur lorsque vous publiez. Découvrez l'officiel de docs ici.
Et découvrez l'exemple ici, gracieuseté de @Tirath Shah.
Êtes-vous à l'aide de dynamodb-local pour le développement local? Avez-vous codés en dur les clés dans l'application? Ou pensez-vous obtenir de l'environnement? Si elles ne sont pas codées en dur, essayer explicitement codé en dur. Voyez si vous pouvez vérifier que la clé et le secret sont exactement comme vous le souhaitez. Faire d'autres ops, comme GetItem etc?
Actuellement, son codé en dur dans le ~/.aws/références de fichier.. je n'ai pas essayé getItem à partir de l'app.. Mais je l'ai essayé sur la ligne de commande à partir de la même machine et j'ai été en mesure d'obtenir tous les éléments de la DB
Dur de code dans votre application et donnez-lui un coup. J'ai le pressentiment que les informations d'identification ne sont pas dans votre nœud de l'application.
Je sais que ces pouvoirs habituellement retiré de ~/.aws/informations d'identification.. je ne suis pas sûr où le code que l'application peut tirer les informations d'identification
OriginalL'auteur smcstewart
Réponse est déjà donné, mais c'est la meilleure pratique à la politique d'utilisation de votre AWS utilisateur ou le rôle de.
Pour Obtenir les objets de Table en particulier
Pour Vérifier
À mettre l'Objet
Pour Permettre à Tous d'action sur une table.
Pour vérifier rôle d'utilisateur ou de
de l'utilisateur.json
OriginalL'auteur Adiii