Simple Log Service では、Key Management Service (KMS) を使用して静的データの保護のためにデータを暗号化できます。本ドキュメントでは、Simple Log Service のデータ暗号化の仕組みについて説明し、KMS を使用したデータ暗号化の方法を紹介します。
前提条件
Key Management Service (KMS) が有効化されています。詳細については、「専用 KMS インスタンスの購入」をご参照ください。
データ暗号化の仕組み
Simple Log Service は、次の 2 種類の暗号化メカニズムをサポートしています。
サービスキーによる暗号化
特徴:
-
簡便性:追加の設定は不要です。Simple Log Service が暗号化とキー管理を担当するため、運用オーバーヘッドを軽減できます。
-
キーの隔離:各 Logstore ごとに一意のデータ暗号化キーが生成され、データセキュリティが強化されます。
-
耐久性:これらのデータ暗号化キーは有効期限切れにならず、長期的な暗号化の安定性を確保します。
-
サポートされる暗号化アルゴリズム:AES(デフォルト)および SM4。
適用範囲:
-
キーを自分で管理せずに、迅速にデータ暗号化を実装したい場合。
-
特にキー管理に関する要件がなく、サービスプロバイダーにキー管理を任せたい場合。
-
データ暗号化キーの長期的な有効性と安定性を確保する必要があります。
対象ユーザー:
複雑なキー管理タスクを扱わずに、シンプルで安全なログ暗号化を希望する中小企業または個人ユーザー。
Bring Your Own Key (BYOK) による暗号化
特徴:
-
完全な制御:キーの作成、ローテーション、削除など、ライフサイクル全体をユーザー自身で管理できます。
-
柔軟性:セキュリティと柔軟性を高めるために、必要に応じてキーを簡単に更新またはローテーションできます。
-
積極的な管理:KMS コンソールでカスタマーマスターキー (CMK) を作成・管理し、必要な権限を付与する必要があります。
適用範囲:
-
組織に厳格なセキュリティおよびコンプライアンス要件があり、自己管理の暗号化キーを使用することが義務付けられている場合。
-
より高いセキュリティ基準を満たすために、暗号化キーを積極的に管理およびローテーションしたい場合。
-
キーが漏洩した場合やその他のセキュリティリスクが発生した際に、データを保護するために迅速にキーをローテーションまたは削除できる機能が必要な場合。
対象ユーザー:
厳格なデータ保護およびコンプライアンス要件を有し、独自のキー管理ポリシーを実装する必要があり、キー管理のための専任チームを擁する大企業または金融機関。
カスタマーマスターキー (CMK) が削除または無効化された場合、関連付けられた BYOK キーは無効となり、Logstore へのすべての読み取りおよび書き込みリクエストが失敗します。
制限事項
一度暗号化メカニズムを選択すると、変更することはできません。また、暗号化アルゴリズムまたはタイプを変更することもできません。enable パラメーターを使用してのみ、暗号化機能を有効または無効にできます。Logstore を更新する際は、各リクエストに encrypt_conf パラメーターの完全な構成を含める必要があります。
たとえば、最初にサービスキーを使用してデータを暗号化することを選択した場合、後から Bring Your Own Key (BYOK) 方式に切り替えることはできません。
サービスキーによるデータ暗号化
データ暗号化を設定するには、CreateLogStore または UpdateLogStore API を呼び出す際に、encrypt_conf パラメーターを含めてください。
encrypt_conf フィールドのデータ構造は、次の表のとおりです。user_cmk_info フィールドは必須ではありません。
|
パラメーター |
タイプ |
説明 |
例 |
|---|---|---|---|
|
object |
暗号化の構成。 |
||
| enable |
boolean |
データ暗号化を有効にするかどうか。有効値:
|
true |
| encrypt_type |
string |
暗号化アルゴリズム。有効値:default および sm4。enable が true に設定されている場合は必須です。 |
default |
| user_cmk_info | EncryptUserCmkConf |
任意。指定した場合、Bring Your Own Key (BYOK) キーが使用されます。指定しない場合は、Simple Log Service のサービスキーが使用されます。 |
{ "cmk_key_id" : "f5136b95-2420-ab31-xxxxxxxxx" "arn" : "acs:ram::13234:role/logsource" "region_id" : "cn-hangzhou" } |
BYOK によるデータ暗号化
前提条件
Key Management Service (KMS) が有効になっている必要があります。詳細については、「専用 KMS インスタンスの購入」をご参照ください。
ステップ 1:BYOK 権限の付与
BYOK 方式を使用する前に、必要な Resource Access Management (RAM) 権限を付与する必要があります。
-
RAM コンソールにログインします。
-
信頼された Alibaba Cloud サービスの RAM ロールを作成するには、次の構成を使用します:
ロールタイプ には 共通サービスロール を選択します。ロール名 には
KMS-TESTを入力します。信頼されたサービスの選択 には Simple Log Service を選択します。 -
RAM ロールに AliyunKMSReadOnlyAccess および AliyunKMSCryptoUserAccess 権限を付与します。詳細については、「RAM ロールへの権限付与」をご参照ください。
-
ram:PassRole 権限を付与します。Alibaba Cloud アカウントを使用して BYOK 暗号化を設定する場合は、この手順をスキップできます。RAM ユーザーを使用する場合は、カスタムポリシーを作成する必要があり、その後RAM ユーザーに権限を付与する必要があります。
次のポリシーの
Resource値は、ステップ 2 で作成した RAM ロールの Amazon リソースネーム (ARN) に置き換える必要があります。RAM ロールの ARN の確認方法の詳細については、「RAM ロールの ARN を確認する方法」をご参照ください。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::<account-id>:role/<role-name>" } ] }
ステップ 2:データ暗号化の設定
データ暗号化を設定すると、暗号化アルゴリズムまたはタイプを変更することはできません。enable パラメーターを使用してのみ、暗号化機能を有効または無効にできます。Logstore を更新する際は、各リクエストに encrypt_conf パラメーターの完全な構成を含める必要があります。
既存の Logstore に対しては、UpdateLogStore API を呼び出し、encrypt_conf パラメーターを含めてデータ暗号化を設定します。
UpdateLogStore を呼び出す前に、まず GetLogStore を呼び出して現在の Logstore 構成を取得し、その構成を変更して UpdateLogStore リクエストに渡す必要があります。
次の表は、encrypt_conf パラメーターのデータ構造を示しています。BYOK を使用するには、user_cmk_info パラメーターを必ず指定する必要があります。
|
パラメーター |
タイプ |
説明 |
例 |
|---|---|---|---|
|
object |
暗号化の構成。 |
||
| enable |
boolean |
データ暗号化を有効にするかどうか。有効値:
|
true |
| encrypt_type |
string |
暗号化アルゴリズム。有効値:default および sm4。enable が true に設定されている場合は必須です。 |
default |
| user_cmk_info | EncryptUserCmkConf |
任意。指定した場合、Bring Your Own Key (BYOK) キーが使用されます。指定しない場合は、Simple Log Service のサービスキーが使用されます。 |
{ "cmk_key_id" : "f5136b95-2420-ab31-xxxxxxxxx" "arn" : "acs:ram::13234:role/logsource" "region_id" : "cn-hangzhou" } |
EncryptUserCmkConf データ構造
|
パラメーター |
タイプ |
説明 |
例 |
|
object |
ユーザー管理の暗号化設定のデータ構造。 |
||
|
cmk_key_id |
string |
BYOK 用のカスタマーマスターキー (CMK) の ID。 |
f5136b95-2420-ab31-xxxxxxxxx |
|
arn |
string |
ステップ 1 で作成した RAM ロールの ARN。 |
acs:ram::13234:role/logsource |
|
region_id |
string |
CMK が配置されているリージョン ID。 |
cn-hangzhou |
encrypt_conf = {
"enable" : true, # 暗号化を有効にするかどうかを指定します。
"encrypt_type" : "default", # 暗号化アルゴリズム。サポートされる値:default、m4、sm4_ecb、sm4_cbc、sm4_gcm、aes_ecb、aes_cbc、aes_cfb、aes_ofb、aes_gcm。
"user_cmk_info" : # 任意。このパラメーターを指定すると、BYOK が使用されます。指定しない場合は、サービスキーが使用されます。
{
"cmk_key_id" : "", # BYOK 用の CMK の ID。例:f5136b95-2420-ab31-xxxxxxxxx。
"arn" : "", # ステップ 1 で作成した RAM ロールの ARN。
"region_id" : "" # CMK が配置されているリージョン ID。
}
}
関連ドキュメント
詳細については、次の API オペレーションをご参照ください。