View multicloud inventory with the multicloud connector enabled by Azure Arc
The Inventory solution of the multicloud connector shows an up-to-date view of your resources from other public clouds in Azure, providing you with a single place to see all your cloud resources. Currently, AWS public cloud environments are supported.
After you enable the Inventory solution, metadata from the assets in the source cloud is included with the asset representations in Azure. You can also apply Azure tags or Azure policies to these resources. This solution allows you to query for all your cloud resources through Azure Resource Graph, such as querying to find all Azure and AWS resources with a specific tag.
The Inventory solution scans your source cloud regularly to update the view represented in Azure. You can specify the interval to query when you connect your public cloud and configure the Inventory solution.
Supported AWS services
Today, resources associated with the following AWS services are scanned and represented in Azure. When you create the Inventory solution, all available services are selected by default, but you can optionally include any services.
The following table shows the AWS services that are scanned, the resource types associated with each service, and the Azure namespace that corresponds to each resource type.
AWS service | AWS resource type | Azure namespace |
---|---|---|
Access Analyzer | accessAnalyzerAnalyzers |
Microsoft.AwsConnector/accessAnalyzerAnalyzers |
API Gateway | apiGatewayRestApis |
Microsoft.AwsConnector/apiGatewayRestApis |
API Gateway | apiGatewayStages |
Microsoft.AwsConnector/apiGatewayStages |
App Sync | appSyncGraphQLApis |
Microsoft.AwsConnector/appSyncGraphQLApis |
Autoscaling | autoScalingAutoScalingGroups |
Microsoft.AwsConnector/autoScalingAutoScalingGroups |
Cloud Formation | cloudFormationStacks |
Microsoft.AwsConnector/cloudFormationStacks |
Cloud Formation | cloudFormationStackSets |
Microsoft.AwsConnector/cloudFormationStackSets |
Cloud Front | cloudFront |
Microsoft.AwsConnector/cloudFrontDistributions |
Cloud Trail | cloudTrailTrails |
Microsoft.AwsConnector/cloudTrailTrails |
Cloud Watch | cloudWatchAlarms |
Microsoft.AwsConnector/cloudWatchAlarms |
Code Build | codeBuildProjects |
Microsoft.AwsConnector/codeBuildProjects |
Code Build | codeBuildSourceCredentialsInfos |
Microsoft.AwsConnector/codeBuildSourceCredentialsInfos |
Config | configServiceConfigurationRecorders |
Microsoft.AwsConnector/configServiceConfigurationRecorders |
Config | configServiceConfigurationRecorderStatuses |
Microsoft.AwsConnector/configServiceConfigurationRecorderStatuses |
Config | configServiceDeliveryChannels |
Microsoft.AwsConnector/configServiceDeliveryChannels |
DAX | daxClusters |
Microsoft.AwsConnector/daxClusters |
DMS | databaseMigrationServiceReplicationInstances |
Microsoft.AwsConnector/databaseMigrationServiceReplicationInstances |
Dynamo DB | dynamoDBContinuousBackupsDescriptions |
Microsoft.AwsConnector/dynamoDBContinuousBackupsDescriptions |
Dynamo DB | dynamoDBTables |
Microsoft.AwsConnector/dynamoDBTables |
EC2 | ec2Instances |
Microsoft.HybridCompute/machines/EC2InstanceId , Microsoft.AwsConnector/Ec2Instances |
EC2 | ec2AccountAttributes |
Microsoft.AwsConnector/ec2AccountAttributes |
EC2 | ec2Addresses |
Microsoft.AwsConnector/ec2Addresses |
EC2 | ec2FlowLogs |
Microsoft.AwsConnector/ec2FlowLogs |
EC2 | ec2Images |
Microsoft.AwsConnector/ec2Images |
EC2 | ec2Ipams |
Microsoft.AwsConnector/ec2Ipams |
EC2 | ec2KeyPairs |
Microsoft.AwsConnector/ec2KeyPairs |
EC2 | ec2Subnets |
Microsoft.AwsConnector/ec2Subnets |
EC2 | ec2Volumes |
Microsoft.AwsConnector/ec2Volumes |
EC2 | ec2VPCs |
Microsoft.AwsConnector/ec2VPCs |
EC2 | ec2NetworkAcls |
Microsoft.AwsConnector/ec2NetworkAcls |
EC2 | ec2NetworkInterfaces |
Microsoft.AwsConnector/ec2NetworkInterfaces |
EC2 | ec2RouteTables |
Microsoft.AwsConnector/ec2RouteTables |
EC2 | ec2VPCEndpoints |
Microsoft.AwsConnector/ec2VPCEndpoints |
EC2 | ec2VPCPeeringConnections |
Microsoft.AwsConnector/ec2VPCPeeringConnections |
EC2 | ec2InstanceStatuses |
Microsoft.AwsConnector/ec2InstanceStatuses |
EC2 | ec2SecurityGroups |
Microsoft.AwsConnector/ec2SecurityGroups |
EC2 | ec2Snapshots |
Microsoft.AwsConnector/ec2Snapshots |
ECR | ecrImageDetails |
Microsoft.AwsConnector/ecrImageDetails |
ECR | ecrRepositories |
Microsoft.AwsConnector/ecrRepositories |
ECS | ecsClusters |
Microsoft.AwsConnector/ecsClusters |
ECS | ecsServices |
Microsoft.AwsConnector/ecsServices |
ECS | ecsTaskDefinitions |
Microsoft.AwsConnector/ecsTaskDefinitions |
EFS | efsFileSystems |
Microsoft.AwsConnector/efsFileSystems |
EFS | efsMountTargets |
Microsoft.AwsConnector/efsMountTargets |
EKS | eksClusters |
Microsoft.AwsConnector/eksClusters |
EKS | eksNodegroups |
Microsoft.AwsConnector/eksNodegroups |
Elastic Beanstalk | elasticBeanstalkApplications |
Microsoft.AwsConnector/elasticBeanstalkApplications |
Elastic Beanstalk | elasticBeanstalkConfigurationTemplates |
Microsoft.AwsConnector/elasticBeanstalkConfigurationTemplates |
Elastic Beanstalk | elasticBeanstalkEnvironments |
Microsoft.AwsConnector/elasticBeanstalkEnvironments |
Elastic Load Balancer V2 | elasticLoadBalancingV2LoadBalancers |
Microsoft.AwsConnector/elasticLoadBalancingV2LoadBalancers |
Elastic Load Balancer V2 | elasticLoadBalancingV2Listeners |
Microsoft.AwsConnector/elasticLoadBalancingV2Listeners |
Elastic Load Balancer V2 | elasticLoadBalancingV2TargetGroups |
Microsoft.AwsConnector/elasticLoadBalancingV2TargetGroups |
Elastic Load Balancer V2 | elasticLoadBalancingV2TargetHealthDescriptions |
Microsoft.AwsConnector/elasticLoadBalancingV2TargetHealthDescriptions |
EMR | emrClusters |
Microsoft.AwsConnector/emrClusters |
GuardDuty | guardDutyDetectors |
Microsoft.AwsConnector/guardDutyDetectors |
IAM | iamAccessKeyLastUseds |
Microsoft.AwsConnector/iamAccessKeyLastUseds |
IAM | iamAccessKeyMetaData |
Microsoft.AwsConnector/iamAccessKeyMetaData |
IAM | iamMFADevices |
Microsoft.AwsConnector/iamMFADevices |
IAM | iamPasswordPolicies |
Microsoft.AwsConnector/iamPasswordPolicies |
IAM | iamPolicyVersions |
Microsoft.AwsConnector/iamPolicyVersions |
IAM | iamRoles |
Microsoft.AwsConnector/iamRoles |
IAM | iamManagedPolicies |
Microsoft.AwsConnector/iamManagedPolicies |
IAM | iamServerCertificates |
Microsoft.AwsConnector/iamServerCertificates |
IAM | iamUserPolicies |
Microsoft.AwsConnector/iamUserPolicies |
IAM | iamVirtualMFADevices |
Microsoft.AwsConnector/iamVirtualMFADevices |
KMS | kmsKeys |
Microsoft.AwsConnector/kmsKeys |
Lambda | lambdaFunctions |
Microsoft.AwsConnector/lambdaFunctions |
Lightsail | lightsailInstances |
Microsoft.AwsConnector/lightsailInstances |
Lightsail | lightsailBuckets |
Microsoft.AwsConnector/lightsailBuckets |
Logs | logsLogGroups |
Microsoft.AwsConnector/logsLogGroups |
Logs | logsLogStreams |
Microsoft.AwsConnector/logsLogStreams |
Logs | logsMetricFilters |
Microsoft.AwsConnector/logsMetricFilters |
Logs | logsSubscriptionFilters |
Microsoft.AwsConnector/logsSubscriptionFilters |
Macie | macieAllowLists |
Microsoft.AwsConnector/macieAllowLists |
Macie2 | macie2JobSummaries |
Microsoft.AwsConnector/macie2JobSummaries |
Network Firewalls | networkFirewallFirewalls |
Microsoft.AwsConnector/networkFirewallFirewalls |
Network Firewalls | networkFirewallFirewallPolicies |
Microsoft.AwsConnector/networkFirewallFirewallPolicies |
Network Firewalls | networkFirewallRuleGroups |
Microsoft.AwsConnector/networkFirewallRuleGroups |
Open Search Service | openSearchDomainStatuses |
Microsoft.AwsConnector/openSearchDomainStatuses |
Organization | organizationsAccounts |
Microsoft.AwsConnector/organizationsAccounts |
Organization | organizationsOrganizations |
Microsoft.AwsConnector/organizationsOrganizations |
RDS | rdsDBInstances |
Microsoft.AwsConnector/rdsDBInstances |
RDS | rdsDBClusters |
Microsoft.AwsConnector/rdsDBClusters |
RDS | rdsEventSubscriptions |
Microsoft.AwsConnector/rdsEventSubscriptions |
RDS | rdsDBSnapshots |
Microsoft.AwsConnector/rdsDBSnapshots |
RDS | rdsDBSnapshotAttributesResults |
Microsoft.AwsConnector/rdsDBSnapshotAttributesResults |
RDS | rdsEventSubscriptions |
Microsoft.AwsConnector/rdsEventSubscriptions |
Redshift | redshiftClusters |
Microsoft.AwsConnector/redshiftClusters |
Redshift | redshiftClusterParameterGroups |
Microsoft.AwsConnector/redshiftClusterParameterGroups |
Route 53 | route53DomainsDomainSummaries |
Microsoft.AwsConnector/route53DomainsDomainSummaries |
Route 53 | route53HostedZones |
Microsoft.AwsConnector/route53HostedZones |
SageMaker | sageMakerApps |
Microsoft.AwsConnector/sageMakerApps |
SageMaker | sageMakerDevices |
Microsoft.AwsConnector/sageMakerDevices |
SageMaker | sageMakerImages |
Microsoft.AwsConnector/sageMakerImages |
SageMaker | sageMakerNotebookInstanceSummaries |
Microsoft.AwsConnector/sageMakerNotebookInstanceSummaries |
Secrets Manager | secretsManagerResourcePolicies |
Microsoft.AwsConnector/secretsManagerResourcePolicies |
Secrets Manager | secretsManagerSecrets |
Microsoft.AwsConnector/secretsManagerSecrets |
Secrets Manager | secretsManagerSecrets |
Microsoft.AwsConnector/secretsManagerSecrets |
S3 | s3Buckets |
Microsoft.AwsConnector/s3Buckets |
S3 | s3AccessControlPolicies |
Microsoft.AwsConnector/s3AccessControlPolicies |
S3 | s3ControlMultiRegionAccessPointPolicyDocuments |
Microsoft.AwsConnector/s3ControlMultiRegionAccessPointPolicyDocuments |
S3 | s3BucketPolicies |
Microsoft.AwsConnector/s3BucketPolicies |
S3 | s3AccessPoints |
Microsoft.AwsConnector/s3AccessPoints |
SNS | snsTopics |
Microsoft.AwsConnector/snsTopics |
SNS | snsSubscriptions |
Microsoft.AwsConnector/snsSubscriptions |
SQS | sqsQueues |
Microsoft.AwsConnector/sqsQueues |
SSM | ssmInstanceInformations |
Microsoft.AwsConnector/ssmInstanceInformations |
SSM | ssmParameters |
Microsoft.AwsConnector/ssmParameters |
SSM | ssmResourceComplianceSummaryItems |
Microsoft.AwsConnector/ssmResourceComplianceSummaryItems |
WAF | wafWebACLSummaries |
Microsoft.AwsConnector/wafWebACLSummaries |
WAFv2 | wafv2LoggingConfigurations |
Microsoft.AwsConnector/wafv2LoggingConfigurations |
AWS resource representation in Azure
After you connect your AWS cloud and enable the Inventory solution, the multicloud connector creates a new resource group using the naming convention aws_yourAwsAccountId
. Azure representations of your AWS resources are created in this resource group, using the AwsConnector
namespace values described in the previous section. You can apply Azure tags and policies to these resources.
Resources that are discovered in AWS and projected in Azure are placed in Azure regions, using a standard mapping scheme.
Note
If you have EC2 instances that have already been connected to Azure Arc, the connector will create the EC2 Inventory resource as child resource of the Microsoft.HybridCompute/machines if the prerequisites have been met in the subscription where the Arc machine resides. Otherwise, the Inventory resource will not be created.
Permission options
Global Read: Provides read only access to all resources in the AWS account. When new services are introduced, the connector can scan for those resources without requiring an updated CloudFormation template.
Least Privilege Access: Provides read access to only the resources under the selected services. If you choose to scan for more resources in the future, a new CloudFormation template will need to be uploaded.
Periodic sync options
The periodic sync time that you select when configuring the Inventory solution determines how often your AWS account is scanned and synced to Azure. By enabling periodic sync, changes to your AWS resources are reflected in Azure. For instance, if a resource is deleted in AWS, that resource is also deleted in Azure.
If you prefer, you can turn periodic sync off when configuring this solution. If you do so, your Azure representation may become out of sync with your AWS resources, as Azure won't be able to rescan and detect any changes.
Querying for resources in Azure Resource Graph
Azure Resource Graph is an Azure service designed to extend Azure Resource Management by providing efficient and performant resource exploration. Running queries at scale across a given set of subscriptions helps you effectively govern your environment.
You can run queries using Resource Graph Explorer in the Azure portal. Some example queries for common scenarios are shown here.
Query all onboarded multicloud asset inventories
resources
| where subscriptionId == "<subscription ID>"
| where id contains "microsoft.awsconnector"
| union (awsresources | where type == "microsoft.awsconnector/ec2instances" and subscriptionId =="<subscription ID>")
| extend awsTags= properties.awsTags, azureTags = ['tags']
| project subscriptionId, resourceGroup, type, id, awsTags, azureTags, properties
Query for all resources under a specific connector
resources
| extend connectorId = tolower(tostring(properties.publicCloudConnectorsResourceId)), resourcesId=tolower(id)
| join kind=leftouter (
awsresources
| extend pccId = tolower(tostring(properties.publicCloudConnectorsResourceId)), awsresourcesId=tolower(id)
| extend parentId = substring(awsresourcesId, 0, strlen(awsresourcesId) - strlen("/providers/microsoft.awsconnector/ec2instances/default"))
) on $left.resourcesId == $right.parentId
| where connectorId =~ "yourConnectorId" or pccId =~ "yourConnectorId"
| extend resourceType = tostring(split(iif (type =~ "microsoft.hybridcompute/machines", type1, type), "/")[1])
Query for all virtual machines in Azure and AWS, along with their instance size
resources
| where (['type'] == "microsoft.compute/virtualmachines")
| union (awsresources | where type == "microsoft.awsconnector/ec2instances")
| extend cloud=iff(type contains "ec2", "AWS", "Azure")
| extend awsTags=iff(type contains "microsoft.awsconnector", properties.awsTags, ""), azureTags=tags
| extend size=iff(type contains "microsoft.compute", properties.hardwareProfile.vmSize, properties.awsProperties.instanceType.value)
| project subscriptionId, cloud, resourceGroup, id, size, azureTags, awsTags, properties
Query for all functions across Azure and AWS
resources
| where (type == 'microsoft.web/sites' and ['kind'] contains 'functionapp') or type == "microsoft.awsconnector/lambdafunctionconfigurations"
| extend cloud=iff(type contains "awsconnector", "AWS", "Azure")
| extend functionName=iff(cloud=="Azure", properties.name,properties.awsProperties.functionName), state=iff(cloud=="Azure", properties.state, properties.awsProperties.state), lastModifiedTime=iff(cloud=="Azure", properties.lastModifiedTimeUtc,properties.awsProperties.lastModified), location=iff(cloud=="Azure", location,properties.awsRegion), tags=iff(cloud=="Azure", tags, properties.awsTags)
| project cloud, functionName, lastModifiedTime, location, tags
Query for all resources with a certain tag
resources
| extend awsTags=iff(type contains "microsoft.awsconnector", properties.awsTags, ""), azureTags=tags
| where awsTags contains "<yourTagValue>" or azureTags contains "<yourTagValue>"
| project subscriptionId, resourceGroup, name, azureTags, awsTags
Next steps
- Learn about the multicloud connector Arc Onboarding solution.
- Learn more about Azure Resource Graph.