小编phy*_*man的帖子

“系统分配”身份和应用注册“服务主体”之间的区别

有人可以帮助我了解在 AAD 中创建应用注册时创建的服务主体与在应用服务的标识边栏选项卡上启用“系统分配”时创建的托管标识之间的区别吗?

我们有一个正在开发的应用服务,我们已经为其创建了应用注册,并且我们还启用了系统分配的身份。当我们进入 AAD 下的企业应用程序并搜索我们的应用程序时,它会出现 2 个条目。一个用于托管身份,另一个用于作为应用注册的一部分创建的服务主体。我们试图了解我们将使用哪一个来授予应用程序写入 Azure SQL DB 的权限。

azure-active-directory azure-web-app-service

12
推荐指数
1
解决办法
3347
查看次数

使用 && 对多个属性进行 AZ CLI 查询过滤器

我正在尝试创建一个 az cli 查询,它可以评估我是否登录到正确的租户和订阅。我知道我必须使用?&&运算符,但还无法将它们组合成正确的组合。当我使用下面的行查询单个值时,工作正常:

az account list --query "[?id=='my_subscription_id']" --output json
Run Code Online (Sandbox Code Playgroud)

但是当我尝试下面的任何一行时,它告诉我它是无效的 jmespath_type 值:

az account list --query "[?id=='my_subscription_id' && ?tenantId=='my_tenant_id']"  --output json
az account list --query "[(?id=='my_subscription_id') && (?tenantId=='my_tenant_id')]"  --output json
Run Code Online (Sandbox Code Playgroud)

当我尝试下面的行时,它给了我错误] was unexpected at this time

az account list --query "[(?id=='my_subscription_id')&&(?tenantId=='my_tenant_id')]"  --output json
Run Code Online (Sandbox Code Playgroud)

我知道这是可以做到的,只是似乎还找不到合适的混合物。

更新信息:

经过进一步的测试,我取得了一些进展,但仍然不完全符合我的预期。假设租户ID是123,我想要的订阅ID是ABC,我的帐户也可以访问订阅ID EFG。运行以下命令时:

az account list --query "[].{subscriptionId:id,tenantId:tenantId}"
Run Code Online (Sandbox Code Playgroud)

我得到输出:

  {
    "subscriptionId": "ABC",
    "tenantId": "123"
  },
  {
    "subscriptionId": "EFG",
    "tenantId": "123"
  }
Run Code Online (Sandbox Code Playgroud)

我希望运行下面的命令,只会返回匹配的单个记录:

az account list --query "[?id == …
Run Code Online (Sandbox Code Playgroud)

azure-cli jmespath

10
推荐指数
1
解决办法
4万
查看次数

服务主体 az cli 登录失败 - 未找到订阅

尝试az cli使用服务主体执行登录并抛出错误说明No subscriptions found for <Service_Principal_AppId>. If this is expected, use '--allow-no-subscriptions'. 此代码以前运行良好,但现在似乎不再起作用。正在使用的命令行如下:

$sp_appid = (Get-AzureRmADServicePrincipal -DisplayName $spDisplayName).ApplicationId.Guid
$sp_secret = (Get-AzureKeyVaultSecret -VaultName $kvName -Name $appKeySecretName).SecretValueText
az login --service-principal --username $sp_appid --password $sp_secret --tenant $tenant_Id
Run Code Online (Sandbox Code Playgroud)

我验证了Contributor在订阅级别为服务主体分配了角色。

powershell azure azure-cli azure-cli2

7
推荐指数
3
解决办法
6164
查看次数

从 CLI 将值传递到对象类型的 Terraform 变量

我的variables.tf文件中声明了一个变量,如下所示:

variable "linux_jb_0" {
    description = "Linux jump box settings"
    type = object(
        {
            vm_size  = string
            adm_acct = string
        }
    )
    default = {
            vm_size  = "Standard_A1"
            adm_acct = null
    } 
}
Run Code Online (Sandbox Code Playgroud)

我试图确定如何adm_acct从命令行将值传递给该变量的属性。我已经尝试过以下方法,但它不起作用:

terraform apply -var "linux_jb_0={"adm_acct":$account","vm_size":"Standard_A1"}"
Run Code Online (Sandbox Code Playgroud)

