java - 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;
}
解决方案
- 为您的应用程序将发出的 API 请求创建具有足够权限的 IAM 角色
- 将 IAM 角色分配给 EC2 实例
AWS 开发工具包将自动从实例元数据中检索凭证。无需提供任何凭据。
推荐阅读
- tensorflow - Keras 错误:AttributeError:模块“tensorflow”没有属性“get_default_graph”
- python - 使用 pygrib 写入插值 grib2 数据会导致 grib 文件不可用
- git - 如何挑选作者所做的所有提交?
- requirejs - PDF.js 使用 RequireJS 呈现不正确的字符
- regex - 使用正则表达式匹配模式,如
狗 猫 - bucket - 有没有办法只提取元数据和 grib 中的特定范围?
- java - Bean 属性 'sakilaDao' 不可写或具有无效的 setter 方法。setter 的参数类型是否与 getter 的返回类型匹配?
- typescript - 如何从 nodejs 服务器的 react-native-webview 获取数据?
- python - discord.py 自定义嵌入命令没有响应
- c++ - 如何将文件读入元组向量?