保存時の Azure データの暗号化Azure Data Encryption at rest

Microsoft Azure には、会社のセキュリティとコンプライアンスのニーズに合わせてデータを保護するためのツールが含まれています。Microsoft Azure includes tools to safeguard data according to your company's security and compliance needs. このドキュメントでは次に重点を置いています。This paper focuses on:

  • Microsoft Azure 全体で保存データを保護する方法How data is protected at rest across Microsoft Azure
  • データ保護実装を構成しているさまざまなコンポーネントについて説明するDiscusses the various components taking part in the data protection implementation,
  • さまざまなキー管理保護アプローチの長所と短所を確認するReviews pros and cons of the different key management protection approaches.

保存中データの暗号化は、一般的なセキュリティ要件です。Encryption at Rest is a common security requirement. Azure では、組織は、リスクやカスタム キー管理ソリューションのコストなしで、保存データを暗号化できます。In Azure, organizations can encrypt data at rest without the risk or cost of a custom key management solution. 組織は、Azure のみを使用して保存データの暗号化を完全に管理することを選択できます。Organizations have the option of letting Azure completely manage Encryption at Rest. さらに、組織には、暗号化または暗号化キーを厳密に管理するさまざまなオプションが提供されています。Additionally, organizations have various options to closely manage encryption or encryption keys.

保存データの暗号化とはWhat is encryption at rest?

暗号化は、データの機密保護に使用されるデータを安全に符号化することです。Encryption is the secure encoding of data used to protect confidentiality of data. Azure の保存時の暗号化では、対称暗号化を使用して暗号化し、単純な概念モデルに基づいて大量のデータをすばやく復号化します。The Encryption at Rest designs in Azure use symmetric encryption to encrypt and decrypt large amounts of data quickly according to a simple conceptual model:

  • データがストレージに書き込まれるときに、対称暗号化キーを使用してデータが暗号化されます。A symmetric encryption key is used to encrypt data as it is written to storage.
  • メモリで使用する準備を行ときに、同じ暗号化キーを使用してデータが複合化されます。The same encryption key is used to decrypt that data as it is readied for use in memory.
  • データはパーティション分割されることがあり、パーティションごとに異なるキーが使用されることがあります。Data may be partitioned, and different keys may be used for each partition.
  • キーは、ID ベースのアクセス制御と監査ポリシーが適用される、セキュリティで保護された場所に保存する必要があります。Keys must be stored in a secure location with identity-based access control and audit policies. データ暗号化キーは多くの場合、さらにアクセスを制限するため、Azure Key Vault のキーの暗号化キーで暗号化されます。Data encryption keys are often encrypted with a key encryption key in Azure Key Vault to further limit access.

実際には、キーの管理と制御のシナリオに加え、拡張性と可用性を保証するには、追加の構造が必要です。In practice, key management and control scenarios, as well as scale and availability assurances, require additional constructs. Microsoft Azure Encryption at Rest の概念とコンポーネントは次のとおりです。Microsoft Azure Encryption at Rest concepts and components are described below.

保存時の暗号化の目的The purpose of encryption at rest

保存時の暗号化は、格納されているデータ (保存されているデータ) を保護します。Encryption at rest provides data protection for stored data (at rest). 保存データへの攻撃では、データが保存されているハードウェアへの物理的なアクセスを取得し、その中に含まれるデータが侵害されます。Attacks against data at-rest include attempts to obtain physical access to the hardware on which the data is stored, and then compromise the contained data. このような攻撃では、メンテナンス中にサーバーのハード ドライブの保護を誤り、攻撃者にハード ドライブを削除する機会を与えることがあります。In such an attack, a server's hard drive may have been mishandled during maintenance allowing an attacker to remove the hard drive. 攻撃者は、この後、攻撃者があやつるハード ドライブをコンピューターに戻し、データにアクセスします。Later the attacker would put the hard drive into a computer under their control to attempt to access the data.

