簡體   English   中英

無法使用 AWS 創建簽名的 url 並且在 kubernetes pod 上啟用了 IRSA

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM