我想将 AWS Assume Roles 与 Terraform Cloud / Enterprise 一起使用
在 Terraform 开源中,您通常只需执行假设角色,利用 CLI 上的 .aws/Credential Profile(这是初始身份验证)并执行假设角色:
provider "aws" {
assume_role {
role_arn = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
session_name = "SESSION_NAME"
external_id = "EXTERNAL_ID"
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,使用 Terraform Enterprise 或 Cloud,您无法引用配置文件,因为不可变基础架构的目录中不会包含该文件。
Terraform Cloud/Enterprise 需要将访问密钥 ID 和秘密访问密钥设置为变量,以便其基础设施可以通过其管道执行 Terraform RUN,并对您想要在其中配置的任何 AWS 账户进行身份验证。
所以问题是:如何利用 AWS 账户的访问密钥 ID 和秘密访问密钥以及“Action”:“sts:AssumeRole”策略来执行 AWS 承担角色?
我认为,下面的方法可行,但是 Terraform 正在通过 AWS Credential Profile 凭证对具有 sts:AssumeRole 策略的帐户进行初始身份验证
当尝试承担角色时,Terraform 是否可以查看 access_key 和 Secret_key 来确定要使用的 AWS 账户,而不是使用 AWS 凭证配置文件?
provider "aws" {
region = var.aws_region …Run Code Online (Sandbox Code Playgroud) amazon-web-services terraform-enterprise assume-role terraform-cloud
我试图找到一种方法来使用 json 文件通过 powershell 更新 Azure Ad 注册应用程序的清单。
Json 文件包含所有应用程序角色,我想简单地将应用程序角色:[] 注入应用程序角色括号中
有没有办法通过电源外壳或 CLI 实现这一点?
json azure azure-active-directory azure-ad-powershell-v2 azure-webapps
我正在尝试在我的 Azure 应用服务应用程序中设置 IP 限制块
执行 Terraform 计划或应用时,我收到以下错误: 错误:azurerm_app_service.app-service-1:: 无效或未知密钥:ip_restriction
我根据应用服务(Web 应用程序)资源的 Terraform 文档使用了ip_restriction
这是我正在使用的 AppService 部署代码:
resource "azurerm_app_service" "app-service-1" {
name = "${var.app_service_1}"
location = "${data.azurerm_resource_group.core-rg.location}"
resource_group_name = "${data.azurerm_resource_group.core-rg.name}"
app_service_plan_id = "${data.azurerm_app_service_plan.app-service-plan-1.id}"
https_only = "True"
enabled = "True"
client_affinity_enabled = "True"
site_config {
always_on = "True"
#default_documents = ""
dotnet_framework_version = "v4.0"
#http2_enabled = ""
#ip_restriction = ""
#java_version = ""
#java_container = ""
#java_container_version = ""
managed_pipeline_mode = "Integrated"
min_tls_version = "1.2"
#php_version = ""
#python_version = …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Terraform 在 Azure VM 上加密“storage_os_disk”。我已经在 VM OS 磁盘上设置了托管磁盘类型,因此它将被管理,因为我知道必须管理磁盘才能允许加密。
我似乎无法弄清楚如何在 terraform 中加密操作系统磁盘
这是我正在尝试的代码:
resource "azurerm_network_interface" "nic" {
name = "${var.project_ident}-${var.env_ident}-${var.admin_vm_name}-${var.region_suffix}-encrpytest"
location = "${data.azurerm_resource_group.core-rg.location}"
resource_group_name = "${data.azurerm_resource_group.core-rg.name}"
depends_on = ["azurerm_virtual_machine.dns-vm"]
ip_configuration {
name = "${var.project_ident}-${var.env_ident}-${var.admin_vm_name}-${var.region_suffix}-encrpytest"
subnet_id ="${data.terraform_remote_state.network.sn1_id}"
private_ip_address_allocation = "static"
private_ip_address = "${cidrhost(data.terraform_remote_state.network.sn1_address_prefix, 6 )}"
}
}
resource "azurerm_virtual_machine" "admin-vm-encrpytest" {
name = "${var.project_ident}-${var.env_ident}-${var.admin_vm_name}-encrpytest"
location = "${data.azurerm_resource_group.core-rg.location}"
resource_group_name = "${data.azurerm_resource_group.core-rg.name}"
network_interface_ids = ["${azurerm_network_interface.nic.id}"]
vm_size = "Standard_B2s"
depends_on = ["azurerm_virtual_machine.dns-vm"]
# Requires LRS Storage Account
boot_diagnostics {
enabled = "True"
storage_uri = …Run Code Online (Sandbox Code Playgroud)