所有 .NET AspireAzure 托管集成都定义 Azure 资源。 这些资源 附带默认角色分配。 可以将这些默认角色分配替换为内置角色 或自定义角色分配。 本文介绍如何管理 Azure 在 .NET 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 包。 每个 .NET AspireAzure 托管集成都自动取决于相应的预配包。 有关详细信息,请参阅 基础结构即代码。
以下部分列出了可用作 API 参数WithRoleAssignments
的每个Azure预配类型的内置角色。
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.NET 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
有关详细信息,请参阅.NET 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
有关详细信息,请参阅 .NET 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
有关详细信息,请参阅 .NET AspireAzure Key Vault 集成。
Azure AI 搜索
预配资源类型为 SearchService,内置角色在结构中 SearchBuiltInRole 定义。 内置角色包括:
- SearchBuiltInRole.SearchIndexDataContributor
- SearchBuiltInRole.SearchIndexDataReader
- SearchBuiltInRole.SearchServiceContributor
有关详细信息,请参阅 .NET AspireAzure AI 搜索集成。
Azure Service Bus
预配资源类型为 ServiceBusNamespace,内置角色在结构中 ServiceBusBuiltInRole 定义。 内置角色包括:
- ServiceBusBuiltInRole.AzureServiceBusDataOwner
- ServiceBusBuiltInRole.AzureServiceBusDataReceiver
- ServiceBusBuiltInRole.AzureServiceBusDataSender
有关详细信息,请参阅 .NET AspireAzure Service Bus 集成。
Azure SignalR Service
预配资源类型为 SignalRService,内置角色在结构中 SignalRBuiltInRole 定义。 内置角色包括:
- SignalRBuiltInRole.SignalRAccessKeyReader
- SignalRBuiltInRole.SignalRAppServer
- SignalRBuiltInRole.SignalRContributor
- SignalRBuiltInRole.SignalRRestApiOwner
- SignalRBuiltInRole.SignalRRestApiReader
- SignalRBuiltInRole.SignalRServiceOwner
有关详细信息,请参阅 .NET AspireAzureAzure 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
有关详细信息,请参阅 .NET AspireAzureWeb PubSub 集成。