所有 AspireAzure 托管集成都定义 Azure 资源。 这些资源 附带默认角色分配。 可以将这些默认角色分配替换为内置角色 或自定义角色分配。 本文介绍如何管理 Azure 在 Aspire 资源上的角色分配。
默认内置角色分配
将资源添加到Azure应用模型时,会为其分配默认角色。 如果一个资源取决于另一个资源,则它会继承与被引用资源相同的角色分配,除非被明确替代。
假设 API 项目资源引用 Azure 搜索 资源。 API 项目获得默认角色分配,如以下示例所示:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.AddAzureSearch("search");
var api = builder.AddProject<Projects.Api>("api")
                 .WithReference(search);
在示例代码中, api 项目资源依赖于 Azuresearch 资源,这意味着它引用资源 search 。 默认情况下,资源 search 分配了以下内置角色:
这些角色分配允许 API 项目读取和写入搜索资源的数据 Azure ,并对其进行管理。 但是,此行为可能并不总是可取的。 例如,你可能希望将 API 项目限制为仅从 Azure 搜索资源读取数据。
替代默认角色分配
若要替代默认角色分配,请使用 WithRoleAssignments API 并分配内置角色,如以下示例所示:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.AddAzureSearch("search");
var api = builder.AddProject<Projects.Api>("api")
                 .WithRoleAssignments(search, SearchBuiltInRole.SearchIndexDataReader)
                 .WithReference(search);
使用 WithRoleAssignments 该方法时,它将默认角色分配替换为指定的角色分配。 此方法需要两个参数:角色分配适用的资源以及要分配的内置角色。 在前面的示例中,为 search 资源分配 SearchBuiltInRole.SearchIndexDataReader 了角色。
将默认角色分配替换为 SearchIndexDataReader 角色时,API 项目仅限于从 Azure 搜索资源读取数据。 这可确保 API 项目无法将数据 Azure 写入搜索资源。
有关详细信息,请参阅 Azure 内置角色。
内置角色分配参考
所有内置角色都在 Azure.Provisioning 命名空间中定义,并包含在相应的 📦Azure.Provisioning.* NuGet 包中。 每个 AspireAzure 托管集成都自动取决于相应的预配包。 有关详细信息,请参阅 自定义 Azure 资源。
以下部分列出了可用作 Azure API 参数的每个 WithRoleAssignments 预配类型的内置角色。
Azure 应用配置
预配资源类型为 AppConfigurationStore,内置角色在结构中 AppConfigurationBuiltInRole 定义。 内置角色包括:
- AppConfigurationBuiltInRole.AppConfigurationDataOwner
 - AppConfigurationBuiltInRole.AppConfigurationDataReader
 
Azure 应用容器
预配资源类型为 ContainerApp,内置角色在结构中 AppContainersBuiltInRole 定义。 内置角色包括:
Azure Application Insights
预配资源类型为 ApplicationInsightsComponent,内置角色在结构中 ApplicationInsightsBuiltInRole 定义。 内置角色包括:
- ApplicationInsightsBuiltInRole.ApplicationInsightsComponentContributor
 - ApplicationInsightsBuiltInRole.ApplicationInsightsSnapshotDebugger
 - ApplicationInsightsBuiltInRole.MonitoringContributor
 - ApplicationInsightsBuiltInRole.MonitoringMetricsPublisher
 - ApplicationInsightsBuiltInRole.MonitoringReader
 - ApplicationInsightsBuiltInRole.WorkbookContributor
 - ApplicationInsightsBuiltInRole.WorkbookReader
 
有关详细信息,请参阅使用 Application Insights 进行 Aspire 遥测。
Azure AI (前认知服务)
预配资源类型为 CognitiveServicesAccount,内置角色在结构中 CognitiveServicesBuiltInRole 定义。 内置角色包括:
- CognitiveServicesBuiltInRole.AzureAIDeveloper
 - CognitiveServicesBuiltInRole.AzureAIEnterpriseNetworkConnectionApprover
 - CognitiveServicesBuiltInRole.AzureAIInferenceDeploymentOperator
 - CognitiveServicesBuiltInRole.CognitiveServicesContributor
 - CognitiveServicesBuiltInRole.CognitiveServicesCustomVisionContributor
 - CognitiveServicesBuiltInRole.CognitiveServicesCustomVisionDeployment
 - CognitiveServicesBuiltInRole.CognitiveServicesCustomVisionLabeler
 - CognitiveServicesBuiltInRole.CognitiveServicesCustomVisionReader
 - CognitiveServicesBuiltInRole.CognitiveServicesCustomVisionTrainer
 - CognitiveServicesBuiltInRole.CognitiveServicesDataReader
 - CognitiveServicesBuiltInRole.CognitiveServicesFaceRecognizer
 - CognitiveServicesBuiltInRole.CognitiveServicesMetricsAdvisorAdministrator
 - CognitiveServicesBuiltInRole.CognitiveServicesOpenAIContributor
 - CognitiveServicesBuiltInRole.CognitiveServicesOpenAIUser
 - CognitiveServicesBuiltInRole.CognitiveServicesOpenAIUser
 - CognitiveServicesBuiltInRole.CognitiveServicesQnAMakerEditor
 - CognitiveServicesBuiltInRole.CognitiveServicesQnAMakerReader
 - CognitiveServicesBuiltInRole.CognitiveServicesUsagesReader
 - CognitiveServicesBuiltInRole.CognitiveServicesUser
 
有关详细信息,请参阅AspireAzureOpenAI集成(预览版)。
Azure Cosmos DB
预配资源类型为 CosmosDBAccount,内置角色在结构中 CosmosDBBuiltInRole 定义。 内置角色包括:
- CosmosDBBuiltInRole.CosmosDBOperator
 - CosmosDBBuiltInRole.CosmosBackupOperator
 - CosmosDBBuiltInRole.CosmosRestoreOperator
 
有关详细信息,请参见:
Azure Event Hubs
预配资源类型为 EventHubsNamespace,内置角色在结构中 EventHubsBuiltInRole 定义。 内置角色包括:
- EventHubsBuiltInRole.AzureEventHubsDataOwner
 - EventHubsBuiltInRole.AzureEventHubsDataReceiver
 - EventHubsBuiltInRole.AzureEventHubsDataSender
 - EventHubsBuiltInRole.SchemaRegistryContributor
 - EventHubsBuiltInRole.SchemaRegistryReader
 
有关详细信息,请参阅 AspireAzure Event Hubs 集成。
Azure Key Vault
预配资源类型为 KeyVaultService,内置角色在结构中 KeyVaultBuiltInRole 定义。 内置角色包括:
- KeyVaultBuiltInRole.KeyVaultAdministrator
 - KeyVaultBuiltInRole.KeyVaultCertificatesOfficer
 - KeyVaultBuiltInRole.KeyVaultCertificateUser
 - KeyVaultBuiltInRole.KeyVaultContributor
 - KeyVaultBuiltInRole.KeyVaultCryptoOfficer
 - KeyVaultBuiltInRole.KeyVaultCryptoServiceEncryptionUser
 - KeyVaultBuiltInRole.KeyVaultCryptoServiceReleaseUser
 - KeyVaultBuiltInRole.KeyVaultCryptoUser
 - KeyVaultBuiltInRole.KeyVaultDataAccessAdministrator
 - KeyVaultBuiltInRole.KeyVaultDataAccessAdministrator
 - KeyVaultBuiltInRole.KeyVaultReader
 - KeyVaultBuiltInRole.KeyVaultSecretsOfficer
 - KeyVaultBuiltInRole.KeyVaultSecretsUser
 - KeyVaultBuiltInRole.ManagedHsmContributor
 
