[英]Unable to create a signed url using AWS and with IRSA enabled on kubernetes pods
我正在尋找創建一個簽名的 url 以便我可以創建一個 MQTT 客戶端。 為此,我需要一個秘密訪問密鑰、訪問密鑰 ID 和 session 令牌。 由於我的 pod 使用 IRSA,因此理想情況下,我希望使用我使用 aws sdk 檢索的臨時憑證來執行此操作。
我嘗試了很多東西,這是最新的
import v4 from 'aws-signature-v4';
const role = await sts
.assumeRole({
RoleArn: 'arn:aws:iam::my-acc:role/my-role',
RoleSessionName: 'some-random-session-name',
DurationSeconds: 900,
})
.promise();
const url = v4.createPresignedURL(
'GET',
awsConfig.iotDataEndpoint.toLowerCase(),
'/mqtt',
'iotdevicegateway',
'',
{
key: role.Credentials.AccessKeyId,
secret: role.Credentials.SecretAccessKey,
sessionToken: role.Credentials.SessionToken,
protocol: 'wss',
expires: 900,
region: awsConfig.region,
})
拋出
User: arn:aws:sts::my-acc:assumed-role/my-role/token-file-web-identity is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::my-acc:role/my-role
我確保arn:aws:sts::my-acc:assumed-role/my-role
有權執行sts:AssumeRole
並且與資源存在信任關系。
有任何想法嗎?
事實證明,您在 IRSA 中使用的角色也需要擁有自己的權限。
將sts:AssumeRole
權限添加到arn:aws:iam::my-acc:role/my-role
用於arn:aws:iam::my-acc:role/my-role
修復了它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.