Javascript 如何设置与IAM关联的AWS密钥以限制AWS sdk客户端的可用权限?

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) {

我们希望限制ec2实例的暴露/风险,以防它被黑客攻击。实例需要执行的唯一需要AWS权限的功能是上传到S3。具体而言,我们使用
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副本。