amazon-ec2 - IAM 无法访问启动模板
问题描述
我正在使用 AWS Node SDK 尝试使用启动模板来启动 EC2 实例。在同一用户的 Web 控制台中,我可以访问启动模板 ID,但在节点 API 中,它告诉我带有 ID 的启动模板不存在:
版本:aws-sdk@2.606.0
AWS 控制台中的屏幕截图
我的配置文件中的屏幕截图
(为了安全起见,我已经屏蔽了最后几个字符,但它们是相同的)
这是节点
AWS = require('aws-sdk');
AWS.config.update({region: global.settings.aws.region});
let instanceParams = {
LaunchTemplate: {
LaunchTemplateId: global.settings.aws.ltId
},
InstanceType: 't2.micro',
MinCount: 1,
MaxCount: 1
};
let instancePromise = new AWS.EC2().runInstances(instanceParams).promise();
instancePromise.then(
function(data) {
console.log(data);
}).catch(
function(err) {
console.error(err, err.stack);
});
这是 API 返回的错误:
InvalidLaunchTemplateId.NotFound:指定的启动模板不存在,模板 ID 为 lt-03969d13638b5XXXX。在 Request.extractError (/ApplicationPath/node_modules/aws-sdk/lib/services/ec2.js:50:35) 在 Request.callListeners (/ApplicationPath/node_modules/aws-sdk/lib/sequential_executor.js:106:20)在 Request.emit (/ApplicationPath/node_modules/aws-sdk/lib/sequential_executor.js:78:10) 在 Request.emit (/ApplicationPath/node_modules/aws-sdk/lib/request.js:683:14) 在 Request .transition (/ApplicationPath/node_modules/aws-sdk/lib/request.js:22:10) 在 AcceptorStateMachine.runTo (/ApplicationPath/node_modules/aws-sdk/lib/state_machine.js:14:12) 在 /ApplicationPath/ node_modules/aws-sdk/lib/state_machine.js:26:10 在请求。(/ApplicationPath/node_modules/aws-sdk/lib/request.js:38:9) 在请求。(/ApplicationPath/node_modules/aws-sdk/lib/request.js:685:12) 在 Request.emit (/ApplicationPath/node_modules/aws-sdk/lib/sequential_executor.js:116:18) 在 Request.emit (/ ApplicationPath/node_modules/aws-sdk/lib/sequential_executor.js:78:10) 在 Request.emit (/ApplicationPath/node_modules/aws-sdk/lib/request.js:683:14) 在 Request.transition (/ApplicationPath/ node_modules/aws-sdk/lib/request.js:22:10) 在 AcceptorStateMachine.runTo (/ApplicationPath/node_modules/aws-sdk/lib/state_machine.js:14:12) 在 /ApplicationPath/node_modules/aws-sdk/ lib/state_machine.js:26:10 在请求。(/ApplicationPath/node_modules/aws-sdk/lib/request.js:38:9) 在请求。(/ApplicationPath/node_modules/aws-sdk/lib/request.js:685:12) 在 Request.callListeners (/ApplicationPath/node_modules/aws-sdk/lib/sequential_executor.js:116:
IAM 访问包括:
AmazonEC2FullAccess
AmazonEC2FullAccess
(JSON 非常长,但如果需要,我很乐意在此处发布)
我的想法是 IAM 存在一些许可错误,但我无法确定可能是什么。感谢您的帮助,如果我可以提供任何其他澄清,请告诉我。
解决方案
如果您可以看到 AWS 控制台中存在给定的 AWS 资源,但 awscli 或 SDK 调用未返回该资源(反之亦然),则可能是以下原因之一:
- 您查询了错误的地区
- 您查询了错误的 AWS 账户(您的有效凭证用于第二个不同的账户)
- 您输入错误的资源名称/ID
- 您的浏览器缓存了不再存在的结果(刷新您的浏览器)
推荐阅读
- node.js - 如何将我的自定义类添加到 AWS Lambda 层?
- bitbucket-pipelines - bitbucket 管道双重缓存不起作用
- php - 选择 * 其中 Column_A 和 Column_B 是唯一的
- python - 编写一个程序,生成 20 次随机掷骰子序列并打印骰子值,只标记最长的一次
- python - 如何在进程启动时缓存字典值
- windows - 应用程序无法在 Windows 7 上正确启动 (0xc000007b) 错误。旧版本仍然可以正常工作
- python - 如何将变量插入字符串?
- python - 熊猫数据框比较索引的所有列值而没有列名参考
- python - 我每次都需要为新变量分配可能无限数量的值
- visual-studio - 如何确认 Eigen 在 Visual Studios 中启用矢量化?如何检查是否定义了 EIGEN_VECTORIZE 预处理器符号?