Сценарии защиты кластера Service FabricService Fabric cluster security scenarios

Кластер Azure Service Fabric — это ресурс, владельцем которого вы являетесь.An Azure Service Fabric cluster is a resource that you own. Вам следует защитить кластеры, чтобы к ним не смогли подключиться неавторизованные пользователи.It is your responsibility to secure your clusters to help prevent unauthorized users from connecting to them. Защита кластера особенно важна при выполнении на нем производственных рабочих нагрузок.A secure cluster is especially important when you are running production workloads on the cluster. Можно создать незащищенный кластер, но если кластер предоставляет конечные точки управления для общедоступного Интернета, анонимные пользователи могут подключаться к нему.It is possible to create an unsecured cluster, however if the cluster exposes management endpoints to the public internet, anonymous users can connect to it. Незащищенные кластеры нельзя использовать для выполнения производственных задач.Unsecured clusters are not supported for production workloads.

В этой статье содержится обзор сценариев безопасности для кластеров Azure и изолированных кластеров, а также приведены различные технологии их реализации:This article is an overview of security scenarios for Azure clusters and standalone clusters, and the various technologies you can use to implement them:

  • безопасность обмена данными между узлами;Node-to-node security
  • безопасность обмена данными между клиентами и узлами;Client-to-node security
  • Service Fabric управления доступом на основе ролейService Fabric role-based access control

безопасность обмена данными между узлами;Node-to-node security

Безопасность обмена данными между узлами обеспечивает безопасное взаимодействие между виртуальными машинами или компьютерами в кластере.Node-to-node security helps secure communication between the VMs or computers in a cluster. Такая защита гарантирует, что размещать приложения и службы в кластере смогут владельцы только тех компьютеров, которые прошли авторизацию для подключения к кластеру.This security scenario ensures that only computers that are authorized to join the cluster can participate in hosting applications and services in the cluster.

Схема обмена данными между узлами

Кластеры, работающие в Azure, и автономные кластеры, работающие под управлением Windows, могут использовать безопасность на основе сертификатов или безопасность Windows для компьютеров Windows Server.Clusters running on Azure and standalone clusters running on Windows both can use either certificate security or Windows security for Windows Server computers.

Безопасность обмена данными между узлами на основе сертификатовNode-to-node certificate security

Service Fabric использует сертификаты сервера X.509, которые указываются как часть конфигурации типа узла при создании кластера.Service Fabric uses X.509 server certificates that you specify as part of the node-type configuration when you create a cluster. Краткий обзор этих сертификатов и способа их получения или создания приведен в конце этой статьи.At the end of this article, you can see a brief overview of what these certificates are and how you can acquire or create them.

При создании кластера безопасность на основе сертификатов можно настроить с помощью портала Azure, шаблона Azure Resource Manager или автономного шаблона JSON.Set up certificate security when you create the cluster, either in the Azure portal, by using an Azure Resource Manager template, or by using a standalone JSON template. По умолчанию Service Fabric SDK — развертывание и установка сертификата с самого начала до истечения срока действия. Классическое поведение позволяло определять первичные и вторичные сертификаты, чтобы разрешить инициированные вручную смены, и не рекомендуется использовать новые функции.Service Fabric SDK's default behavior is to deploy and install the certificate with the furthest into the future expiring date; the classic behavior allowed the defining of primary and secondary certificates, to allow manually initiated rollovers, and is not recommended for use over the new functionality. Первичные сертификаты, которые будут использоваться и имеют наибольший запас времени до окончания строка годности, должны отличаться от сертификатов клиента администрирования и клиентских сертификатов "только для чтения", установленных для безопасности обмена данными между клиентами и узлами.The primary certificates that will be use has the furthest into the future expiring date, should be different from the admin client and read-only client certificates that you set for client-to-node security.

Чтобы узнать, как в Azure в кластере настроить безопасность на основе сертификатов, ознакомьтесь со статьей Создание кластера Service Fabric в Azure с помощью Azure Resource Manager.To learn how to set up certificate security in a cluster for Azure, see Set up a cluster by using an Azure Resource Manager template.

Чтобы узнать, как в кластере настроить безопасность на основе сертификатов для изолированного кластера Windows Server, ознакомьтесь со статьей Защита автономного кластера под управлением Windows с помощью сертификатов X.509.To learn how to set up certificate security in a cluster for a standalone Windows Server cluster, see Secure a standalone cluster on Windows by using X.509 certificates.

