使用服务器端加密的 Amazon S3 桶
FSx for Lustre 支持 Amazon S3 桶,这些桶使用通过 S3 托管密钥(SSE-S3)和 AWS Key Management Service 中存储的 AWS KMS keys 进行的服务器端加密。
如果您希望 Amazon FSx 在写入您的 S3 桶时对数据进行加密,您需要将 S3 桶上的默认加密设置为 SSE-S3 或 SSE-KMS。有关更多信息,请参阅《Amazon S3 用户指南》中的配置原定设置加密。将文件写入您的 S3 桶时,Amazon FSx 将遵循您的 S3 存储桶的原定设置加密策略。
默认情况下,Amazon FSx 支持使用 SSE-S3 加密的 S3 桶。如果您想将您的 Amazon FSx 文件系统链接到使用 SSE-KMS 加密的 S3 桶,您需要为客户托管密钥政策添加声明,允许 Amazon FSx 使用您的 KMS 密钥加密和解密 S3 桶中的对象。
以下声明允许特定 Amazon FSx 文件系统为特定 S3 桶 bucket_name
加密和解密对象。
{ "Sid": "Allow access through S3 for the FSx SLR to use the KMS key on the objects in the given S3 bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
aws_account_id
:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/AWSServiceRoleForFSxS3Access_fsx_file_system_id
" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id
", "kms:ViaService": "s3.bucket-region
.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name
/*" } } }
注意
如果您使用带 CMK 的 KMS 在启用了 S3 桶密钥的情况下加密您的 S3 桶,请将 EncryptionContext
设置为桶 ARN,而不是对象 ARN,如下例所示:
"StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::
bucket_name
" }
以下策略声明允许您的账户中的所有 Amazon FSx 文件系统链接到特定的 S3 桶。
{ "Sid": "Allow access through S3 for the FSx SLR to use the KMS key on the objects in the given S3 bucket", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "
aws_account_id
", "kms:ViaService": "s3.bucket-region
.amazonaws.com" }, "StringLike": { "aws:userid": "*:FSx", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name
/*" } } }
以不同的 AWS 账户 或从共享 VPC 访问服务器端加密 Amazon S3 存储桶
创建链接到加密 Amazon S3 桶的 FSx for Lustre 文件系统后,您必须授权 AWSServiceRoleForFSxS3Access_
服务相关角色(SLR)访问用于加密 S3 桶的 KMS 密钥,然后才能从链接的 S3 桶读取或写入数据。您可以使用已拥有 KMS 密钥权限的 IAM 角色。fs-01234567890
注意
此 IAM 角色必须位于 FSx for Lustre 文件系统的创建账户(与 S3 SLR 相同的账户),而不是 KMS 密钥/S3 桶所属的账户。
您可以使用 IAM 角色调用以下 AWS KMS API,为 S3 SLR 创建授权,以便 SLR 获得对 S3 对象的权限。要查找与您的 SLR 关联的 ARN,请使用您的文件系统 ID 作为搜索字符串来搜索您的 IAM 角色。
$
aws kms create-grant --regionfs_account_region
\ --key-id arn:aws:kms:s3_bucket_account_region
:s3_bucket_account
:key/key_id
\ --grantee-principal arn:aws:iam::fs_account_id
:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/AWSServiceRoleForFSxS3Access_file-system-id
\ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
有关服务相关角色的更多信息,请参阅使用 Amazon FSx 的服务相关角色。