Boto3: obtenir les informations d'identification de façon dynamique?

J'ai du mal à trouver comment je peux obtenir mes aws_access_key_id et aws_secret_access_key dynamiquement à partir de mon code.

Dans boto2 je pouvais faire ce qui suit: boto.config.get_value('Credentials', 'aws_secret_access_key') mais je n'arrive pas à trouver une méthode similaire dans boto3. J'ai été en mesure de trouver les clés si je regarde dans boto3.Session()._session._credentials mais qui semble comme la mère de tous les hacks pour moi et je ne voudrais pas aller dans cette voie.

  • Pourriez-vous préciser pourquoi vous avez besoin d'un accès direct aux informations d'identification dans votre code? Aussi, ce n'est pas le lieu pour exprimer des opinions ou de la déception dans une API de changement. Prendre que de l'AWS forums.
  • J'en ai besoin parce que j'ai copier les données à partir de S3 à Redshift et j'ai donc besoin de la aws_access_key_id et aws_secret_access_key. Je préfère ne pas avoir à écrire du code qui se passe dans le fichier config/fichiers d'informations d'identification et de trouver quand Boto déjà fait cela.
  • Ouais, en transmettant ces touches pour Redshift pour S3 accès est une grande douleur. Je souhaite qu'ils nous permettent d'attribuer un rôle IAM de Redshift pour éviter le besoin de le faire. Je serais inquiet que votre solution n'est pas d'aller travailler sur une instance EC2 à l'aide d'un IAM profil d'instance, ou dans une fonction Lambda.
  • Je suis d'accord avec MarkB. Ce n'est pas une solution portable. De vérifier ma solution et voir s'il fonctionne.
  • Comment mettre la clé à l'intérieur de l'identification de config et lui donner un nouveau nom de profil autre que [par défaut] ? Et l'utilisation profile_name= point explicite à la clé de profil?
  • En passant, vous n'avez pas à le faire pour Redshift commandes de COPIE plus. Redshift peut assumer des rôles IAM maintenant: aws.amazon.com/releasenotes/8869404215180370 C'est la meilleure solution.

InformationsquelleAutor Mo. | 2016-03-29