Skip to content

Commit aaf58fc

Browse files
committed
removing references to internal PKIs and APIs
1 parent 0ec4707 commit aaf58fc

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

articles/service-fabric/cluster-security-certificate-management.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Specifically, the topics in scope are:
3030
- certificate rotation - why, how and when
3131
- what could possibly go wrong?
3232

33-
Aspect such as securing/managing domain names, enrolling into certificates, or setting up authorization controls to enforce certificate issuance are out of the scope of this article. Refer to the Registration Authority (RA) of your favorite Public Key Infrastructure (PKI) service. For Microsoft-internal services, the starting point would be OneCert.
33+
Aspect such as securing/managing domain names, enrolling into certificates, or setting up authorization controls to enforce certificate issuance are out of the scope of this article. Refer to the Registration Authority (RA) of your favorite Public Key Infrastructure (PKI) service. Microsoft-internal consumers: please reach out to Azure Security.
3434

3535
## Roles and entities involved in certificate management
3636
The security approach in a Service Fabric cluster is a case of "cluster owner declares it, Service Fabric runtime enforces it". By that we mean that almost none of the certificates, keys, or other credentials of identities participating in a cluster's functioning come from the service itself; they are all declared by the cluster owner. Furthermore, the cluster owner is also responsible for provisioning the certificates into the cluster, renewing them as needed, and ensuring the security of the certificates at all times. More specifically, the cluster owner must ensure that:
@@ -77,7 +77,7 @@ Issuance and provisioning flow of certificates declared by subject common name.
7777

7878
### Certificate enrollment
7979
This topic is covered in detail in the Key Vault [documentation](../key-vault/create-certificate.md); we're including a synopsis here for continuity and easier reference. Continuing with Azure as the context, and using Azure Key Vault as the secret management service, an authorized certificate requester must have at least certificate management permissions on the vault, granted by the vault owner; the requester would then enroll into a certificate as follows:
80-
- creates a certificate policy in Azure Key Vault (AKV), which specifies the domain/subject of the certificate, the desired issuer, key type and length, intended key usage and more; see [Certificates in Azure Key Vault](../key-vault/certificate-scenarios.md) for details. For Microsoft-internal services, the list of supported issuers includes OneCert and SslAdmin.
80+
- creates a certificate policy in Azure Key Vault (AKV), which specifies the domain/subject of the certificate, the desired issuer, key type and length, intended key usage and more; see [Certificates in Azure Key Vault](../key-vault/certificate-scenarios.md) for details.
8181
- creates a certificate in the same vault with the policy specified above; this, in turn, generates a key pair as vault objects, a certificate signing request signed with the private key, and which is then forwarded to the designated issuer for signing
8282
- once the issuer (Certificate Authority) replies with the signed certificate, the result is merged into the vault, and the certificate is available for the following operations:
8383
- under {vaultUri}/certificates/{name}: the certificate including the public key and metadata
@@ -457,16 +457,17 @@ From a security standpoint, recall that the virtual machine (scale set) is consi
457457

458458
## Troubleshooting and frequently asked questions
459459

460-
Q: How to programmatically enroll into a KeyVault-managed certificate?
461-
A: For Microsoft-internal clients:
460+
*Q*: How to programmatically enroll into a KeyVault-managed certificate?
461+
*A*: Find out the name of the issuer from the KeyVault documentation, then replace it in the script below.
462462
```PowerShell
463+
$issuerName=<depends on your PKI of choice>
463464
$clusterVault="sftestcus"
464465
$clusterCertVaultName="sftstcncluster"
465466
$clusterCertCN="cus.cluster.sftstcn.system.servicefabric.azure-int"
466-
Set-AzKeyVaultCertificateIssuer -VaultName $clusterVault -Name 'OneCert' -IssuerProvider 'OneCert'
467+
Set-AzKeyVaultCertificateIssuer -VaultName $clusterVault -Name $issuerName -IssuerProvider $issuerName
467468
$distinguishedName="CN=" + $clusterCertCN
468469
$policy = New-AzKeyVaultCertificatePolicy `
469-
-IssuerName 'OneCert' `
470+
-IssuerName $issuerName `
470471
-SubjectName $distinguishedName `
471472
-SecretContentType 'application/x-pkcs12' `
472473
-Ekus "1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2" `
@@ -484,7 +485,7 @@ A: For Microsoft-internal clients:
484485

485486
In general, a PKI will publish and maintain a certification practice statement, in accordance with IETF [RFC 7382](https://tools.ietf.org/html/rfc7382). Among other information, it will include all active issuers. Retrieving this list programmatically may differ from a PKI to another.
486487

487-
For Microsoft-internal PKIs, the authority on, well, authorized issuers is the dSMS GetIssuers v2 SDK/endpoint (inquire internally); it is the cluster owner's responsibility to probe this list periodically, and ensure their cluster definition includes *all* expected issuers.
488+
For Microsoft-internal PKIs, please consult the internal documentation on the endpoints/SDKs used to retrieve the authorized issuers; it is the cluster owner's responsibility to probe this list periodically, and ensure their cluster definition includes *all* expected issuers.
488489

489490
*Q*: Are multiple PKIs supported?
490491
*A*: Yes; you may not declare multiple CN entries in the cluster manifest with the same value, but can list issuers from multiple PKIs corresponding to the same CN. It is not a recommended practice, and certificate transparency practices may prevent such certificates from being issued. However, as means to migrate from one PKI to another, this is an acceptable mechanism.

0 commit comments

Comments
 (0)