Encryption at Rest は、データをディスク上で確実に暗号化することで、暗号化されていないデータに攻撃者がアクセスできないよう設計されています。Encryption at rest is designed to prevent the attacker from accessing the unencrypted data by ensuring the data is encrypted when on disk. 攻撃者は、暗号化されたデータを含むハード ドライブを入手しても、暗号化キーがないと、データを読み取るためには暗号化を破る必要があります。If an attacker obtains a hard drive with encrypted data but not the encryption keys, the attacker must defeat the encryption to read the data. この攻撃は、ハード ドライブの暗号化されていないデータにアクセスするよりも大幅に複雑で、多くのリソースを消費します。This attack is much more complex and resource consuming than accessing unencrypted data on a hard drive. このため、保存時に暗号化することは、多くの組織の高優先度要件として強く推奨されます。For this reason, encryption at rest is highly recommended and is a high priority requirement for many organizations.

保存時の暗号化は、組織のデータ ガバナンスとコンプライアンス活動の要件にもなります。Encryption at rest may also be required by an organization's need for data governance and compliance efforts. HIPAA、PCI、FedRAMP などの業界および政府規制には、データ保護と暗号化要件について、具体的な保護対策が規定されています。Industry and government regulations such as HIPAA, PCI and FedRAMP, lay out specific safeguards regarding data protection and encryption requirements. 保存時の暗号化は、いくつかの規制では、規制に準拠するための必須対策と規定されています。Encryption at rest is a mandatory measure required for compliance with some of those regulations. FIPS 140-2 の検証に対する Microsoft のアプローチについて詳しくは、「連邦情報処理規格 (FIPS) 文書 140-2」を参照してください。For more information on Microsoft's approach to FIPS 140-2 validation, see Federal Information Processing Standard (FIPS) Publication 140-2.

コンプライアンスと規制の要件に対応することに加えて、保存時の暗号化によって、多層防御の保護が提供されます。In addition to satisfying compliance and regulatory requirements, encryption at rest provides defense-in-depth protection. Microsoft Azure では、サービス、アプリケーション、およびデータのために、準拠しているプラットフォームを提供します。Microsoft Azure provides a compliant platform for services, applications, and data. また、包括的な設備と物理的セキュリティ、データ アクセスの制御、および監査を提供します。It also provides comprehensive facility and physical security, data access control, and auditing. ただし、他のセキュリティ対策の 1 つが失敗した場合に「一部が重複する」セキュリティ対策を提供することが重要であり、保存時の暗号化は、そのようなセキュリティ対策となります。However, it's important to provide additional "overlapping" security measures in case one of the other security measures fails and encryption at rest provides such a security measure.

Microsoft は、クラウド サービス全体にわたって保存時の暗号化オプションを提供し、お客様が暗号化キーとキーの使用ログを管理できるようにすることに注力しています。Microsoft is committed to encryption at rest options across cloud services and giving customers control of encryption keys and logs of key use. Microsoft はさらに、既定でお客様の保存データがすべて暗号化されるよう取り組んでいます。Additionally, Microsoft is working towards encrypting all customer data at rest by default.

Azure Encryption at Rest のコンポーネントAzure Encryption at Rest Components

前述のように、保存時の暗号化の目的は、ディスクに保存されているデータを秘密暗号化キーで暗号化することです。As described previously, the goal of encryption at rest is that data that is persisted on disk is encrypted with a secret encryption key. この目標を達成するためには、セキュリティ保護されたキーの作成、ストレージ、アクセス制御および暗号化キーの管理を提供する必要があります。To achieve that goal secure key creation, storage, access control, and management of the encryption keys must be provided. 詳細情報が異なる場合がありますが、Azure services Encryption at Rest で実装されている暗号化サービスは、次の図に示す用語で説明できます。Though details may vary, Azure services Encryption at Rest implementations can be described in terms illustrated in the following diagram.

Components

Azure Key VaultAzure Key Vault

暗号化キーの保存場所と、これらのキーへのアクセス制御は、保存時暗号化モデルの中心になります。The storage location of the encryption keys and access control to those keys is central to an encryption at rest model. キーは高度のセキュリティで保護される必要がありますが、特定のユーザーによって管理でき、特定のサービスで利用できる必要があります。The keys need to be highly secured but manageable by specified users and available to specific services. Azure サービスの場合は、サービス全体で共通した管理エクスペリエンスを提供するキー保存のソリューションである、Azure Key Vault をお勧めします。For Azure services, Azure Key Vault is the recommended key storage solution and provides a common management experience across services. キーはキー コンテナーで保存、管理され、キー コンテナーへのアクセスをユーザーまたはサービスに提供できます。Keys are stored and managed in key vaults, and access to a key vault can be given to users or services. Azure Key Vault では、ユーザーが管理する暗号化キーのシナリオで使用するための、ユーザーによるキーの作成またはユーザー キーのインポートがサポートされています。Azure Key Vault supports customer creation of keys or import of customer keys for use in customer-managed encryption key scenarios.