Безопасность обмена данными между узлами WindowsNode-to-node Windows security

Примечание

Проверка подлинности Windows основана на протоколе Kerberos.Windows authentication is based on Kerberos. NTLM не поддерживается в качестве типа проверки подлинности.NTLM is not supported as an authentication type.

По возможности используйте проверку подлинности сертификата X. 509 для кластеров Service Fabric.Whenever possible, use X.509 certificate authentication for Service Fabric clusters.

Чтобы узнать, как настроить защиту Windows для изолированного кластера Windows Server, ознакомьтесь со статьей Защита изолированного кластера под управлением Windows с помощью системы безопасности Windows.To learn how to set up Windows security for a standalone Windows Server cluster, see Secure a standalone cluster on Windows by using Windows security.

безопасность обмена данными между клиентами и узлами;Client-to-node security

При безопасном обмене данными между клиентами и узлами используется аутентификация клиентов, а также обеспечивается защищенное взаимодействие между клиентом и отдельными узлами в кластере.Client-to-node security authenticates clients and helps secure communication between a client and individual nodes in the cluster. Этот тип защиты обеспечивает доступ к кластеру и приложениям, развернутым в нем, только для авторизованных пользователей.This type of security helps ensure that only authorized users can access the cluster and the applications that are deployed on the cluster. Клиенты однозначно определяются с помощью своих учетных данных системы безопасности Windows или учетных данных сертификата безопасности.Clients are uniquely identified through either their Windows security credentials or their certificate security credentials.

Схема обмена данными между узлом и клиентом

Кластеры, работающие в Azure и автономных кластерах, работающих в Windows, могут использовать либо безопасность сертификатов , либо Безопасность Windows, хотя при возможности рекомендуется использовать проверку подлинности по сертификату X. 509.Clusters running on Azure and standalone clusters running on Windows both can use either certificate security or Windows security, though the recommendation is to use X.509 certificate authentication whenever possible.

Безопасность обмена данными между клиентами и узлами на основе сертификатовClient-to-node certificate security

При создании кластера безопасность обмена данными между клиентами и узлами на основе сертификатов можно настроить с помощью портала Azure, шаблона Resource Manager или автономного шаблона JSON.Set up client-to-node certificate security when you create the cluster, either in the Azure portal, by using a Resource Manager template, or by using a standalone JSON template. Чтобы создать сертификат, необходимо указать сертификат клиента администратора или пользователя.To create the certificate, specify an admin client certificate or a user client certificate. Мы рекомендуем, чтобы эти сертификаты отличались от основного и дополнительного сертификатов, указанных для защиты обмена данными между узлами.As a best practice, the admin client and user client certificates you specify should be different from the primary and secondary certificates you specify for node-to-node security. Сертификаты кластера имеют те же права, что и сертификаты администратора клиента.Cluster certificates have the same rights as client admin certificates. Однако они должны использоваться только кластером, а не пользователями с правами администратора в качестве рекомендации по безопасности.However, they should be used only by cluster and not by administrative users as a security best practice.

Клиенты, подключающиеся к кластеру с помощью сертификата администрирования, получают полный доступ к возможностям управления.Clients that connect to the cluster by using the admin certificate have full access to management capabilities. Клиенты, подключающиеся к кластеру с помощью сертификата клиента только для чтения, получают доступ только для чтения к возможностям управления.Clients that connect to the cluster by using the read-only user client certificate have only read access to management capabilities. Эти сертификаты используются для Service Fabric RBAC, описанного далее в этой статье.These certificates are used for the Service Fabric RBAC that is described later in this article.

Чтобы узнать, как в Azure в кластере настроить безопасность на основе сертификатов, ознакомьтесь со статьей Создание кластера Service Fabric в Azure с помощью Azure Resource Manager.To learn how to set up certificate security in a cluster for Azure, see Set up a cluster by using an Azure Resource Manager template.

Чтобы узнать, как в кластере настроить безопасность на основе сертификатов для изолированного кластера Windows Server, ознакомьтесь со статьей Защита автономного кластера под управлением Windows с помощью сертификатов X.509.To learn how to set up certificate security in a cluster for a standalone Windows Server cluster, see Secure a standalone cluster on Windows by using X.509 certificates.

Безопасность обмена данными Azure Active Directory между клиентами и узлами в AzureClient-to-node Azure Active Directory security on Azure

