

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用伺服器端加密的 Amazon S3 儲存貯體
<a name="s3-server-side-encryption-support"></a>

 FSx for Lustre 支援使用伺服器端加密搭配 S3-managed3 受管金鑰 (SSE-S3) 以及預存於 (SSE-KMS) 的 Amazon S3 儲存貯體。 AWS KMS keys AWS Key Management Service 

如果您希望 Amazon FSx 在寫入 S3 儲存貯體時加密資料，您需要將 S3 儲存貯體上的預設加密設定為 SSE-S3 或 SSE-KMS。如需詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[設定預設加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html)。將檔案寫入 S3 儲存貯體時，Amazon FSx 會遵循 S3 儲存貯體的預設加密政策。

根據預設，Amazon FSx 支援使用 SSE-S3 加密的 S3 儲存貯體。如果您想要將 Amazon FSx 檔案系統連結至使用 S3-KMS 加密的 S3 儲存貯體，您需要將陳述式新增至客戶受管金鑰政策，以允許 Amazon FSx 使用您的 KMS 金鑰加密和解密 S3 儲存貯體中的物件。

下列陳述式允許特定 Amazon FSx 檔案系統加密和解密特定 S3 儲存貯體 *bucket\$1name* 的物件。

```
{
    "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/*"
        }
    }
}
```

**注意**  
 如果您使用 KMS 搭配 CMK 來加密已啟用 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-*"
        }
      }
}
```

## 存取不同 AWS 帳戶 或共用 VPC 中的伺服器端加密 Amazon S3 儲存貯體
<a name="s3-server-side-cross-account-support"></a>

建立連結至加密 Amazon S3 儲存貯體的 FSx for Lustre 檔案系統之後，您必須授予`AWSServiceRoleForFSxS3Access_fs-01234567890`服務連結角色 (SLR) 存取用於加密 S3 儲存貯體的 KMS 金鑰，才能從連結的 S3 儲存貯體讀取或寫入資料。您可以使用已具有 KMS 金鑰許可的 IAM 角色。

**注意**  
此 IAM 角色必須位於建立 FSx for Lustre 檔案系統的帳戶中 （與 S3 SLR 是相同的帳戶），而不是 KMS 金鑰/S3 儲存貯體所屬的帳戶。

您可以使用 IAM 角色呼叫下列 AWS KMS API 來建立 S3 SLR 的授予，以便 SLR 取得 S3 物件的許可。若要尋找與 SLR 相關聯的 ARN，請使用檔案系統 ID 做為搜尋字串來搜尋 IAM 角色。

```
$ aws kms create-grant --region fs_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 的服務連結角色](using-service-linked-roles.md)。