Azure Active DirectoryAzure Active Directory

Azure Key Vault に保存されたキーを、その管理、または保存時の暗号化および複合化時にアクセスして使用するためのアクセス許可を、Azure Active Directory アカウントに付与できます。Permissions to use the keys stored in Azure Key Vault, either to manage or to access them for Encryption at Rest encryption and decryption, can be given to Azure Active Directory accounts.

キー階層Key Hierarchy

保存時の暗号化の実装には、複数の暗号化キーが使用されます。More than one encryption key is used in an encryption at rest implementation. Azure Key Vault に暗号化キーを格納することで、キーの安全なアクセスと集中管理が可能になります。Storing an encryption key in Azure Key Vault ensures secure key access and central management of keys. ただし、データ操作のたびに Key Vault とやりとりするより、暗号化キーにサービス ローカル アクセスするほうが一括の暗号化/復号の場合は効率的です。暗号化が強化され、パフォーマンスが改善されます。However, service local access to encryption keys is more efficient for bulk encryption and decryption than interacting with Key Vault for every data operation, allowing for stronger encryption and better performance. 1 つの暗号化キーに使用を制限すると、キーが侵害されるリスクと、キーを置き換える必要があった場合の再暗号化のコストを低減できます。Limiting the use of a single encryption key decreases the risk that the key will be compromised and the cost of re-encryption when a key must be replaced. Azure の保存時暗号化モデルでは、これらすべてのニーズに対処する目的で、次の種類のキーで構成されたキー階層を使用します。Azure encryptions at rest models use a key hierarchy made up of the following types of keys in order to address all these needs:

  • データ暗号化キー (DEK) – パーティションまたはデータ ブロックの暗号化に使用する対称 AES256 キー。Data Encryption Key (DEK) – A symmetric AES256 key used to encrypt a partition or block of data. 1 つのリソースに、複数のパーティションおよび複数のデータ暗号化キーを保有できます。A single resource may have many partitions and many Data Encryption Keys. データの各ブロックを異なるキーで暗号化することによって、暗号化分析攻撃がより困難になります。Encrypting each block of data with a different key makes crypto analysis attacks more difficult. DEK へのアクセスは、特定のブロックを暗号化および暗号化するリソース プロバイダーまたはアプリケーション インスタンス必要になります。Access to DEKs is needed by the resource provider or application instance that is encrypting and decrypting a specific block. DEK で新しいキーに交換された場合も、新しいキーを使用して再暗号化する必要があるのは、関連ブロック内のデータのみになります。When a DEK is replaced with a new key only the data in its associated block must be re-encrypted with the new key.
  • キーの暗号化キー (KEK) - データ暗号化キーの暗号化に使用される暗号化キー。Key Encryption Key (KEK) – An encryption key used to encrypt the Data Encryption Keys. Key Vault を離れることがないキーの暗号化キーを使用すると、データの暗号化キー自体が暗号化され、管理できます。Use of a Key Encryption Key that never leaves Key Vault allows the data encryption keys themselves to be encrypted and controlled. KEK へのアクセス権を持つエンティティは、DEK を必要とするエンティティとは異なるエンティティに設定できます。The entity that has access to the KEK may be different than the entity that requires the DEK. エンティティは、DEK へのアクセスを仲介して、各 DEK の特定のパーティションへのアクセスを制限できます。An entity may broker access to the DEK to limit the access of each DEK to a specific partition. D の複合化には KEK が必要であるため、KEK を削除することにより DEK を効率的に削除できる有効な単一ポイントになります。Since the KEK is required to decrypt the DEKs, the KEK is effectively a single point by which DEKs can be effectively deleted by deletion of the KEK.

キーの暗号化キーで暗号化されたデータ暗号化キーは個別に保存され、キーの暗号化キーへのアクセス許可を持つエンティティのみがそれらのデータ暗号化キーを復号できます。The Data Encryption Keys, encrypted with the Key Encryption Keys are stored separately and only an entity with access to the Key Encryption Key can decrypt these Data Encryption Keys. キー保存のさまざまなモデルがサポートされます。Different models of key storage are supported. 詳細については、「データ暗号化モデル」を参照してください。See data encryption models for more information.