Azure AD позволяет организациям (известным как клиенты) управлять доступом пользователей к приложениям.Azure AD enables organizations (known as tenants) to manage user access to applications. Приложения можно разделить на две группы: те, в которых есть пользовательский веб-интерфейс входа в систему, и те, в которых вход выполняется с помощью собственного клиентского приложения.Applications are divided into those with a web-based sign-in UI and those with a native client experience. Если вы еще не создали клиент, обратитесь к статье Как получить клиент Azure Active Directory.If you have not already created a tenant, start by reading How to get an Azure Active Directory tenant.

Кластеры Service Fabric предлагают несколько точек входа для управления функциями кластеров, включая веб-интерфейс Service Fabric Explorer и Visual Studio.A Service Fabric cluster offers several entry points to its management functionality, including the web-based Service Fabric Explorer and Visual Studio. В итоге вы получаете два приложения Azure AD для управления доступом к кластеру: одно веб-приложение и одно собственное приложение.As a result, you create two Azure AD applications to control access to the cluster, one web application and one native application.

Для кластеров, работающих в Azure, вы также можете обеспечить безопасность доступа к конечным точкам управления с помощью Azure Active Directory (Azure AD).For clusters running on Azure, you also can secure access to management endpoints by using Azure Active Directory (Azure AD). Чтобы узнать, как создать необходимые артефакты Azure AD и как их заполнить при создании кластера, см. раздел Настройки проверки подлинности Azure Active Directory.To learn how to create the required Azure AD artifacts and how to populate them when you create the cluster, see Set up Azure AD to authenticate clients.

Рекомендации по обеспечению безопасностиSecurity recommendations

Для кластеров Service Fabric, развернутых в общедоступной сети, размещенной в Azure, для взаимной проверки подлинности между клиентом и узлом рекомендуется:For Service Fabric clusters deployed in a public network hosted on Azure, the recommendation for client-to-node mutual authentication is:

  • использование Azure Active Directory для удостоверения клиента;Use Azure Active Directory for client identity
  • Сертификат для удостоверения сервера и шифрование TLS связи по протоколу HTTPA certificate for server identity and TLS encryption of http communication

Для кластеров Service Fabric, развернутых в общедоступной сети, размещенной в Azure, для безопасности обмена данными между узлами рекомендуется использовать сертификат кластера для проверки подлинности узлов.For Service Fabric clusters deployed in a public network hosted on Azure, the recommendation for node-to-node security is to use a Cluster certificate to authenticate nodes.

Если у вас есть Windows Server 2012 R2 и Windows Active Directory, то для изолированных кластеров Windows Server мы рекомендуем использовать безопасность Windows с групповыми управляемыми учетными записями служб.For standalone Windows Server clusters, if you have Windows Server 2012 R2 and Windows Active Directory, we recommend that you use Windows security with group Managed Service Accounts. В противном случае используйте безопасность Windows с учетными записями Windows.Otherwise, use Windows security with Windows accounts.

Service Fabric управления доступом на основе ролейService Fabric role-based access control

Вы можете использовать контроль доступа, чтобы ограничить доступ к определенным операциям в кластере для разных групп пользователей.You can use access control to limit access to certain cluster operations for different groups of users. Это позволит обеспечить более надежную защиту кластера.This helps make the cluster more secure. Для клиентов, подключающихся к кластеру, поддерживаются два типа управления доступом: роль администратора и роль пользователя.Two access control types are supported for clients that connect to a cluster: Administrator role and User role.

У пользователей, которым назначена роль администратора, есть полный доступ к возможностям управления, включая возможности чтения и записи.Users who are assigned the Administrator role have full access to management capabilities, including read and write capabilities. У пользователей, которым назначена роль пользователя, по умолчанию есть доступ только для чтения к возможностям управления (например, возможности запросов),Users who are assigned the User role, by default, have only read access to management capabilities (for example, query capabilities). а также возможность разрешения приложений и служб.They also can resolve applications and services.

Задайте клиентские роли администратора и клиента во время создания кластера.Set the Administrator and User client roles when you create the cluster. Назначьте роли, предоставив отдельные удостоверения (например, с помощью сертификатов или Azure AD) для каждого типа роли.Assign roles by providing separate identities (for example, by using certificates or Azure AD) for each role type. Дополнительные сведения о параметрах управления доступом по умолчанию и изменении параметров по умолчанию см. в разделе Service Fabric управление доступом на основе ролей для Service Fabric клиентов.For more information about default access control settings and how to change default settings, see Service Fabric role-based access control for Service Fabric clients.

