title: Laravel 5.1 AWS SDK proper credentials setup: exception 'Aws\Exception\CredentialsException'
body: <p>I am working on a Laravel 5.1 App Using this package:</p>
  
  <pre><code>"aws/aws-sdk-php-laravel": "~3.0"
  </code></pre>
  
  <p>I am trying to properly setup a local environment and a production environment. I keep getting this error when trying to send mail on production server: (My .env file is gitignored and only exists locally)</p>
  
  <pre><code>production.ERROR: exception 'Aws\Exception\CredentialsException' with message 'Error retrieving credentials from the instance profile metadata server. 
  </code></pre>
  
  <p>Ran </p>
  
  <pre><code>php artisan vendor:publish
  </code></pre>
  
  <p>My .env file look slike so, only with the keys:</p>
  
  <pre><code>APP_ENV=local
  APP_DEBUG=true
  APP_KEY=
  
  DB_HOST=localhost
  DB_DATABASE=
  DB_USERNAME=
  DB_PASSWORD=
  
  CACHE_DRIVER=file
  SESSION_DRIVER=database
  QUEUE_DRIVER=sync
  
  MAIL_DRIVER=ses
  MAIL_HOST=email-smtp.us-west-2.amazonaws.com
  MAIL_PORT=587
  MAIL_USERNAME=
  MAIL_PASSWORD=
  MAIL_ENCRYPTION=null
  
  AWS_ACCESS_KEY_ID=
  AWS_SECRET_ACCESS_KEY=
  AWS_REGION=us-west-2
  </code></pre>
  
  <p>My credential are here config/aws.php</p>
  
  <pre><code>&lt;?php
  
  return [
  
  /*
  |--------------------------------------------------------------------------
  | AWS SDK Configuration
  |--------------------------------------------------------------------------
  |
  | The configuration options set in this file will be passed directly to the
  | `Aws\Sdk` object, from which all client objects are created. The minimum
  | required options are declared here, but the full set of possible options
  | are documented at:
  | http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html
  |
  */
  'credentials' =&gt; [
      'key'    =&gt; env('AWS_ACCESS_KEY_ID','SECRETKEY'),
      'secret' =&gt; env('AWS_SECRET_ACCESS_KEY','SECRETKEY'),
  ],
  'region' =&gt; env('AWS_REGION', 'us-west-2'),
  'version' =&gt; 'latest',
  
  ];
  </code></pre>
  
  <p>My config/Mail.php looks like this only with keys and email address.</p>
  
  <pre><code>&lt;?php
  
  return [
  
  /*
  |--------------------------------------------------------------------------
  | Mail Driver
  |--------------------------------------------------------------------------
  |
  | Laravel supports both SMTP and PHP's "mail" function as drivers for the
  | sending of e-mail. You may specify which one you're using throughout
  | your application here. By default, Laravel is setup for SMTP mail.
  |
  | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", "ses", "log"
  |
  */
  
  'driver' =&gt; env('MAIL_DRIVER', 'ses'),
  
  /*
  |--------------------------------------------------------------------------
  | SMTP Host Address
  |--------------------------------------------------------------------------
  |
  | Here you may provide the host address of the SMTP server used by your
  | applications. A default option is provided that is compatible with
  | the Mailgun mail service which will provide reliable deliveries.
  |
  */
  
  'host' =&gt; env('MAIL_HOST', ''),
  
  /*
  |--------------------------------------------------------------------------
  | SMTP Host Port
  |--------------------------------------------------------------------------
  |
  | This is the SMTP port used by your application to deliver e-mails to
  | users of the application. Like the host we have set this value to
  | stay compatible with the Mailgun e-mail application by default.
  |
  */
  
  'port' =&gt; env('MAIL_PORT', 587),
  
  /*
  |--------------------------------------------------------------------------
  | Global "From" Address
  |--------------------------------------------------------------------------
  |
  | You may wish for all e-mails sent by your application to be sent from
  | the same address. Here, you may specify a name and address that is
  | used globally for all e-mails that are sent by your application.
  |
  */
  
  'from' =&gt; ['address' =&gt; '', 'name' =&gt; ''],
  
  /*
  |--------------------------------------------------------------------------
  | E-Mail Encryption Protocol
  |--------------------------------------------------------------------------
  |
  | Here you may specify the encryption protocol that should be used when
  | the application send e-mail messages. A sensible default using the
  | transport layer security protocol should provide great security.
  |
  */
  
  'encryption' =&gt; env('MAIL_ENCRYPTION', 'tls'),
  
  /*
  |--------------------------------------------------------------------------
  | SMTP Server Username
  |--------------------------------------------------------------------------
  |
  | If your SMTP server requires a username for authentication, you should
  | set it here. This will get used to authenticate with your server on
  | connection. You may also set the "password" value below this one.
  |
  */
  
  'username' =&gt; env('MAIL_USERNAME', ''),
  /*
  |--------------------------------------------------------------------------
  | SMTP Server Password
  |--------------------------------------------------------------------------
  |
  | Here you may set the password required by your SMTP server to send out
  | messages from your application. This will be given to the server on
  | connection so that the application will be able to send messages.
  |
  */
  
  'password' =&gt; env('MAIL_PASSWORD','' ),
  
  /*
  |--------------------------------------------------------------------------
  | Sendmail System Path
  |--------------------------------------------------------------------------
  |
  | When using the "sendmail" driver to send e-mails, we will need to know
  | the path to where Sendmail lives on this server. A default path has
  | been provided here, which will work well on most of your systems.
  |
  */
  
  'sendmail' =&gt; '/usr/sbin/sendmail -bs',
  
  /*
  |--------------------------------------------------------------------------
  | Mail "Pretend"
  |--------------------------------------------------------------------------
  |
  | When this option is enabled, e-mail will not actually be sent over the
  | web and will instead be written to your application's logs files so
  | you may inspect the message. This is great for local development.
  |
  */
  
  'pretend' =&gt; false,
  
  ];
  </code></pre>