Microsoft クラウド サービスでの保存時の暗号化Encryption at rest in Microsoft cloud services

Microsoft Cloud サービスは、IaaS、PaaS、SaaS の3 つのクラウド モデルすべてで使用されます。Microsoft Cloud services are used in all three cloud models: IaaS, PaaS, SaaS. 以下は、各モデルにこれらがどのように対応するかを示した例です。Below you have examples of how they fit on each model:

  • Software as a Server (SaaS) と呼ばれるソフトウェア サービスでは、Microsoft 365 など、クラウドで提供されるアプリケーションが利用できます。Software services, referred to as Software as a Server or SaaS, which have applications provided by the cloud such as Microsoft 365.
  • アプリケーションでお客様がクラウドを活用できるプラットフォームでは、ストレージ、分析、サービス バス機能にクラウドが使用されています。Platform services which customers leverage the cloud in their applications, using the cloud for things like storage, analytics, and service bus functionality.
  • インフラストラクチャ サービス、別称サービスとしてのインフラストラクチャ (IaaS) では、顧客がクラウドでホスティングされているオペレーティング システムやアプリケーションをデプロイし、他のクラウド サービスを活用することもあります。Infrastructure services, or Infrastructure as a Service (IaaS) in which customer deploys operating systems and applications that are hosted in the cloud and possibly leveraging other cloud services.

SaaS 顧客ためのの保存時の暗号化Encryption at rest for SaaS customers

サービスとしてのソフトウェア (SaaS) の顧客は、通常は、保存時の暗号化を有効化しているか、各サービスで利用できます。Software as a Service (SaaS) customers typically have encryption at rest enabled or available in each service. Microsoft 365 には、保存時の暗号化を、お客様が確認または有効化できるオプションがいくつか用意されています。Microsoft 365 has several options for customers to verify or enable encryption at rest. Microsoft 365 サービスの詳細については、Microsoft 365 でのデータ暗号化に関するページを参照してください。For information about Microsoft 365 services, see Encryption in Microsoft 365.

PaaS 顧客のための保存時の暗号化Encryption at rest for PaaS customers

サービスとしてのプラットフォーム (PaaS) 顧客のデータは通常、Blob Storage などのストレージ サービスに存在しますが、仮想マシンなどのアプリケーションの実行環境でキャッシュまたは格納される場合もあります。Platform as a Service (PaaS) customer's data typically resides in a storage service such as Blob Storage but may also be cached or stored in the application execution environment, such as a virtual machine. 使用できる保存時の暗号化オプションを確認するには、下の、使用しているストレージとアプリケーション プラットフォームの表を調べてください。To see the encryption at rest options available to you, examine the table below for the storage and application platforms that you use.

IaaS 顧客のための保存時の暗号化Encryption at rest for IaaS customers

サービスとしてのインフラストラクチャ (IaaS) のユーザーは、さまざまなサービスとアプリケーションを使用できます。Infrastructure as a Service (IaaS) customers can have a variety of services and applications in use. IaaS サービスは、 Azure Disk Encryption を使用して、Azure がホスティングされている仮想マシンや VHD で保存時の暗号化を有効化できます。IaaS services can enable encryption at rest in their Azure hosted virtual machines and VHDs using Azure Disk Encryption.

暗号化されたストレージEncrypted storage

PaaS と同様、IaaS ソリューションは、保存時のデータの暗号化を保存する他の Azure サービスを利用できます。Like PaaS, IaaS solutions can leverage other Azure services that store data encrypted at rest. この場合は、それぞれ使用している Azure サービスによって提供されるように、保存時の暗号化の暗号化を有効にできます。In these cases, you can enable the Encryption at Rest support as provided by each consumed Azure service. 次の表には、保存時暗号化モデルがサポートされている主要なストレージ、サービスとアプリケーション プラットフォームおよびモデルが挙げられています。The below table enumerates the major storage, services, and application platforms and the model of Encryption at Rest supported.

暗号化されたコンピューティングEncrypted compute

