我有一个在不同堆栈中定义/管理的存储桶。存储桶由 KMS 中管理的密钥加密。在我自己的堆栈中,我正在尝试创建一个角色并分别授予该角色对存储桶和密钥的读取和解密权限。
我引用桶和密钥如下:
const otherBucket = Bucket.fromBucketName(this, 'otherBucket', '<BucketName>');
const otherKeyArn = otherBucket.encryptionKey?.keyArn || '';
我使用密钥 arn 为我的角色创建策略声明,它始终返回为 ''。我在堆栈中创建了另一个存储桶,当我尝试访问该存储桶的加密密钥时,我得到了该存储桶的正确密钥 arn。
fromBucketName
导致这种情况的方法中是否存在错误?我目前必须将密钥的字符串 arn 作为硬编码值存储在我的常量文件中,有没有更好的方法来做到这一点?