这个命令告诉我Variables not allowed。在这种情况下真的不允许使用变量还是我的语法不正确?

terraform terraform0.12+

6
推荐指数
2
解决办法
4955
查看次数

正确使用 Terraform 外部数据源

我正在 Azure 中的 bash cloud shell 中使用 Terraform。我正在尝试将外部数据源添加到我的 Terraform 配置文件中,该文件将用于az cli查询virtualip模板部署的 Microsoft.Web/hostingEnvironment 上的对象。

AZ CLI 命令行: az resource show --ids /subscriptions/<subscription Id>/resourceGroups/my-ilbase-rg/providers/Microsoft.Web/hos tingEnvironments/my-ilbase/capacities/virtualip

从命令行运行时的输出:

   {
      "additionalProperties": {
        "internalIpAddress": "10.10.1.11",
        "outboundIpAddresses": [
          "52.224.70.119"
        ],
        "serviceIpAddress": "52.224.70.119",
        "vipMappings": []
      },
      "id": null,
      "identity": null,
      "kind": null,
      "location": null,
      "managedBy": null,
      "name": null,
      "plan": null,
      "properties": null,
      "sku": null,
      "tags": null,
      "type": null
    }
Run Code Online (Sandbox Code Playgroud)

在我的 Terraform 配置中,我为--ids值创建一个变量:

    variable ilbase_resourceId {
      default = "/subscriptions/<subscription Id>/resourceGroups/my-ilbase-rg/providers/Microsoft.Web/hostingEnvironments/my-ilbase/capacities/virtualip"
    }
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式构建数据源:

    data …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-template-file terraform-provider-azure

5
推荐指数
1
解决办法
8666
查看次数

如何使用 Bicep 引用对象数组中的对象

我试图在创建具有 4 个子网的虚拟网络的模块中输出每个子网的引用 ID。我可以得到第一个,[0]但是当我尝试输出其他的时,[1], [2], [3]部署失败并抛出错误:

The language expression property array index "1" is out of bounds

以下是创建 virtualNetwork 和子网的代码:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2018-11-01' = {
  name: vNetName
  location: location
  tags: tags
  properties: {
    addressSpace: {
      addressPrefixes: [
        addressPrefix
      ]
    }
    subnets: subnets
  }
}
Run Code Online (Sandbox Code Playgroud)

subnets是数组类型的变量:

var subnets = [
  {
    name: mgmtSubnetName
    properties: {
      addressPrefix: mgmtSubnetAddressPrefix
    }
  }
  {
    name: intSubnetName
    properties: {
      addressPrefix: intSubnetAddressPrefix
    }
  }
  {
    name: extSubnetName
    properties: {
      addressPrefix: extSubnetAddressPrefix
    } …
Run Code Online (Sandbox Code Playgroud)

azure azure-resource-manager azure-bicep

3
推荐指数
1
解决办法
7037
查看次数

Terraform的分层部署

我是Terraform的新手,所以甚至不确定这样的事情是否可行。举例来说,假设我有一个模板,该模板中部署了一个Azure资源组和一个密钥库。然后说我有另一个模板,可以将虚拟机部署到同一资源组中。是否可以在不破坏密钥库和资源组的情况下使用虚拟机模板进行破坏?我们试图将大型解决方案的各个部分划分开来,而不必将其全部放在一个模板中,并且我们希望能够独立管理每个部分而又不影响其他部分。

在相关说明中...我们将状态文件存储在Azure存储帐户中。如果我们将部署分解为多个分区的部署...每个部署应该有自己的状态文件还是应该都使用相同的状态文件?

terraform terraform-template-file terraform-provider-azure

1
推荐指数
1
解决办法
674
查看次数

azurerm_app_services Terraform 资源上的“app_settings”参数的格式

我们正在使用 Terraform 将 Web 应用程序部署到 Azure,并希望不再使用 web.config 进行配置设置。我相信我们可以在部署时使用资源app_settings参数来实现这些azurerm_app_service,但尝试找到如何正确格式化它的示例。

azure azure-web-app-service terraform-provider-azure

0
推荐指数
1
解决办法
5405
查看次数