Javascript 如何设置与IAM关联的AWS密钥以限制AWS sdk客户端的可用权限?
我们希望限制ec2实例的暴露/风险,以防它被黑客攻击。实例需要执行的唯一需要AWS权限的功能是上传到S3。具体而言,我们使用Javascript 如何设置与IAM关联的AWS密钥以限制AWS sdk客户端的可用权限?,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我们希望限制ec2实例的暴露/风险,以防它被黑客攻击。实例需要执行的唯一需要AWS权限的功能是上传到S3。具体而言,我们使用javascript中的aws sdk库,如下所示: let s3 = new AWS.S3({ accessKeyId: ID, secretAccessKey: SECRET, region: REGION }); 然后我们上传: s3.upload(params, function(err, data) {
javascript
中的aws sdk
库,如下所示:
let s3 = new AWS.S3({
accessKeyId: ID,
secretAccessKey: SECRET,
region: REGION
});
然后我们上传:
s3.upload(params, function(err, data) {
if (err) {
throw `S3 uploading failed on ${fname} : ${err}`;
}
console.log(`Uploaded ${msgIn.length} bytes to ${fname} successfully at S3 ${data.Location}`);
});
但是这个aws
键拥有在aws中做任何事情的完全权限。我们不能那样。。因此,我研究了IAM
——它有正确的限制:
我希望通过IAM角色创建AWS
访问密钥。那能做到吗?或者是否有其他方法可以使用aws sdk仅为s3获取受限权限?请参阅
基本上:
- 创建具有相关权限的IAM角色
- 使用该角色启动EC2(或修改现有EC2)
- 不要向AWS SDK提供任何凭据(它将自动检索凭据)
请参阅
基本上:
- 创建具有相关权限的IAM角色
- 使用该角色启动EC2(或修改现有EC2)
- 不要向AWS SDK提供任何凭据(它将自动检索凭据)
Thx这很有帮助——特别是最后一个:我找不到如何通过临时信用:因为实际上没有!这些凭证是有时间限制的,并且会自动循环,这是一种比持久凭证更好的安全实践。SDK将根据需要更新其creds副本。Thx这很有帮助-尤其是最后一个:我找不到如何传递临时creds:因为实际上没有!这些凭证是有时间限制的,并且会自动循环,这是一种比持久凭证更好的安全实践。SDK将负责根据需要刷新其creds副本。