

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS KMS キーによるオブジェクトレベルのサーバー側の暗号化の有効化
<a name="using-kms-keys-for-encryption"></a>

メディアキャプチャパイプラインとメディア連結パイプラインは、 AWS Key Management Service (AWS KMS) カスタマーマネージドキーを使用して、Amazon S3 バケット内の個々のオブジェクトのサーバー側の暗号化 (SSE) を有効にできます。これを設定するには、[CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API コールを使用する必要があります。メディア連結パイプラインは、関連付けられたメディアキャプチャパイプラインのサーバー側の暗号化パラメータを使用します。

カスタマーマネージドキーを使用して AWS KMS 個々のオブジェクト (オブジェクトレベルの SSE) の SSE を有効にするには、[CreateMediaCapturePipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaCapturePipeline.html) API コール`SinkIamRoleArn`中に `SseAwsKeyManagementParams`構造と を指定する必要があります。

1. `SseAwsKeyManagementParams` 構造で `AwsKmsKeyId`パラメータを使用してキーを指定します AWS KMS 。キー ID は、キーの ID、ARN、またはエイリアスを使用して指定できます。

1. `SinkIamRoleArn` パラメータを使用して、 AWS KMS キーとシンク Amazon S3 バケットにアクセスする IAM ロールを指定します。

1. 必要に応じて、 `SseAwsKeyManagementParams`構造の `AwsKmsEncryptionContext`パラメータを使用して、セキュリティを強化するために AWS KMS キーアーティファクトとともに使用する暗号化コンテキストを指定できます。

**注記**  
`AwsKmsKeyId` パラメータと `SinkIamRoleArn`パラメータは共依存しています。両方が存在し、有効である場合、Media Capture Pipeline はロールを引き受け、指定された AWS KMS キーを使用して、指定された Amazon S3 バケットシンクに各アーティファクトを配置します。[CreateMediaConcatenationPipeline](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaConcatenationPipeline.html) API コールには新しいパラメータはありませんが、指定された場合は前述のパラメータを使用します。アーティファクトを連結する予定がある場合は、リソース設定が次の[設定](#using-kms-keys-for-encryption-config)セクションの説明に従って設定され、時間の経過とともに永続化されていることを確認します。

## 設定
<a name="using-kms-keys-for-encryption-config"></a>

アーティファクトを Amazon S3 バケットに配置する`SinkIamRoleArn`には、プリンシパルと同じアクセス許可とアクセス許可が必要です。Amazon S3 バケットで予想されるデフォルトのアクセス許可の詳細については、[「Amazon Chime SDK メディアキャプチャパイプライン用の Amazon S3 バケットの作成](https://docs.aws.amazon.com/chime-sdk/latest/dg/create-s3-bucket.html)」を参照してください。個々のオブジェクトに対して SSE を有効にするには、Amazon S3 バケットで、 を使用して指定された IAM ロール`SinkIamRoleArn`が、呼び出し元の IAM ID に期待されるのと同じ一連のアクションを実行できるようにする必要があります。これを実現するには、Amazon S3 バケットのアクセス許可ポリシーに次のプリンシパルを追加します。

```
...
"Principal": {
    ...
    "AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>;:role/<SINK_IAM_ROLE_NAME>"
    ...
},
...
```

は、 に `SinkIamRoleArn`の実行を許可するキーを指す`AwsKmsKeyId`必要があります`GenerateDataKey`。Media Concatenation Pipeline を使用する場合、 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>:*"
        }
    }
}
```

には、Media Capture Pipeline に対する以下の最小アクセス許可ポリシー`SinkIamRoleArn`が必要です。次の例を参照してください。

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

## メディア連結の実装
<a name="media-concatenation-implementatoin"></a>

メディアキャプチャ後にメディア連結パイプラインを使用する予定がある場合は、[Amazon Chime SDK メディア連結パイプラインの構築](create-concat-pipe-steps.md)「」を参照して必要なアクセス許可を理解してください。オブジェクトレベルの 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>/*",
    }
    ...
}
...
```