Skip to content

Commit b2b49ec

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-rbac-custom-roles-management-group-scope-ga-update
2 parents 85f3cb3 + 8bbed09 commit b2b49ec

File tree

4 files changed

+110
-2
lines changed

4 files changed

+110
-2
lines changed

articles/communication-services/concepts/interop/guest/capabilities.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ When Teams external users leave the meeting, or the meeting ends, they can no lo
174174

175175
*Azure Communication Services provides developers tools to integrate Microsoft Teams Data Loss Prevention that is compatible with Microsoft Teams. For more information, go to [how to implement Data Loss Prevention (DLP)](../../../how-tos/chat-sdk/data-loss-prevention.md)
176176

177-
**Inline image support is currently in public preview and is available in the Chat SDK for JavaScript only. Preview APIs and SDKs are provided without a service-level agreement. We recommend that you don't use them for production workloads. Some features might not be supported, or they might have constrained capabilities. For more information, review [Supplemental Terms of Use for Microsoft Azure Previews.](https://azure.microsoft.com/support/legal/preview-supplemental-terms/)
177+
**Inline images are images that are copied and pasted directly into the send box of Teams client. For images that were uploaded via "Upload from this device" menu or via drag-and-drop (such as dragging images directly to the send box) in the Teams, they are not supported at this moment. To copy an image, the Teams user can either use their operating system's context menu to copy the image file then paste it into the send box of their Teams client, or use keyboard shortcuts instead.
178178

179-
**If the Teams external user sends a message with images uploaded via "Upload from this device" menu or via drag-and-drop (such as dragging images directly to the send box) in the Teams, then these scenarios would be covered under the file sharing capability, which is currently not supported.
179+
**Inline image support is currently in public preview and is available in the Chat SDK for JavaScript only. Preview APIs and SDKs are provided without a service-level agreement. We recommend that you don't use them for production workloads. Some features might not be supported, or they might have constrained capabilities. For more information, review [Supplemental Terms of Use for Microsoft Azure Previews.](https://azure.microsoft.com/support/legal/preview-supplemental-terms/)
180180

181181
## Server capabilities
182182

articles/communication-services/tutorials/chat-interop/meeting-interop-features-inline-image.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ ms.custom: mode-other
1616
## Add inline image support
1717
The Chat SDK is designed to work with Microsoft Teams seamlessly. Specifically, Chat SDK provides a solution to receive inline images sent by users from Microsoft Teams. Currently this feature is only available in the Chat SDK for JavaScript.
1818

19+
The Chat SDK for JavaScript provides `previewUrl` and `url` for each inline images. Please note that some GIF images fetched from `previewUrl` might not be animated and a static preview image would be returned instead. Developers are expected to use the `url` if the intention is to fetch animated images only.
20+
1921
[!INCLUDE [Public Preview Notice](../../includes/public-preview-include.md)]
2022

2123
[!INCLUDE [Teams Inline Image Interop with JavaScript SDK](./includes/meeting-interop-features-inline-image-javascript.md)]

