Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

511
Visualizações
¿Cómo especificar las credenciales al conectarse a boto3 S3?

En boto, solía especificar mis credenciales cuando me conectaba a S3 de esta manera:

 import boto from boto.s3.connection import Key, S3Connection S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )

Luego podría usar S3 para realizar mis operaciones (en mi caso, eliminar un objeto de un depósito).

Con boto3 todos los ejemplos que encontré son tales:

 import boto3 S3 = boto3.resource( 's3' ) S3.Object( bucket_name, key_name ).delete()

No pude especificar mis credenciales y, por lo tanto, todos los intentos fallan con el error InvalidAccessKeyId .

¿Cómo puedo especificar las credenciales con boto3?

over 4 years ago · Santiago Trujillo
7 Respostas
Responde à pergunta

0

Me gustaría ampliar la respuesta de @JustAGuy. El método que prefiero es usar AWS CLI para crear un archivo de configuración. El motivo es que, con el archivo de configuración, la CLI o el SDK buscarán automáticamente las credenciales en la carpeta ~/.aws . Y lo bueno es que AWS CLI está escrito en python.

Puede obtener cli de pypi si aún no lo tiene. Estos son los pasos para configurar cli desde la terminal

 $> pip install awscli #can add user flag $> aws configure AWS Access Key ID [****************ABCD]:[enter your key here] AWS Secret Access Key [****************xyz]:[enter your secret key here] Default region name [us-west-2]:[enter your region here] Default output format [None]:

Después de esto, puede acceder a boto y a cualquiera de las API sin tener que especificar claves (a menos que desee usar unas credenciales diferentes).

over 4 years ago · Santiago Trujillo Relatório

0

Esto es más antiguo, pero también lo coloco aquí para mi referencia. boto3.resource solo está implementando la sesión predeterminada, puede pasar los detalles de la sesión de boto3.resource.

 Help on function resource in module boto3: resource(*args, **kwargs) Create a resource service client by name using the default session. See :py:meth:`boto3.session.Session.resource`.

https://github.com/boto/boto3/blob/86392b5ca26da57ce6a776365a52d3cab8487d60/boto3/session.py#L265

puede ver que solo toma los mismos argumentos que Boto3.Session

 import boto3 S3 = boto3.resource('s3', region_name='us-west-2', aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY) S3.Object( bucket_name, key_name ).delete()
over 4 years ago · Santiago Trujillo Relatório

0

Puedes crear una sesión :

 import boto3 session = boto3.Session( aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY, )

Luego use esa sesión para obtener un recurso S3:

 s3 = session.resource('s3')
over 4 years ago · Santiago Trujillo Relatório

0

Puede obtener un client con una nueva sesión directamente como se muestra a continuación.

 s3_client = boto3.client('s3', aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY, region_name=REGION_NAME )
over 4 years ago · Santiago Trujillo Relatório

0

Existen numerosas formas de almacenar credenciales sin dejar de usar boto3.resource(). Yo mismo estoy usando el método AWS CLI. Funciona perfectamente.

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAILys

over 4 years ago · Santiago Trujillo Relatório

0

puede establecer variables predeterminadas de aws env para claves secretas y de acceso, de esa manera no necesita cambiar el código de creación de cliente predeterminado, aunque es mejor pasarlo como parámetro si no tiene credenciales predeterminadas

over 4 years ago · Santiago Trujillo Relatório

0

Si confía en sus .aws/credentials para almacenar la identificación y la clave de un usuario, se recogerá automáticamente.

Por ejemplo

 session = boto3.Session(profile_name='dev') s3 = session.resource('s3')

Esto seleccionará el perfil de desarrollador (usuario) si su archivo de credentials contiene lo siguiente:

 [dev] aws_access_key_id = AAABBBCCCDDDEEEFFFGG aws_secret_access_key = FooFooFoo region=op-southeast-2
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda