[英]Making a call to a Dynamo DB set up on a different account with AWS Java SDK using Roles
我在 AWS_ACCOUNT_A 上的 EC2 實例上設置了 Java 應用程序,並嘗試調用已在 AWS_ACCOUNT_B 上設置的 Dynamo_DB 表。
我通過在 EC2 上假設一個已配置的實例角色來做到這一點,以便它可以訪問相關的 Dynamo DB。 該角色附加了一個策略,其中包括以下內容:
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"dynamodb:BatchGetItem",
"dynamodb:ConditionCheckItem",
"dynamodb:DescribeContributorInsights",
"dynamodb:Scan",
"dynamodb:ListTagsOfResource",
"dynamodb:Query",
"dynamodb:DescribeStream",
"dynamodb:DescribeTimeToLive",
"dynamodb:DescribeGlobalTableSettings",
"dynamodb:PartiQLSelect",
"dynamodb:DescribeTable",
"dynamodb:GetShardIterator",
"dynamodb:DescribeGlobalTable",
"dynamodb:GetItem",
"dynamodb:DescribeContinuousBackups",
"dynamodb:DescribeExport",
"dynamodb:DescribeKinesisStreamingDestination",
"dynamodb:DescribeBackup",
"dynamodb:GetRecords",
"dynamodb:DescribeTableReplicaAutoScaling"
],
"Resource": "ARN_OF_AWS_ACCOUNT_B:CORRECT_TABLE_PATH"
},
用於進行調用的代碼如下:
AmazonDynamoDBClientBuilder.standard()
.withCredentials(new InstanceProfileCredentialsProvider(false))
.withRegion(awsRegion)
.build();
執行此操作時,Java 應用程序會承擔正確的角色,但調用本身會失敗,因為它正在尋找不存在的 Dynamo DB 表。 這是我收到的錯誤消息:
用戶 CORRECT_INSTANCE_ROLE 無權對資源arn:ARN_OF_AWS_ACCOUNT_A /CORRECT_TABLE_PATH 執行查詢
顯然,問題在於它試圖查詢錯誤 AWS 賬戶上的資源。 但是,我一直無法弄清楚如何指示我的代碼查詢正確的 Dynamo 路徑。
任何幫助將不勝感激。
要在另一個賬戶上調用 DynamoDB 資源,您需要執行以下操作:
對於 Java V2,有一個完整的示例,其中包含使用 AWS SDK 的進一步分步說明和 GitHub 代碼。 請參考這篇文章和這個repo 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.