Salesforceの暗号化

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめA～M](https://qiita.com/Keiji_otsubo/items/f3ddedee6793bf1576f8)

Spring 24で設定場所が変わった？

+ [暗号化：Encrypt New Data in Standard Fields](https://qiita.com/Keiji_otsubo/items/1f899bccced4206bb950)
--------------------------

APIを介してSalesforceの外部に移動するデータは、HTTPSを使用します。つまり、転送中に暗号化されます。保管時の暗号化とは、データベース内のデータが暗号化されることを意味します（プラットフォーム暗号化）。 

これらは2つの非常に異なるものです。「私たちの要件は、特定の統合についてのみ、保存時に電子メールフィールドを暗号化することです」と言う場合。あなたは2つを混同していると思います。 

Salesforceがすべてのトランザクションに義務付けているHTTPSを使用する場合、電子メールアドレスは暗号化されたパイプを介してプレーンテキストで送信されます（反対側はそれを読み取ることができます）。HTTPSがない場合は、フィールドを何かで暗号化してから、復号化する必要がある反対側に送信する必要があります。会話全体がネットワーク層によって暗号化されるため、HTTPSではこれは必要ありません。

[保管時の暗号化と特定のフィールド暗号化](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000GiEy8)

# 暗号化されているためののエラー

**There was an unhandled exception. Please reference ID: RZVOSLSP. Error: Restforce::ErrorCode::InvalidField. Message: INVALID_FIELD: '97202' AND BillingState= 'OR' AND BillingCity = 'Portland' AN**

+ [I am getting error while completing User Interface API | Build UI to Edit a Record badge](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Ghh5uSAB)
+ [暗号化のトレイルヘッドが他にも影響している。](https://qiita.com/Keiji_otsubo/items/daeeed56984494790300)

# Can not specify 'encryptionscheme' for a Customfield of type address 住所は暗号化未対応

+ [Hi again! So getting an error when attempting to deploy through change set...](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000KhbGl)
+ [上記で解決 Shield Platform Encryption](https://trailhead.salesforce.com//trailblazer-community/feed/0D54S00000Jfr23)

:::note
Beta feature doesnt support in Encryption, However, enabling encryption support is on our roadmap.  
This Limitation has been mentioned in the doc under "Limitations for Custom Address Fields (Beta)" section. 
To deploy custom address field you can remove  <encryptionScheme>None</encryptionScheme> as mentioned by Magulan.

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HDqNASA1
:::

既知の問題に挙がっていますね
+ [Deploying attribute encryptionScheme for a Custom Address Field throws error](https://trailblazer.salesforce.com/issues_view?id=a1p4V000000zpM0QAI)


# the ‘Account’ object, not able to encrypt ‘Billing Address’ field.

+ [Shield Platform Encryption](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Jfr23)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/766e835e-6f56-1bde-3ebc-aab66c97da72.png)

:::note
Beta feature doesnt support in Encryption, However, enabling encryption support is on our roadmap.

This Limitation has been mentioned in the doc under "Limitations for Custom Address Fields (Beta)" section.

+ [To deploy custom address field you can remove None as mentioned by Magulan.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HDqNASA1)

+ [Deploying attribute encryptionScheme for a Custom Address Field throws error](https://trailblazer.salesforce.com/issues_view?id=a1p4V000000zpM0QAI)
:::




# 数式

+ [暗号化されたフィールド](https://help.salesforce.com/s/articleView?id=sf.security_pe_formulas.htm&type=5)
+ [Using Encrypted Fields in Formulas](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000C68C1SAJ)

# トレイルヘッド

[Hi there while doing 'setup and manage shield platform encryption Iam stuck with the error "On the ‘Contact’ object, we can’t find the encrypted ‘Name’ field."can anybody help?](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000HjsbC)

# APEX で暗号化されているフィールドにアクセスする

[APEX はフィールドの暗号化を削除します](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000J6dZy)

プロファイルに移動し、以下の許可を有効にすると、レコード詳細ページとコードでデータを表示できるようになります。

注: この権限は、システム管理者を含むすべてのプロファイルでデフォルトで無効になっています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/9e54d005-185c-1839-ae93-62982786b4a1.png)

# Error: Error::Upsert failed. First exception on row 0; first error: UNKNOWN_EXCEPTION, Urgent: active encryption key is unavailable. You can’t edit, view, or create encrypted records without this DETERMINISTIC_DATA key. Contact your Salesforce security admin.: []

+ [When trying to Update records which have been encrypted using Platform Shield Encryption, I am receiving following DML error. Can someone please guide the exact steps to mitigate the issue?](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000J6qhX)

# Error: Error: Restforce::ErrorCode::InvalidField. Message: INVALID_FIELD: SELECT Id from Contact where Name = 'Big Spender' LIMIT 1 ^ ERROR at Row:1:Column:30 field 'Name' can not be filtered in a query call

+ [Problem in completing a challenge](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000NQz1T)

:::note
Please remove that field from encryption settings, which you may have enabled for some other trailhead module.

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Ghh5uSAB
:::

# ユーザーが暗号化されたフィールドを更新したときに所有者に連絡する

+ [Notify contact owner when user update encrypted fields](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000A9N9D)

:::note
If you want to see that the value has changed, you'll want an Apex trigger.

Best Practices  •Encrypted fields are editable regardless of whether the user has the View Encrypted Data permission. Use validation rules, field-level security settings, or page layout settings to prevent users from editing encrypted fields. •You can still validate the values of encrypted fields using validation rules or Apex. Both work regardless of whether the user has the View Encrypted Data permission.  

https://help.salesforce.com/articleView?id=fields_about_encrypted_fields.htm&type=0

値が変更されたことを確認する場合は、Apex トリガが必要です。

ベスト プラクティス • 暗号化されたフィールドは、ユーザーが暗号化されたデータの表示権限を持っているかどうかに関係なく編集できます。入力規則、フィールド レベルのセキュリティ設定、またはページ レイアウト設定を使用して、ユーザーが暗号化されたフィールドを編集できないようにします。 • 入力規則または Apex を使用して、暗号化された項目の値を引き続き検証できます。どちらも、ユーザーが暗号化されたデータの表示権限を持っているかどうかに関係なく機能します。  
:::

# 暗号化対象一覧を抽出する方法

+ [暗号化対象一覧を抽出する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007LW9SQ)

:::note
[暗号化統計] ページには、Shield Platform Encryption で暗号化されたすべてのデータの概要が表示されます。この情報は、鍵の循環および管理作業を掌握するのに役立ちます。暗号化統計を使用して、鍵素材の循環後に更新するオブジェクトと項目を識別することもできます。


暗号化カバー率に関する統計情報の取得
https://help.salesforce.com/s/articleView?id=sf.security_pe_stats.htm&type=5
:::

# 設定関係

+ [View Encrypted Data](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T67dMSAR)

:::note
I was able to figure this out. The permission is granted via System Permissions. This can be done at the profile level or via a permission set. 
:::