我有一个配置了加密功能的存储桶:
我有一个nodejs项目,使用streams在S3 bucket上上传/下载文件。问题是,我可以成功上传,但当我尝试使用stream下载/获取文件时,它只会发出一次“data”事件,之后会发出“end”事件,但仍有数据需要使用,如下面的日志所示。你知道为什么会这样吗?
其他信息:
下载流:
async downloadStream() {
logger.info('Getting download stream...');
const url = await this.getFileUrl(); // getSignedUrl
const headers = {};
this.downloadStream = request({ url, headers });
this.downloadStream.on('data', (chunk) => this.emit('data', chunk.length));
this.downloadStream.on('end', () => this.emit('end'));
this.downloadStream.on('error', (error = {}) => this.emit('failure', error));
logger.info('Acquired download stream successfully');
this.downloadStream.pipe(this.response);;
}
日志信息:
完整传输统计信息:
传输的字节数:13170字节中的4491字节
左:8679
平均块大小:4491字节
估计剩余块数:2
平均速度:0.000260375 MB/s总传输时间:13.127秒
使用KMS在服务器端加密的对象在访问它们时需要使用SigV4协议。资料来源:aws论坛
创建AWS时。S3客户端在选项中添加signatureVersion:“v4”:
return new aws.S3({
credentials,
params: {
bucket,
},
region,
signatureVersion: 'v4',
});
这解决了我的问题。
我在谷歌上搜索了一下,看起来我必须进行一些签名才能获得临时URL,比如:http://docs.aws.amazon.com/amazons3/latest/dev/restauthentication.html
decrypt方法中没有提供KMS密钥。这是否意味着KMS密钥在cyphertext Blob中被加密了?如果是... 如何授予解密加密密文Blob的权限? 如果要解密AWS服务中的值,是否创建IAM角色来执行此操作,并配置KMS密钥以允许该角色进行解密?
我已使用IAM角色启动了一个ec2实例,并将以下策略与IAM角色关联。 然而,当我试图从ec2-实例中使用aws cli下载文件时,我一直拒绝访问。 当我模拟策略并对bucket中的对象执行操作时,会收到消息“allowed”。当我访问时,我可以看到正确的实例配置文件附在实例上http://169.254.254/latest-metadata/iam/info 我有什么明显的遗漏吗?
场景:我们的一个脚本使用boto3 kms api使用kms加密和解密来放置和获取SSM参数。SSM param put工作非常好,并且在EC2 SSM param存储中使用安全字符串添加参数(解密为true)。我们所面临的问题是当解密为真时尝试获取SSM参数值。运行此脚本的相应lambda代码在尝试运行以下boto3脚本时(在运行get_ssm_parameters_by_path时)抛出以下错
问题内容: 亚马逊称该 加密和解密是透明处理的,因此您无需修改应用程序即可访问数据 我的应用程序(Rails,MySQL,Elasticsearch)构建了大量图形,因此查询了许多数据。根据我以前对数据库加密的经验,它确实会影响数据的检索速度(因为我们只能说记录在读取和解密后是否符合条件)。 有没有相关的基准?或者,也许您曾经使用过AWS的这种服务器端加密?我是否完全需要担心性能变化? 对我来
我正在使用chromedriver和selenium从应用程序下载文件。但当点击应用程序中的下载按钮时,它给出的错误是“” Chromedriver版本:2.21硒版本:2.53.0 初始化chrome驱动和更改下载位置的代码: 错误是: 有人能帮我吗?我可以手动从Chrome下载文件。