<?php namespace Illuminate\Queue\Connectors;

use Aws\Sqs\SqsClient;
use Illuminate\Queue\SqsQueue;

class SqsConnector implements ConnectorInterface {

	/**
	 * Establish a queue connection.
	 *
	 * @param  array  $config
	 * @return \Illuminate\Queue\QueueInterface
	 */
	public function connect(array $config)
	{
		$sqs = SqsClient::factory(array(

			'key' => $config['key'], 'secret' => $config['secret'], 'region' => $config['region'],

		));

		return new SqsQueue($sqs, $config['queue']);
	}

}
<?php namespace Illuminate\Queue\Connectors;

use Aws\Sqs\SqsClient;
use Illuminate\Queue\SqsQueue;

class SqsConnector implements ConnectorInterface {

	/**
	 * Establish a queue connection.
	 *
	 * @param  array  $config
	 * @return \Illuminate\Queue\QueueInterface
	 */
	public function connect(array $config)
	{
		$sqsConfig = array_only($config, array('key', 'secret', 'region', 'default_cache_config'));

		$sqs = SqsClient::factory($sqsConfig);

		return new SqsQueue($sqs, $config['queue']);
	}

}
Add support for using IAM Roles for SQS queues.
Add support for using IAM Roles for SQS queues.

The AWS PHP SDK allows for specifying a location on EC2 instances that will allow the instance to assume an IAM role and connect to different services. You just need to add a `default_cache_config` option to the config array for queues using the SQS driver.
