Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

384
Vistas
No se pueden leer las credenciales de /.aws/credentials: el script PHP llama a AWS-SDK

Revisé todas las respuestas aquí y parece que mi problema es un poco diferente o no ha habido una solución adecuada. Estoy haciendo lo siguiente en mi archivo PHP:

 use Aws\Route53\Route53Client; $client = Route53Client::factory(array( 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2013-04-01' ));

Obteniendo este error:

 Fatal error: Uncaught Aws\Exception\CredentialsException: Cannot read credentials from /.aws/credentials

Parece que la solución fácil sería asegurarse de que el directorio HOME sea el correcto. Efectivamente ya lo es. Los archivos son legibles y mi usuario ec2 ya es el propietario. Key and Secret ya está instalado en el archivo de 'credenciales'. El nombre del perfil ya está configurado como 'predeterminado'. Intenté copiar /.aws a otros directorios como la raíz, /home, etc. y cambié los permisos, chmod, todo lo anterior. Aún nada.

Luego traté de codificar las credenciales (lo sé, no se recomienda) solo para darle una pequeña patada, e ignora por completo que hice esto:

 $client = Route53Client::factory(array( 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2013-04-01', 'credentials' => [ 'key' => $key, 'secret' => $secret, ] ));

Como último recurso, incluso intenté incluir la clase CredentialProvider y pasar esto a mi matriz, todavía nada:

 'credentials' => CredentialProvider::ini('default', '/home/ec2-user/.aws/credentials'),

¿Qué diablos estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Simplemente elimine 'profile' => 'default' , y debería funcionar bien

 $client = Route53Client::factory(array( 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => [ 'key' => $key, 'secret' => $secret, ] ));
over 4 years ago · Santiago Trujillo Denunciar

0

Al ejecutar en AWS Centos 7, probé todo (chmod/chown /root /home/user, env, bashrc, etc.) para que /.aws/credentials funcione fuera del directorio apache /var/www. El SDK informó que no pudo leer el archivo de credenciales.

Miré PHP para ver si podía configurar/anular la variable HOME y aún no leyó el archivo de credenciales hasta que coloqué la carpeta .aws en la carpeta '/var/www' y configuré la variable HOME en mi archivo php como asi que:

 <%php putenv('HOME=/var/www'); //ZIP File SDK Install requires aws-autoloader require 'aws-autoloader.php'; //Your php code below
over 4 years ago · Santiago Trujillo Denunciar

0

Esto es lo que terminé haciendo para esta pregunta, aunque la respuesta anterior de EJ es en realidad la respuesta correcta. Esperemos que esto ayude a alguien a leer su archivo de credenciales:

 use Aws\Credentials\CredentialProvider; use Aws\Route53\Route53Client; $profile = 'default'; $path = '/var/www/html/.aws/credentials'; $provider = CredentialProvider::ini($profile, $path); $provider = CredentialProvider::memoize($provider); $client = Route53Client::factory(array( 'region' => 'us-east-1', 'version' => '2013-04-01', 'credentials' => $provider ));
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda