本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS KMS 金鑰啟用物件層級伺服器端加密
媒體擷取管道和媒體串連管道可以使用 AWS Key Management Service (AWS KMS) 客戶受管金鑰,為 Amazon S3 儲存貯體中的個別物件啟用伺服器端加密 (SSE)。若要設定此項目,您必須使用 CreateMediaCapturePipeline API 呼叫。媒體串連管道將使用相關聯媒體擷取管道的伺服器端加密參數。
若要使用客戶受管金鑰啟用個別物件的 SSE AWS KMS (物件層級 SSE),您必須在 CreateMediaCapturePipeline API 呼叫SinkIamRoleArn期間提供 SseAwsKeyManagementParams結構和 :
-
使用
SseAwsKeyManagementParams結構中的AwsKmsKeyId參數來指定金鑰 AWS KMS 。您可以使用金鑰的 ID、ARN 或別名來指定金鑰 ID。 -
使用
SinkIamRoleArn參數指定 IAM 角色來存取 AWS KMS 金鑰和目的地 Amazon S3 儲存貯體。 -
或者,您可以使用
SseAwsKeyManagementParams結構中的AwsKmsEncryptionContext參數來指定要使用的加密內容,以及增強安全性的 AWS KMS 金鑰成品。
注意
AwsKmsKeyId 和 SinkIamRoleArn 參數是相互依存的。當兩者都存在且有效時,媒體擷取管道將擔任 角色,並將每個成品放入具有指定 AWS KMS 金鑰的指定 Amazon S3 儲存貯體接收器。CreateMediaConcatenationPipeline API 呼叫沒有新參數,但如果指定,將使用上述參數。如果您打算串連成品,請確定您的資源組態已如下組態節所述進行設定,並且會隨著時間持續存在。
組態
SinkIamRoleArn 必須有與主體相同的許可和存取權,才能將成品放入 Amazon S3 儲存貯體。如需 Amazon S3 儲存貯體中預期預設許可的詳細資訊,請參閱為 Amazon Chime SDK 媒體擷取管道建立 Amazon S3 儲存貯體。若要為個別物件啟用 SSE,Amazon S3 儲存貯體必須允許使用 指定的 IAM 角色SinkIamRoleArn執行您從呼叫 IAM 身分預期的相同動作集。您可以將下列主體新增至 Amazon S3 儲存貯體許可政策,以達到此目的。
... "Principal": { ... "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>;:role/<SINK_IAM_ROLE_NAME>" ... }, ...
AwsKmsKeyId 應指向允許 執行 SinkIamRoleArn的金鑰GenerateDataKey。如果將使用媒體串連管道, AWS KMS 金鑰也應允許使用 Decrypt動作。請參閱以下範例。
注意
資源設定為使用萬用字元 “*”,在這種情況下, AWS KMS 金鑰政策表示「本身」。
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:role/<YOUR_CUSTOMER_ROLE_ID>" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }
SinkIamRoleArn 角色必須具有信任關係,允許服務擔任該角色。請參閱以下範例。
{ "Effect": "Allow", "Principal": { "Service": "mediapipelines.chime.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<YOUR_ACCOUNT_ID>" }, "ArnLike": { "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*" } } }
SinkIamRoleArn 應具有下列 Media Capture Pipeline 的最低許可政策。請參閱以下範例。
{ "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<MS_KEY_ID>", "Condition": { "StringEquals": { "aws:SourceAccount": "<YOUR_ACCOUNT_ID>" }, "ArnLike": { "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*" } } }, { "Effect": "Allow", "Action": ["s3:PutObject", "s3:PutObjectAcl"], "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*", "Condition": { "StringEquals": { "aws:SourceAccount": "<YOUR_ACCOUNT_ID>" }, "ArnLike": { "aws:SourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:*" } } }
此外,必須允許發起人傳遞SinkIamRoleArn至 服務。如果發起人沒有這類許可,則應明確新增。請參閱以下範例。
{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "<SINK_IAM_ROLE_ARN>", "Condition": { "ArnLike": { "iam:AssociatedResourceArn": "arn:aws:chime:*:<YOUR_ACCOUNT_ID>:media-pipeline/*" }, "StringEquals": { "iam:PassedToService": "mediapipelines.chime.amazonaws.com" } } }
媒體串連實作
如果您打算在媒體擷取後使用媒體串連管道,請參閱 建置 Amazon Chime SDK 媒體串連管道以了解所需的許可。若要讓管道使用物件層級 SSE 的 AWS KMS 金鑰,必須擴展 AWS KMS 金鑰和 Amazon S3 儲存貯體的SinkIamRoleArn許可 (允許的動作)。請參閱以下範例。
... { ... { ... "Action": ["kms:GenerateDataKey","kms:Decrypt"] "Resource": "arn:aws:kms:<KMS_KEY_REGION>:<KMS_KEY_ACCOUNT_ID>:key/<KMS_KEY_ID>", ... } ... { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket"], "Resource": "arn:aws:s3:::<YOUR_DEDICATED_KMS_BUCKET_ID>/*", } ... } ...