这可能是由于密钥管理服务(KMS)密钥策略的访问限制所导致的。请确保对象存储桶的KMS密钥策略允许特定的管理员用户组访问密钥并解密对象。以下是一个示例代码片段,可用于更改S3存储桶的KMS密钥策略,以将访问权限授予管理员用户组:
import boto3
bucket_name = 'my-s3-bucket'
kms_key_id = 'my-kms-key-id'
region_name = 'us-gov-west-1'
# create S3 and KMS clients
s3 = boto3.client('s3', region_name=region_name)
kms = boto3.client('kms', region_name=region_name)
# get current key policy
response = kms.get_key_policy(KeyId=kms_key_id, PolicyName='default')
key_policy = response['Policy']
# modify key policy to allow admin user group access
new_policy = key_policy.replace(
'"Principal": {"AWS": "arn:aws:iam::123456789012:group/Admins"}',
'"Principal": {"AWS": "arn:aws:iam::123456789012:group/Admins"},\n"Action": "kms:*",\n"Resource": "*"\n}'
)
# update key policy
response = kms.put_key_policy(
KeyId=kms_key_id,
PolicyName='default',
Policy=new_policy
)
# print response
print(response)