Сертификаты X.509 и Service FabricX.509 certificates and Service Fabric

Цифровые сертификаты X.509 обычно используются для проверки подлинности клиентов и серверов,X.509 digital certificates commonly are used to authenticate clients and servers. а также для шифрования и цифровой подписи сообщений.They also are used to encrypt and digitally sign messages. Service Fabric использует сертификаты X.509 для защиты кластера и обеспечения функций безопасности приложений.Service Fabric uses X.509 certificates to secure a cluster and provide application security features. Дополнительные сведения о цифровых сертификатах X.509 см. в статье Работа с сертификатами.For more information about X.509 digital certificates, see Working with certificates. Key Vault используется для управления сертификатами кластеров Service Fabric в Azure.You use Key Vault to manage certificates for Service Fabric clusters in Azure.

Необходимо учитывать следующие важные моменты.Some important things to consider:

  • Чтобы создать сертификаты для кластеров, выполняющих производственные рабочие нагрузки, используйте правильно настроенную службу сертификации Windows Server или службу из утвержденного центра сертификации (ЦС).To create certificates for clusters that are running production workloads, use a correctly configured Windows Server certificate service, or one from an approved certificate authority (CA).
  • Никогда не используйте в рабочей среде какие-либо временные или тестовые сертификаты, созданные с помощью таких инструментов, как MakeCert.exe.Never use any temporary or test certificates that you create by using tools like MakeCert.exe in a production environment.
  • Самозаверяющий сертификат вы можете использовать только в тестовом кластере.You can use a self-signed certificate, but only in a test cluster. Не используйте его в рабочей среде.Do not use a self-signed certificate in production.
  • При создании отпечатка сертификата обязательно создайте отпечаток SHA1.When generating the certificate thumbprint, be sure to generate a SHA1 thumbprint. SHA1 используется при настройке отпечатков сертификатов клиента и кластера.SHA1 is what's used when configuring the Client and Cluster certificate thumbprints.

Сертификат кластера и сервера (обязательно)Cluster and server certificate (required)

Эти сертификаты (один основной и при необходимости дополнительный) необходимы для защиты кластера и предотвращения несанкционированного доступа к нему.These certificates (one primary and optionally a secondary) are required to secure a cluster and prevent unauthorized access to it. Эти сертификаты предоставляют аутентификацию в кластере и сервере.These certificates provide cluster and server authentication.

Аутентификация в кластере позволяет аутентифицировать обмен данными между узлами для федерации кластера.Cluster authentication authenticates node-to-node communication for cluster federation. Только узлы, которые могут подтвердить свою подлинность с помощью этого сертификата, могут присоединиться к кластеру.Only nodes that can prove their identity with this certificate can join the cluster. Аутентификация сервера позволяет аутентифицировать конечные точки управления кластером в клиенте управления, чтобы он "знал", что обращается к настоящему кластеру, а не к "незаконному посреднику".Server authentication authenticates the cluster management endpoints to a management client, so that the management client knows it is talking to the real cluster and not a 'man in the middle'. Этот сертификат также предоставляет протокол TLS для API управления HTTPS и для Service Fabric Explorer по протоколу HTTPS.This certificate also provides a TLS for the HTTPS management API and for Service Fabric Explorer over HTTPS. Одна из начальных проверок при проверке подлинности узла — сопоставление значения общего имени в поле Субъект.When a client or node authenticates a node, one of the initial checks is the value of the common name in the Subject field. В списке разрешенных общих имен должно быть это общее имя или одно из альтернативных имен субъекта сертификатов.Either this common name or one of the certificates' Subject Alternative Names (SANs) must be present in the list of allowed common names.

Сертификат должен отвечать приведенным ниже требованиям.The certificate must meet the following requirements:

  • Сертификат должен содержать закрытый ключ.The certificate must contain a private key. Эти сертификаты обычно имеют расширения PFX или PEM.These certificates typically have extensions .pfx or .pem
  • Сертификат должен быть создан для обмена ключами, которые можно экспортировать в файл обмена личной информацией (PFX-файл).The certificate must be created for key exchange, which is exportable to a Personal Information Exchange (.pfx) file.
  • Имя субъекта сертификата должно совпадать с доменным именем, которое используется для получения доступа к кластеру Service Fabric.The certificate's subject name must match the domain that you use to access the Service Fabric cluster. Это сопоставление необходимо для предоставления TLS для конечной точки управления HTTPS кластера и Service Fabric Explorer.This matching is required to provide a TLS for the cluster's HTTPS management endpoint and Service Fabric Explorer. Невозможно получить сертификат TLS/SSL из центра сертификации (ЦС) для домена *. cloudapp.azure.com.You cannot obtain a TLS/SSL certificate from a certificate authority (CA) for the *.cloudapp.azure.com domain. Необходимо получить имя личного домена для кластера.You must obtain a custom domain name for your cluster. При запросе сертификата из ЦС имя субъекта сертификата должно совпадать с именем личного домена, используемого для кластера.When you request a certificate from a CA, the certificate's subject name must match the custom domain name that you use for your cluster.

