繁体   English   中英

AWS JS SDK:如何使用根 IAM 账户从子账户/其他角色访问 GameLift 数据?

[英]AWS JS SDK: How do I access GameLift data from a subaccount / another role using the root IAM account?

我不太熟悉这些术语,所以请耐心等待。

我正在使用 React 在 CMS 网站上工作。 我们已经通过 AWS Cognito 登录,并且我们曾经有一个显示 GameFleet 数据的页面。

但是,别名和舰队已移至子账户: 在此处输入图像描述 在此处输入图像描述

因此 GameFleet 页面是空的。

我最初通过为 DevRole 子账户创建一个 IdentityPool(和角色)来解决这个问题,因为 CMS 通过以下代码检索 GameFleet 数据:

componentDidMount() {
    AWS.config.region = REGION;
        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
            IdentityPoolId: IDENTITY_POOL_ID // <--- Changed this to new IdentityPoolId
    });
    
    AWS.config.credentials.get(function(err) {
        if (err) console.log(err);
        else console.log(AWS.config.credentials);
    });

    await this.requestGameLiftData();
};

requestGameLiftData = async () => {
    const gamelift = new AWS.GameLift();
    try {
        const aliasData = await new Promise((resolve, reject) => {
            gamelift.listAliases({}, function(err, data) {
                if (err) { reject("Aliases failed");}
                else { resolve(data); }
            });
        });
    } catch (error) {
        console.log(error);
    }
};

但现在的问题是有一个新的子账户,我无权访问,我可以预见可能会创建新的子账户,这些子账户没有我的方法所需的必要 IdentityPoolId。

有人告诉我应该可以从根账户访问子账户 GameLift 数据,但我不确定如何访问。 我一直在查看主帐户下的 IAM 页面,但似乎没有任何内容可以指向子帐户。

我错过了什么吗?

您需要在此处使用 AWS Assume roles 功能,您的主账户可以使用该功能承担辅助账户的角色并获取子账户的临时凭证,该凭证可用于从主账户的子账户中提取数据。

https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM