diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9b121f105f8..e4fdf500c9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,11 @@ release.
## Unreleased
+New:
+
+- Add `cloud.infrastructure_service` resource attribute
+ ([#1112](https://github.com/open-telemetry/opentelemetry-specification/pull/1112))
+
Updates:
- Additional Cassandra semantic attributes
diff --git a/semantic_conventions/resource/cloud.yaml b/semantic_conventions/resource/cloud.yaml
index d7672577a3c..ad48f3ca9cf 100644
--- a/semantic_conventions/resource/cloud.yaml
+++ b/semantic_conventions/resource/cloud.yaml
@@ -37,3 +37,57 @@ groups:
note: >
In AWS, this is called availability-zone.
examples: ['us-central1-a']
+ - id: infrastructure_service
+ type:
+ allow_custom_values: true
+ members:
+ - id: AWS_EC2
+ value: 'aws_ec2'
+ brief: AWS Elastic Compute Cloud
+ - id: AWS_ECS
+ value: 'aws_ecs'
+ brief: AWS Elastic Container Service
+ - id: AWS_EKS
+ value: 'aws_eks'
+ brief: AWS Elastic Kubernetes Service
+ - id: AWS_Lambda
+ value: 'aws_lambda'
+ brief: AWS Lambda
+ - id: AWS_ElasticBeanstalk
+ value: 'aws_elastic_beanstalk'
+ brief: AWS Elastic Beanstalk
+ - id: Azure_VM
+ value: 'azure_vm'
+ brief: Azure Virtual Machines
+ - id: Azure_ContainerInstances
+ value: 'azure_container_instances'
+ brief: Azure Container Instances
+ - id: Azure_AKS
+ value: 'azure_aks'
+ brief: Azure Kubernetes Service
+ - id: Azure_Functions
+ value: 'azure_functions'
+ brief: Azure Functions
+ - id: Azure_AppService
+ value: 'azure_app_service'
+ brief: Azure App Service
+ - id: GCP_ComputeEngine
+ value: 'gcp_compute_engine'
+ brief: GCP Compute Engine
+ - id: GCP_CloudRun
+ value: 'gcp_cloud_run'
+ brief: GCP Cloud Run
+ - id: GCP_GKE
+ value: 'gcp_gke'
+ brief: Google Kubernetes Engine
+ - id: GCP_CloudFunctions
+ value: 'gcp_cloud_functions'
+ brief: GCP Cloud Functions
+ - id: GCP_AppEngine
+ value: 'gcp_app_engine'
+ brief: GCP App Engine
+ brief: >
+ The cloud infrastructure resource in use.
+ note: >
+ The prefix of the service SHOULD match the one specified in `cloud.provider`.
+ examples: ['aws_ec2', 'azure_vm', 'gcp_compute_engine']
diff --git a/specification/resource/semantic_conventions/cloud.md b/specification/resource/semantic_conventions/cloud.md
index 4dccffaf353..c8103bb8c16 100644
--- a/specification/resource/semantic_conventions/cloud.md
+++ b/specification/resource/semantic_conventions/cloud.md
@@ -11,9 +11,12 @@
| `cloud.account.id` | string | The cloud account ID used to identify different entities. | `opentelemetry` | No |
| `cloud.region` | string | A specific geographical location where different entities can run. | `us-central1` | No |
| `cloud.zone` | string | Zones are a sub set of the region connected through low-latency links. [1] | `us-central1-a` | No |
+| `cloud.infrastructure_service` | string | The cloud infrastructure resource in use. [2] | `aws_ec2`
`azure_vm`
`gcp_compute_engine` | No |
**[1]:** In AWS, this is called availability-zone.
+**[2]:** The prefix of the service SHOULD match the one specified in `cloud.provider`.
+
`cloud.provider` MUST be one of the following or, if none of the listed values apply, a custom value:
| Value | Description |
@@ -21,4 +24,24 @@
| `aws` | Amazon Web Services |
| `azure` | Microsoft Azure |
| `gcp` | Google Cloud Platform |
+
+`cloud.infrastructure_service` MUST be one of the following or, if none of the listed values apply, a custom value:
+
+| Value | Description |
+|---|---|
+| `aws_ec2` | AWS Elastic Compute Cloud |
+| `aws_ecs` | AWS Elastic Container Service |
+| `aws_eks` | AWS Elastic Kubernetes Service |
+| `aws_lambda` | AWS Lambda |
+| `aws_elastic_beanstalk` | AWS Elastic Beanstalk |
+| `azure_vm` | Azure Virtual Machines |
+| `azure_container_instances` | Azure Container Instances |
+| `azure_aks` | Azure Kubernetes Service |
+| `azure_functions` | Azure Functions |
+| `azure_app_service` | Azure App Service |
+| `gcp_compute_engine` | GCP Compute Engine |
+| `gcp_cloud_run` | GCP Cloud Run |
+| `gcp_gke` | Google Kubernetes Engine |
+| `gcp_cloud_functions` | GCP Cloud Functions |
+| `gcp_app_engine` | GCP App Engine |