首页 > 解决方案 > AWS - 从 EC2 连接到 SQS

问题描述

我正在使用以下代码获取 AWS 凭证以连接到 SQS。这是我的个人凭据,当我在我的 qa 或 prod env 中部署此代码时,我不应该使用我的凭据连接到 SQS。此代码将在 AWS 的 EC2 容器中运行。有哪些选项可供我连接到 SQS,而无需像我在下面所做的那样明确提供用户 ID/密码?

@Bean
public AWSCredentialsProvider awsCredentialsProvider() {

    ProfileCredentialsProvider profileCredentialsProvider = new ProfileCredentialsProvider(credentialsProvider);
    try {
        profileCredentialsProvider.getCredentials();
    } catch (Exception e) {
        throw new AmazonClientException(
                "Cannot load the credentials from the credential profiles file. " +
                        "Please make sure that your credentials file is at the correct " +
                        "location (~/.aws/credentials), and is in valid format.",
                e);
    }
    return profileCredentialsProvider;
}

标签: javaspringamazon-web-servicesamazon-ec2spring-cloud

解决方案


  • 为您的应用程序将发出的 API 请求创建具有足够权限的 IAM 角色
  • 将 IAM 角色分配给 EC2 实例

AWS 开发工具包将自动从实例元数据中检索凭证。无需提供任何凭据。

请参阅:使用 AWS 凭证 - 适用于 Java 的 AWS 开发工具包


推荐阅读