すべてのマネージド ディスク、スナップショット、イメージは、サービス管理キーを使用する Storage Service Encryption を使って暗号化されます。All Managed Disks, Snapshots, and Images are encrypted using Storage Service Encryption using a service-managed key. より完全な保存時暗号化ソリューションによって、暗号化されていない形式でデータが保持されることがないことが保証されます。A more complete Encryption at Rest solution ensures that the data is never persisted in unencrypted form. 仮想マシン上でのデータの処理中に、Windows のページ ファイルや Linux のスワップ ファイル、クラッシュ ダンプ、またはアプリケーション ログにデータを保持することができます。While processing the data on a virtual machine, data can be persisted to the Windows page file or Linux swap file, a crash dump, or to an application log. IaaS アプリケーションは、Azure IaaS 仮想マシン (Windows または Linux) および仮想ディスクで Azure Disk Encryption を使用して、このデータが保存時に暗号化されているかどうかを確認できます。To ensure this data is encrypted at rest, IaaS applications can use Azure Disk Encryption on an Azure IaaS virtual machine (Windows or Linux) and virtual disk.

保存データのカスタム暗号化Custom encryption at rest

IaaS アプリケーションでは、可能な限り、Azure Disk Encryption および使用される Azure サービスによって提供される 保存時暗号化オプションを活用することをお勧めします。It is recommended that whenever possible, IaaS applications leverage Azure Disk Encryption and Encryption at Rest options provided by any consumed Azure services. 不規則な暗号化の要件または Azure を使用しないストレージなどの場合、IaaS アプリケーションの開発者は、保存時の暗号化を独自に実装する必要があります。In some cases, such as irregular encryption requirements or non-Azure based storage, a developer of an IaaS application may need to implement encryption at rest themselves. IaaS ソリューションの開発者は、特定の Azure コンポーネントを活用することで Azure の管理機能と顧客からの期待に応える機能を統合できます。Developers of IaaS solutions can better integrate with Azure management and customer expectations by leveraging certain Azure components. 特に、開発者は、Azure Key Vault サービスを使用することで、セキュリティ保護されたキーの保存場所と、ほとんどの Azure プラットフォーム サービスで提供されている一貫したキー管理オプションを顧客に提供できます。Specifically, developers should use the Azure Key Vault service to provide secure key storage as well as provide their customers with consistent key management options with that of most Azure platform services. また、カスタム ソリューションでは、Azure のマネージド サービス ID を使用すれば、サービス アカウントが暗号化キーにアクセスできるようになります。Additionally, custom solutions should use Azure-Managed Service Identities to enable service accounts to access encryption keys. Azure Key Vault およびマネージド サービス ID の管理に関する開発者向け情報については、それぞれの SDK を参照してください。For developer information on Azure Key Vault and Managed Service Identities, see their respective SDKs.

Azure リソース プロバイダー暗号化モデルのサポートAzure resource providers encryption model support

各 Microsoft Azure サービスでは、1 つ以上の保存時暗号化モデルをサポートしています。Microsoft Azure Services each support one or more of the encryption at rest models. ただし、一部のサービスでは、1 つ以上の暗号化モデルが適用できない場合があります。For some services, however, one or more of the encryption models may not be applicable. ユーザー管理の主要なシナリオをサポートするサービスでは、Azure Key Vault が主要な暗号化キーに対してサポートしているキーの種類のうち、一部のみをサポートする場合があります。For services that support customer-managed key scenarios, they may support only a subset of the key types that Azure Key Vault supports for key encryption keys. さらに、サービスによって異なるスケジュールでこれらのシナリオとキーの種類へのサポートがリリースされることがあります。Additionally, services may release support for these scenarios and key types at different schedules. このセクションでは、このドキュメントの作成時点での、主な Azure データ ストレージ サービスの保存時暗号化サポートについて説明します。This section describes the encryption at rest support at the time of this writing for each of the major Azure data storage services.

Azure Disk EncryptionAzure disk encryption

サービスとしての Azure インフラストラクチャ (IaaS) 機能を使用しているお客様は、Azure Disk Encryption を通して IaaS 仮想マシンの保存時の暗号化を実行できます。Any customer using Azure Infrastructure as a Service (IaaS) features can achieve encryption at rest for their IaaS VMs and disks through Azure Disk Encryption. Azure Disk Encryption の詳細については、Azure Disk Encryption のドキュメントを参照してください。For more information on Azure Disk encryption, see the Azure Disk Encryption documentation.

