amazon-web-services - 使用默认 aws/S3 KMS 密钥对解密对象进行跨账户访问
问题描述
在我的账户 A 中,我有 S3 存储桶,其中对象是加密的默认 AWS 托管密钥 aws/s3。
我想从帐户 B lambda 中读取这些对象。但在账户 A 中,对象使用 AWS 托管密钥 aws/s3 加密,我无法在此处修改 KMS 密钥策略。
我尝试在帐户 A 中创建一个角色,该角色具有所有 KMS 和 S3 权限,并信任帐户 B 中的角色。然后从帐户 B 我在 A 中担任此角色。但仍然得到
Access denied error in GetObject
我可以在这里做什么来从帐户 A 中读取对象。请指导。
账户 A 中的角色
statement
{
Action: kms:*
Resource : "*"
Effect: allow
}
{
Action: S3:*
Resource :
arn:aws:s3:::my-s3
arn:aws:s3:::my-s3/*
Effect: allow
}
解决方案
aws/s3
是AWS 托管密钥。正如文档所解释的,您不能将它们用于跨帐户访问。
由于无法更新 AWS 托管的 KMS 密钥策略,因此也无法为这些密钥策略授予跨账户权限。此外,其他 AWS 账户无法访问使用 AWS 托管 KMS 密钥加密的对象。
您必须使用客户管理的密钥 (CMK)进行跨账户访问。
推荐阅读
- javascript - 使用 AJAX 或 Javascript 将值从 DIV 解析到另一个 DIV
- javascript - 将 jQuery getJSON 插入 for 循环
- javascript - JavaScript,在“鼠标悬停”上,当您尝试将鼠标移到块上时会出现并消失
- regex - 使用正则表达式从原始数据中提取文件名
- php - Laravel:PHP特征可以将值添加到模型的受保护值
- android - 在移动设备上而不是在桌面设备上重定向循环
- python - 如果条件,内联添加元素到列表
- python - python具有唯一z值的多个x vs y线图
- corda - 如何在企业 Corda 节点上完全卸载 cordapp?
- matlab - 具有分组测量误差的 Matlab 混合效应模型