本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用服务器端加密的 Amazon S3 桶
FSx for Lustre 支持 Amazon S3 存储桶,这些存储桶使用服务器端 S3-managed 加密,SSE-S3密钥 () AWS KMS keys 和存储在 () 中。 AWS Key Management Service SSE-KMS
如果您希望 Amazon FSx 在写入 S3 存储桶时对数据进行加密,则需要将 S3 存储桶的默认加密设置为或 SSE-S3 。 SSE-KMS有关更多信息,请参阅《Amazon S3 用户指南》中的配置原定设置加密。将文件写入您的 S3 桶时,Amazon FSx 将遵循您的 S3 存储桶的原定设置加密策略。
默认情况下,Amazon FSx 支持使用加密的 S3 存储桶。 SSE-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:ViaService": "s3.bucket-region.amazonaws.com", "kms:CallerAccount": "aws_account_id" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name/*" }, "ArnLike": { "aws:PrincipalArn": "arn:aws_partition:iam::aws_account_id:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/AWSServiceRoleForFSxS3Access_fs-*" } } }
在不同的 VPC 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 存储桶所属的账户 key/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。