暗号化キーの管理
学習の目的
この単元を完了すると、次のことができるようになります。
- 暗号化キーを作成する。
- Marketing Cloud Engagement で暗号化キーを使用する。
- Marketing Cloud Engagement でデータを暗号化/復号化する。
キーの種類
Marketing Cloud Engagement セキュリティの基軸となるのがキーです。キーとは、Marketing Cloud Engagement でさまざまな機能を安全に使用できるようにするための値です。たとえば、暗号化や復号化、シングルサインオンの管理、Journey Builder のカスタムアクティビティの JSON Web トークン (JWT) の生成でキー値を使用します。
これらのキーはどこで確認できるのでしょうか? Marketing Cloud Engagement で、[セットアップ] をクリックし、[データ管理] セクションを展開すると、[キー管理] ページが表示されます。このページで自分のキーを作成して管理します。各自のニーズに応じて、数種類のキーを作成できます。確認しておきましょう。
- 非対称キーを作成する場合は、証明書をアップロードする必要があります。このキーを使用して、データを暗号化/復号化したり、メールメッセージにデジタル署名することができます。
- 対称キーは、このキーと一緒に使用するパスフレーズを作成する必要があります。このキー値には 32 個の 16 進文字が必要です。このキーを使用して、データを暗号化/復号化したり、メールメッセージにデジタル署名することができます。
- 初期化ベクトルキーの場合は、16 ビット値を自分で指定するか、キー管理で生成することができます。このキーを使用して、フィールドレベルの暗号化を実装できます。
- Salt キーは 8 ビットより大きい 16 進数値を使用します。この暗号化では、ランダムビットをパスワードまたはパスフレーズと併用し、Journey Builder のカスタムアクティビティの JWT を生成します。
- SSH キーは SFTP 認証を可能にします。このキーにもアップロードされた証明書が必要です。
- SSO メタデータキーにより、Marketing Cloud Engagement にシングルサインオン認証を連携させることができます。このキーは、アカウントの SSO 認証が有効な場合にのみ作成できます。
データの暗号化
Marketing Cloud Engagement のアクティビティで暗号化キーは多様な役割を担います。たとえば、次の AMPscript の例が示すように、送信時にデータを暗号化/復号化することができます。
例: AMPscript を使用したデータの暗号化/復号化
この 1 つ目のスクリプトは指定した外部キーを使用して ExampleData 値を暗号化し、2 つ目のスクリプトはそのデータを復号化します。
%%[ SET @encData=EncryptSymmetric("ExampleData", "AES", "passwordExternalKey", @null, "saltExternalKey", @null, "IVExternalKey", @null) SET @clearData=DecryptSymmetric(@encData, "AES", "passwordExternalKey", @null, "saltExternalKey", @null, "IVExternalKey", @null) ]%%
Automation Studio でファイル転送アクティビティのデータを暗号化/復号化することもできます。Marketing Cloud Engagement Safehouse の場所から FTP の場所へのファイル転送アクティビティの中でキーを指定します。
JWT のエンコード
Salt キーを使用して、Journey Builder アクティビティの JSON Web トークン (JWT) 情報をエンコードすることもできます。JWT は、カスタムアクティビティへの API コールを検証します。機密データを取得するアクティビティや、機密性の高いアクションを実行するアクティビティに JWT を使用します。次の例では、サンプルコードが、実行、保存、検証、公開アクティビティに JWT 値と Salt キーを使用しています。
例: Journey Builder の JWT のエンコード
var ixn = { "id": "...", "key": "...", "name": "My journey", "version": 1, "workflowApiVersion": 1, "activities": [ { "key": "REST-1", "name": "Custom REST Activity", "type": "REST", "outcomes": [ { "next": null } ], "arguments": { "execute": { "inArguments": [ { "message": "someMessage" } ], "outArguments": [], "url": "https://example.com/post.php?dir=et_rest_activity_execute", "body": "{email-body}", "header": "", "useJwt": true, "customerKey": "your-encryption-customer-key-here", "timeout": 10000 } }, "configurationArguments": { "save": { "url": "https://example.com/post.php?dir=et_rest_activity_save", "body": "", "header": "", "useJwt": true, "customerKey": "your-encryption-customer-key-here" }, "validate": { "url": "https://example.com/post.php?dir=et_rest_activity_validate", "body": "", "header": "", "useJwt": true, "customerKey": "your-encryption-customer-key-here" }, "publish": { "url": "https://example.com/post.php?dir=et_rest_activity_publish", "body": "", "header": "", "useJwt": true, "customerKey": "your-encryption-customer-key-here" } }, "metaData": { "isConfigured": true } } ], "triggers": [], "goals": [], "entryMode": "SingleEntryAcrossAllVersions", "executionMode": "Production", "status": "Draft" };
Marketing Cloud Engagement アカウントに SSO を実装する
最後に、どのシングルサインオン連携にも SSO メタデータキーが必要です。このキーの情報は連携の作成で使用したプロバイダーによって異なりますが、プロセスを完了するためには次の値が必要です。
- SAML メタデータ
- URL からのデータの取得 (プロバイダーが指定した URL から自動的に生成される)
- プロバイダー証明書
- エンティティ ID
- 名前 ID 形式
- シングルログアウトサービスの場所とバインド (プロバイダーが決定)
アクティビティの達成に必要なキーのみを作成して、安全に保存します。他のセキュリティ状況と同様に、キーを無造作に置いたままにすることはお勧めしません。次は、Web ページやランディングページの安全性を確保する最善の方法を見ていきます。