无法使用 AWS 和在 kubernetes pods 上启用 IRSA 创建签名 url
Unable to create a signed url using AWS and with IRSA enabled on kubernetes pods
我想创建一个签名 url,这样我就可以创建一个 MQTT 客户端。
为此,我需要一个秘密访问密钥、访问密钥 ID 和会话令牌。由于我的 pods 使用 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 使用的角色也需要获得自行承担的权限。
为 arn:aws:iam::my-acc:role/my-role
添加 sts:AssumeRole
权限以修复 arn:aws:iam::my-acc:role/my-role
我想创建一个签名 url,这样我就可以创建一个 MQTT 客户端。 为此,我需要一个秘密访问密钥、访问密钥 ID 和会话令牌。由于我的 pods 使用 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 使用的角色也需要获得自行承担的权限。
为 arn:aws:iam::my-acc:role/my-role
添加 sts:AssumeRole
权限以修复 arn:aws:iam::my-acc:role/my-role