articles/container-instances/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
href: container-instances-virtual-network-concepts.md
7878
- name: Confidential container groups
7979
href: container-instances-confidential-overview.md
80+
- name: Attestation in Confidential container
81+
href: confidential-containers-attestation-concepts.md
8082
- name: How-to guides
8183
items:
8284
- name: Deploy
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: Attestation in Confidential containers on Azure Containers Instances
3+
description: full attestation of container groups in confidential containers on Azure Container Instances
4+
ms.topic: conceptual
5+
ms.author: tomcassidy
6+
author: pkhandavilli
7+
ms.service: container-instances
8+
services: container-instances
9+
ms.date: 04/20/2023
10+
---
11+
12+
# What is attestation?
13+
14+
Attestation is an essential part of confidential computing and appears in the definition by the Confidential Computing Consortium “Confidential Computing is the protection of data in use by performing computation in a hardware-based, attested Trusted Execution Environment."
15+
16+
According to the [Remote ATtestation procedureS (RATS) Architecture](https://www.ietf.org/rfc/rfc9334.html) In remote attestation, “one peer (the "Attester") produces believable information about itself ("Evidence") to enable a remote peer (the "Relying Party") to decide whether to consider that Attester a trustworthy peer. Remote attestation procedures are facilitated by an additional vital party (the "Verifier").” In simpler terms, attestation is a way of proving that a computer system is trustworthy.
17+
18+
In Confidential Containers on ACI you can use an attestation token to verify that the container group
19+
20+
- Is running on confidential computing hardware. In this case AMD SEV-SNP.
21+
- Is running on an Azure compliant utility VM.
22+
- Is enforcing the expected confidential computing enforcement policy (cce) that was generated using [tooling](https://github.com/Azure/azure-cli-extensions/blob/main/src/confcom/azext_confcom/README.md).
23+
24+
## Full attestation in confidential containers on Azure Container Instances
25+
26+
Expanding upon this concept of attestation. Full attestation captures all the components that are part of the Trusted Execution Environment that is remotely verifiable. To achieve full attestation, in Confidential Containers, we have introduced the notion of a cce policy, which defines a set of rules, which is enforced in the utility VM. The security policy is encoded in the attestation report as an SHA-256 digest stored in the HostData attribute, as provided to the PSP by the host operating system during the VM boot-up. This means that the security policy enforced by the utility VM is immutable throughout the lifetime of the utility VM.
27+
28+
The exhaustive list of attributes that are part of the SEV-SNP attestation can be found [here](https://www.amd.com/system/files/TechDocs/SEV-SNP%20PSP%20API%20Specification.pdf).
29+
30+
Some important fields to consider in an attestation token returned by [Microsoft Azure Attestation ( MAA )](../attestation/overview.md)
31+
32+
| Claim | Sample value | Description |
33+
|---------------------------|-------------------------------------------------------------|-------------|
34+
| x-ms-attestation-type | sevsnpvm | String value that describes the attestation type. For example, in this scenario sevsnp hardware |
35+
| x-ms-compliance-status | azure-compliant-uvm | Compliance status of the utility VM that runs the container group. |
36+
| x-ms-sevsnpvm-hostdata | 670fff86714a650a49b58fadc1e90fedae0eb32dd51e34931c1e7a1839c08f6f | Hash of the cce policy that was generated during deployment. |
37+
| x-ms-sevsnpvm-is-debuggable | false | Flag to indicate whether the underlying hardware is running in debug mode |
38+
39+
## Sample attestation token generated by MAA
40+
41+
```json
42+
{
43+
"header": {
44+
"alg": "RS256",
45+
"jku": "https://sharedeus2.eus2.test.attest.azure.net/certs",
46+
"kid": "3bdCYJabzfhISFtb3J8yuEESZwufV7hhh08N3ZflAuE=",
47+
"typ": "JWT"
48+
},
49+
"payload": {
50+
"exp": 1680259997,
51+
"iat": 1680231197,
52+
"iss": "https://sharedeus2.eus2.test.attest.azure.net",
53+
"jti": "d288fef5880b1501ea70be1b9366840fd56f74e666a23224d6de113133cbd8d5",
54+
"nbf": 1680231197,
55+
"nonce": "3413764049005270139",
56+
"x-ms-attestation-type": "sevsnpvm",
57+
"x-ms-compliance-status": "azure-compliant-uvm",
58+
"x-ms-policy-hash": "9NY0VnTQ-IiBriBplVUpFbczcDaEBUwsiFYAzHu_gco",
59+
"x-ms-runtime": {
60+
"keys": [
61+
{
62+
"e": "AQAB",
63+
"key_ops": [
64+
"encrypt"
65+
],
66+
"kid": "Nvhfuq2cCIOAB8XR4Xi9Pr0NP_9CeMzWQGtW_HALz_w",
67+
"kty": "RSA",
68+
"n": "v965SRmyp8zbG5eNFuDCmmiSeaHpujG2bC_keLSuzvDMLO1WyrUJveaa5bzMoO0pA46pXkmbqHisozVzpiNDLCo6d3z4TrGMeFPf2APIMu-RSrzN56qvHVyIr5caWfHWk-FMRDwAefyNYRHkdYYkgmFK44hhUdtlCAKEv5UQpFZjvh4iI9jVBdGYMyBaKQLhjI5WIh-QG6Za5sSuOCFMnmuyuvN5DflpLFz595Ss-EoBIY-Nil6lCtvcGgR-IbjUYHAOs5ajamTzgeO8kx3VCE9HcyKmyUZsiyiF6IDRp2Bpy3NHTjIz7tmkpTHx7tHnRtlfE2FUv0B6i_QYl_ZA5Q"
69+
}
70+
]
71+
},
72+
"x-ms-sevsnpvm-authorkeydigest": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
73+
"x-ms-sevsnpvm-bootloader-svn": 3,
74+
"x-ms-sevsnpvm-familyId": "01000000000000000000000000000000",
75+
"x-ms-sevsnpvm-guestsvn": 2,
76+
"x-ms-sevsnpvm-hostdata": "670fff86714a650a49b58fadc1e90fedae0eb32dd51e34931c1e7a1839c08f6f",
77+
"x-ms-sevsnpvm-idkeydigest": "cf7e12541981e6cafd150b5236785f4364850e2c4963825f9ab1d8091040aea0964bb9a8835f966bdc174d9ad53b4582",
78+
"x-ms-sevsnpvm-imageId": "02000000000000000000000000000000",
79+
"x-ms-sevsnpvm-is-debuggable": false,
80+
"x-ms-sevsnpvm-launchmeasurement": "a1e1a4b64e8de5c664ceee069010441f74cf039065b5b847e82b9d1a7629aaf33d5591c6b18cee48a4dde481aa88d0fb",
81+
"x-ms-sevsnpvm-microcode-svn": 115,
82+
"x-ms-sevsnpvm-migration-allowed": false,
83+
"x-ms-sevsnpvm-reportdata": "7ab000a323b3c873f5b81bbe584e7c1a26bcf40dc27e00f8e0d144b1ed2d14f10000000000000000000000000000000000000000000000000000000000000000",
84+
"x-ms-sevsnpvm-reportid": "a489c8578fb2f54d895fc8d000a85b2ff4855c015e4fb7216495c4dba4598345",
85+
"x-ms-sevsnpvm-smt-allowed": true,
86+
"x-ms-sevsnpvm-snpfw-svn": 8,
87+
"x-ms-sevsnpvm-tee-svn": 0,
88+
"x-ms-sevsnpvm-uvm-endorsement": {
89+
"x-ms-sevsnpvm-guestsvn": "100",
90+
"x-ms-sevsnpvm-launchmeasurement": "a1e1a4b64e8de5c664ceee069010441f74cf039065b5b847e82b9d1a7629aaf33d5591c6b18cee48a4dde481aa88d0fb"
91+
},
92+
"x-ms-sevsnpvm-vmpl": 0,
93+
"x-ms-ver": "1.0"
94+
}
95+
}
96+
```
97+
## Generating an attestation token
98+
99+
We have open-sourced sidecar container implementations that provide an easy rest interface to get a raw SNP (Secure Nested Paging) report produced by the hardware or a MAA token. The sidecar is available at this [repository](https://github.com/microsoft/confidential-sidecar-containers) and can be deployed with your container group.
100+
101+
## Next steps
102+
103+
- [Learn how to use attestation to release a secret to your container group](../confidential-computing/skr-flow-confidential-containers-azure-container-instance.md)
104+
- [Deploy a confidential container group with Azure Resource Manager](./container-instances-tutorial-deploy-confidential-containers-cce-arm.md)

0 commit comments

Comments
 (0)