Azure StorageAzure storage

すべての Azure Storage サービス (Blob Storage、Queue Storage、Table Storage、Azure Files) では、サーバー側の保存データの暗号化がサポートされます。一部のサービスではさらにユーザー管理キーとクライアント側の暗号化がサポートされます。All Azure Storage services (Blob storage, Queue storage, Table storage, and Azure Files) support server-side encryption at rest; some services additionally support customer-managed keys and client-side encryption.

Azure SQL データベースAzure SQL Database

Azure SQL Database は現在、Microsoft が管理するサービス側とクライアント側の暗号化のシナリオで、保存時の暗号化をサポートしています。Azure SQL Database currently supports encryption at rest for Microsoft-managed service side and client-side encryption scenarios.

サーバー側の暗号化は Transparent Data Encryption と呼ばれる SQL 機能を通して提供されています。Support for server encryption is currently provided through the SQL feature called Transparent Data Encryption. Azure SQL Database ユーザーが有効化すると、TDE キーは自動的に作成および管理されます。Once an Azure SQL Database customer enables TDE key are automatically created and managed for them. 保存時の暗号化は、データベース レベルおよびサーバー レベルで有効にすることができます。Encryption at rest can be enabled at the database and server levels. 2017 年 6 月の時点で Transparent Data Encryption (TDE) は、新しく作成されたデータベースで既定で有効に設定されています。As of June 2017, Transparent Data Encryption (TDE) is enabled by default on newly created databases. Azure SQL Database は、Azure Key Vault での RSA 2048 ビット ユーザー管理キーをサポートしています。Azure SQL Database supports RSA 2048-bit customer-managed keys in Azure Key Vault. 詳細については、Azure SQL Database と Azure SQL Data Warehouse での Bring Your Own Key (BYOK) のサポートによる Transparent Data Encryption に関するページを参照してください。For more information, see Transparent Data Encryption with Bring Your Own Key support for Azure SQL Database and Data Warehouse.

Azure SQL Database データのクライアント側の暗号化は、Always Encrypted 機能を通してサポートされています。Client-side encryption of Azure SQL Database data is supported through the Always Encrypted feature. Always Encrypted では、クライアントによって作成、保存されたキーが使用されます。Always Encrypted uses a key that created and stored by the client. ユーザーは、Windows 証明書ストア、Azure Key Vault、またはローカルのハードウェア セキュリティ モジュール (HSM) にマスター キーを格納できます。Customers can store the master key in a Windows certificate store, Azure Key Vault, or a local Hardware Security Module. SQL ユーザーは、SQL Server Management Studio を使用して、どの列で何を使用して暗号化するかを選択できます。Using SQL Server Management Studio, SQL users choose what key they'd like to use to encrypt which column.

まとめConclusion

Azure サービス内で保存される顧客データの保護は、Microsoft にとってきわめて重要です。Protection of customer data stored within Azure Services is of paramount importance to Microsoft. すべての Azure ホステッド サービスは、保存時暗号化オプションを提供することを目的としています。All Azure hosted services are committed to providing Encryption at Rest options. Azure サービスでは、サービス管理キー、顧客管理キー、クライアント側の暗号化のいずれかがサポートされます。Azure services support either service-managed keys, customer-managed keys, or client-side encryption. Azure サービスは、保存時の暗号化の可用性を大きく広げており、今後はプレビューや一般的な可用性のための新しいオプションを提供することが計画されています。Azure services are broadly enhancing Encryption at Rest availability and new options are planned for preview and general availability in the upcoming months.

次のステップNext steps

  • データ暗号化モデル」を参照して、サービス管理キーとカスタマー マネージド キーの詳細について確認します。See data encryption models to learn more about service-managed keys and customer-managed keys.
  • データの暗号化に付随する脅威を軽減するため、Azure でどのように二重暗号化が使用されているかを確認します。Learn how Azure uses double encryption to mitigate threats that come with encrypting data.
  • ハードウェアとファームウェアの構築、統合、運用化、および修復のパイプラインを通過するホストのプラットフォームの整合性とセキュリティを確保するために Microsoft が何を行っているか確認します。Learn what Microsoft does to ensure platform integrity and security of hosts traversing the hardware and firmware build-out, integration, operationalization, and repair pipelines.