Необходимо учитывать также следующие факторы.Some other things to consider:

  • Поле Субъект может содержать несколько значений,The Subject field can have multiple values. каждое из которых содержит сокращение в виде префикса, определяющее тип значения.Each value is prefixed with an initialization to indicate the value type. Как правило, инициализация называется CN (для общего имени); Например, CN = www . contoso.com.Usually, the initialization is CN (for common name); for example, CN = www.contoso.com.
  • Поле Субъект может быть пустым.The Subject field can be blank.
  • Если необязательное поле Альтернативное имя субъекта заполнено, его значение должно содержать общее имя сертификата и альтернативное имя субъекта.If the optional Subject Alternative Name field is populated, it must have both the common name of the certificate and one entry per SAN. Они указываются в виде значений DNS-имен .These are entered as DNS Name values. Чтобы узнать о создании сертификатов с альтернативными именами субъектов, ознакомьтесь со статьей Как добавить дополнительное имя субъекта сертификата безопасного LDAP.To learn how to generate certificates that have SANs, see How to add a Subject Alternative Name to a secure LDAP certificate.
  • Значение поля назначения сертификата должно содержать соответствующее значение, такое как проверка подлинности сервера или Проверка подлинности клиента.The value of the Intended Purposes field of the certificate should include an appropriate value, such as Server Authentication or Client Authentication.

Сертификаты приложения (необязательно)Application certificates (optional)

В кластере можно установить любое количество дополнительных сертификатов для обеспечения безопасности приложений.Any number of additional certificates can be installed on a cluster for application security purposes. Перед созданием кластера рассмотрите сценарии безопасности приложений, которые требуют установки сертификатов на узлах, в том числе:Before creating your cluster, consider the application security scenarios that require a certificate to be installed on the nodes, such as:

  • шифрование и расшифровка значений конфигурации приложений;Encryption and decryption of application configuration values.
  • шифрование данных между узлами во время репликации.Encryption of data across nodes during replication.

Концепция создания безопасного кластер в Linux или Windows ничем не отличается.The concept of creating secure clusters is the same, whether they are Linux or Windows clusters.

Сертификаты проверки подлинности клиента (необязательно)Client authentication certificates (optional)

Для клиентских операций со стороны пользователя или администратора может быть указано любое количество дополнительных сертификатов.Any number of additional certificates can be specified for admin or user client operations. Клиент может использовать эти сертификаты, если требуется взаимная проверка подлинности.The client can use these certificates when mutual authentication is required. Как правило, сертификаты клиентов не выдаются сторонними центрами сертификации.Client certificates typically are not issued by a third-party CA. В свою очередь, личное хранилище текущего местоположения пользователя обычно содержит сертификаты клиентов, размещенные там корневым центром.Instead, the Personal store of the current user location typically contains client certificates placed there by a root authority. Сертификат должен иметь значение предполагаемой области применения****Аутентификация клиента.The certificate should have an Intended Purposes value of Client Authentication.

По умолчанию сертификат кластера имеет права администратора.By default the cluster certificate has admin client privileges. Эти дополнительные сертификаты клиента не нужно устанавливать в кластере, но они указаны как разрешенные в конфигурации кластера.These additional client certificates should not be installed into the cluster, but are specified as being allowed in the cluster configuration. Сертификаты клиента должны быть установлены на клиентских компьютерах для подключения к кластеру и выполнения любых операций.However, the client certificates need to be installed on the client machines to connect to the cluster and perform any operations.

Примечание

Для выполнения всех операций управления в кластере Service Fabric необходимы сертификаты серверов.All management operations on a Service Fabric cluster require server certificates. Для управления нельзя использовать сертификаты клиента.Client certificates cannot be used for management.

Дальнейшие действияNext steps