- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一些问题。我有几个 lambda 函数,如果我在本地创建脚本并运行它,一切正常,但如果我的代码在远程 lambda 上工作,我有错误:访问被拒绝
S3Service.prototype.PutFile = function (bucket, key, body, type, callback) {
var s3 = new this.AWS.S3({region: awsConfig.region,"signatureVersion":"v4"});
var params = {
Bucket: bucket,
Key: key,
Body: body,
ContentType: type,
ACL: 'public-read-write',
ServerSideEncryption: 'aws:kms',
SSEKMSKeyId: awsConfig.kmsKeyId
};
s3.putObject(params, function (err, res) {
if (err) {
callback(new InternalServerError(err));
} else {
callback(null);
}
});
};
S3Service.prototype.GetFile = function (params, callback) {
var s3 = new this.AWS.S3({ region: awsConfig.region,"signatureVersion":"v4"});
s3.getObject(params, function (err, data) {
if (err) {
callback(new InternalServerError(err));
} else {
callback(null, data.Body, data.ContentType);
}
});
};
桶政策:
var policy = {
"Version": "2012-10-17",
"Statement":[{
"Sid":"DenyUnEncryptedObjectUploads",
"Effect":"Deny",
"Principal": "*",
"Action":["s3:PutObject"],
"Resource": "arn:aws:s3:::" + name + "/*",
"Condition":{
"StringNotEquals":{
"s3:x-amz-server-side-encryption":"aws:kms"
}
}
}
]
};
生成 kms key :
kms.createKey({ Description: 'qwe', KeyUsage: 'ENCRYPT_DECRYPT' }, function (err, data) {
//var keyId = data.KeyMetadata.KeyId
});
如何使用 ServerSideEncryption: 'aws:kms' 正确地将加密对象放入和获取到 S3?
最佳答案
这是解决方案:
转到 S3 控制台,打开存储桶并查看 KMS key 用于服务器端加密的内容。
转到 Lambda 控制台,打开您的 lambda 函数并查看什么是执行角色。
转到 KMS 控制台,打开 1. 中的 key ,向下滚动到 Key Users 部分并添加 2. 中的执行角色。
那么您只需要PutObject
权限即可。
关于node.js - 如何使用 KMS 在 nodejs 中获取/放置 S3 加密对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36858390/
我的 aws 帐户位于 us-west-2 区域。并且在该账户中创建的 KMS key 具有 ARN arn:aws:kms:us-east-1::key/。在我的节点模块中,我使用 Credstas
当encrypting symmetrically使用 Google Cloud 的 KMS,Google Cloud automatically选择主键版本: Each symmetric encr
我需要使用客户端 key 加密一些文本字符串,然后使用与客户端加密相同的 key 在服务器端解密此加密字符串。 据我了解,AWS KMS 是建立在 AES 之上的。 那么我可以使用 CryptoJS
我已经创建了一个谷歌云项目并启用了 谷歌云 key 管理服务 (KMS) API。我创建了两个 key 圈。 keyring1位于us-east1,keyring2位于global。我创建了以下 ja
使用 Cloudformation 创建新的 KMS key 时,我在“状态原因”列中看到此消息: Did not have IAM permissions to process tags on AW
在阅读Cloudera KMS Installation procedure时,我发现 Cloudera strongly recommends not using Java Keystore KMS
Amazon Key Management Services 背后使用哪些算法或加密方法? 我搜索了它,但只找到了与配置相关的信息,而不是集成信息。 最佳答案 我会在这个答案的开头说,如果你真的感兴趣
我必须将.Net Core应用程序从Google App Engine移至Google Kubernetes Engine,因为我需要静态IP,可惜Google App Engine没有该选项。 我设
我使用 AWS SDK iOS v2.6.21 以编程方式将 KMS (SSE-KMS) 加密添加到 AWS S3 存储桶。我使用以下 Objective-C 代码执行此操作: AWSS3 *awsC
我正在寻求帮助,使用 KMS 在 Hive 中实现列级加密(与 https://issues.apache.org/jira/browse/HIVE-7934 完全相似)。虽然我清楚所引用 URL 中
我是 hadoop KMS 的新手,我已经使用 hadoop 启动了 KMS。现在我尝试运行这个 curl 命令 curl -i --header "Accept:application/json"
我不确定为什么我们需要这个 Hadoop KMS 正是为了?我浏览了 Apache Hadoop 的官方文档,并没有确切提到为什么我们需要这个概念。我唯一清楚的是,使用此 client 和 serve
我搜索了 Google 结果,这似乎是不可能的,所以:有人知道如何使用 KMS 在控制台中更改或设置特定的视频分辨率吗? 我没有使用任何图形服务器或图形子系统,所以这个问题只与控制台有关。 我使用的是
我正在尝试验证使用 Google 的云 KMS 生成的签名,但我不断收到无效响应。 这是我测试它的方式: const versionName = client.cryptoKeyVersionPath
我的问题可能听起来太明显了,但我是 Amazon KMS 的新手。在阅读了 AWS 上的大量文档后,我了解到,如果我直接使用 CMK 进行加密和解密,我可以直接通过创建加密和解密请求来完成。但我不清楚
我已经能够使用私钥签署云端 URL,但很难保证私钥的安全。我正在考虑使用 KMS 来保证私钥的安全,有没有办法使用存储在亚马逊 KMS 中的 key 对 URL 进行签名? 最佳答案 答案是否定的,C
给定一个定义了以下内容的 CloudFormation 模板: KMS key KMS key 别名 一个 S3 存储桶 如果由于某种原因我需要删除 CloudFormation 堆栈并重新部署,删除
这是一个新手安全/控制台问题......我在我的项目中在欧洲的一个特定(错误)位置创建了一个 key 环。 我在控制台中看不到任何编辑甚至删除 key 环的方法。 key 圈完全是空的……里面没有 k
如何使用 boto3 资源从 S3 存储桶读取 KMS 加密文件? 下面是我用来读取非加密文件的片段 - s3 = boto3.resource('s3') obj = s3.Object(bucke
我正在 AWS Lambda 上编写无服务器函数。 在某些情况下,我需要使用 kms:GenerateDataKey*权限。 这样做的目的究竟是什么。我检查了 AWS 文档,但它太神秘了。有人可以举一
我是一名优秀的程序员,十分优秀!