Entendo corretamente que o SQS está em uma conta da AWS e o seu Lambda está em outra?
Se estiver na mesma conta, você não deve usar acesso estático e chaves secretas para a execução do Lambda. A maneira correta é criar IAM Role com uma Política que permita acesso ao SQS e execute o Lambda com essa função. A Função dará credenciais temporárias toda vez que for executada, essa é uma opção muito mais segura.
Isso também pode ser feito entre contas - a função IAM do Lambda permitirá que assumam uma função de uma conta diferente. Mas isso é um pouco mais envolvido.
No seu caso, se as contas SQS e Lambda forem diferentes, você poderá fornecer as chaves ao abrir uma conexão com o SQS . Se o seu Lambda é escrito em Python, você pode fazer algo assim:
import boto3
s3_client = boto3.client('s3') # This uses Lambda's IAM Role
sqs_client = boto3.client('sqs', # This uses the provided SQS credentials
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
)
Com isso, você pode ler a partir do SQS usando as credenciais fornecidas e escrever, por exemplo, para S3 usando o papel Lambda IAM.
Tenho certeza de que outros SDKs (por exemplo, Node.JS) terão uma capacidade semelhante.
Espero que ajude:)