有关详细信息,请参阅 AspireAzure Key Vault 集成。
Azure AI 搜索
预配资源类型为 SearchService,内置角色在结构中 SearchBuiltInRole 定义。 内置角色包括:
- SearchBuiltInRole.SearchIndexDataContributor
 - SearchBuiltInRole.SearchIndexDataReader
 - SearchBuiltInRole.SearchServiceContributor
 
有关详细信息,请参阅 AspireAzure AI 搜索集成。
Azure Service Bus
预配资源类型为 ServiceBusNamespace,内置角色在结构中 ServiceBusBuiltInRole 定义。 内置角色包括:
- ServiceBusBuiltInRole.AzureServiceBusDataOwner
 - ServiceBusBuiltInRole.AzureServiceBusDataReceiver
 - ServiceBusBuiltInRole.AzureServiceBusDataSender
 
有关详细信息,请参阅 AspireAzure Service Bus 集成。
Azure SignalR Service
预配资源类型为 SignalRService,内置角色在结构中 SignalRBuiltInRole 定义。 内置角色包括:
- SignalRBuiltInRole.SignalRAccessKeyReader
 - SignalRBuiltInRole.SignalRAppServer
 - SignalRBuiltInRole.SignalRContributor
 - SignalRBuiltInRole.SignalRRestApiOwner
 - SignalRBuiltInRole.SignalRRestApiReader
 - SignalRBuiltInRole.SignalRServiceOwner
 
有关详细信息,Aspire请参阅AzureAzure SignalR Service的 支持。
Azure SQL
预配资源类型为 SqlServer,内置角色在结构中 SqlBuiltInRole 定义。 内置角色包括:
- SqlBuiltInRole.AzureConnectedSqlServerOnboarding
 - SqlDBContributor
 - SqlBuiltInRole.SqlManagedInstanceContributor
 - SqlBuiltInRole.SqlSecurityManager
 - SqlBuiltInRole.SqlServerContributor
 
Azure 存储
预配资源类型为 StorageAccount,内置角色在结构中 StorageBuiltInRole 定义。 内置角色包括:
- StorageBuiltInRole.ClassicStorageAccountContributor
 - StorageBuiltInRole.ClassicStorageAccountKeyOperatorServiceRole
 - StorageBuiltInRole.StorageAccountBackupContributor
 - StorageBuiltInRole.StorageAccountContributor
 - StorageBuiltInRole.StorageAccountKeyOperatorServiceRole
 - StorageBuiltInRole.StorageBlobDataContributor
 - StorageBuiltInRole.StorageBlobDataOwner
 - StorageBuiltInRole.StorageBlobDataReader
 - StorageBuiltInRole.StorageBlobDelegator
 - StorageBuiltInRole.StorageFileDataPrivilegedContributor
 - StorageBuiltInRole.StorageFileDataPrivilegedReader
 - StorageBuiltInRole.StorageFileDataSmbShareContributor
 - StorageBuiltInRole.StorageFileDataSmbShareElevatedContributor
 - StorageBuiltInRole.StorageFileDataSmbShareReader
 - StorageBuiltInRole.StorageQueueDataContributor
 - StorageBuiltInRole.StorageQueueDataMessageProcessor
 - StorageBuiltInRole.StorageQueueDataMessageSender
 - StorageBuiltInRole.StorageQueueDataReader
 - StorageBuiltInRole.StorageTableDataContributor
 - StorageBuiltInRole.StorageTableDataReader
 
有关详细信息,请参见:
Azure Web PubSub
预配资源类型为 WebPubSubService,内置角色在结构中 WebPubSubBuiltInRole 定义。 内置角色包括:
- WebPubSubBuiltInRole.WebPubSubContributor
 - WebPubSubBuiltInRole.WebPubSubServiceOwner
 - WebPubSubBuiltInRole.WebPubSubServiceReader
 
有关详细信息,请参阅 AspireAzureWeb PubSub 集成。