我可以使用以下配置和AWS CLI访问SQS:
% cat .aws/config
[default]
region = eu-central-1
output = json
[profile dev]
region = eu-central-1
role_arn = arn:aws:iam::<id>:role/<user>
source_profile = default
% cat .aws/credentials
[default]
aws_access_key_id = <key>
aws_secret_access_key = <secret_key>
% aws sqs list-queues --profile dev
{
"QueueUrls": [
...
]
}
我需要指定role_arn
参数来访问队列。问题是,在AWS Java SDK2(版本2.15.69)中,我不知道如何设置role_arn
参数,至少不会自动加载。到目前为止,我得到的代码如下所示:
import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.sqs.SqsClient
import software.amazon.awssdk.services.sqs.model.SendMessageRequest
client = SqsClient.builder().region(Region.EU_CENTRAL_1).build()
req = SendMessageRequest.builder().queueUrl(url).messageBody(msg).build()
client.sendMessage(req)
在执行最后一行时,我得到了这样的错误消息:Access to the resource https://sqs.eu-central-1.amazonaws.com/ is denied.
基本上没有加载role_arn
。可以在Java代码片段中指定ARN吗?如果可以,如何指定?
发布于 2021-01-27 21:30:24
Yon必须设置环境变量AWS_PROFILE="dev"
。
目前,在我看来,default
aws profile是由您的java代码选择的,并且该default
aws配置文件对您试图访问的SQS没有所需的访问权限。
https://stackoverflow.com/questions/65923861
复制相似问题