You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Azure Email Communication Service配置认证并导出凭据?

Azure Email Communication Service 认证方式与Terraform配置指南

一、除主体账户外的可选认证方式

  • Azure AD OAuth 2.0:可使用Azure AD应用服务主体、用户身份或托管标识获取访问令牌,用于SMTP投递或调用REST API,相比密码更安全,支持权限精细化管控
  • 托管标识(Managed Identity):专为Azure内部服务设计,无需手动维护密钥,由Azure自动管理身份凭证,适合Azure函数、VM等服务直接对接邮件服务
  • IP白名单限制:配合上述认证方式使用,仅允许指定IP段的请求访问服务,进一步提升安全性

二、Terraform中关联主体账户并导出密钥

要创建SMTP主体账户(凭据)并导出密钥,需添加azurerm_email_communication_service_smtp_credential资源,并通过输出变量暴露密钥数据:

修改后的完整Terraform代码

terraform{
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "3.61.0"
    }
  }
}

resource "azurerm_resource_group" "azurerm_group" {
  name     = var.resource_group_name
  location = var.region
}

resource "azurerm_email_communication_service" "smtp-service" {
  name                = var.service_name
  resource_group_name = azurerm_resource_group.azurerm_group.name
  data_location       = var.data_location
}

# 创建SMTP主体账户凭据
resource "azurerm_email_communication_service_smtp_credential" "smtp-cred" {
  name                          = "smtp-credential"
  email_communication_service_id = azurerm_email_communication_service.smtp-service.id
}

# 导出SMTP用户名和密钥
output "smtp_username" {
  value       = azurerm_email_communication_service_smtp_credential.smtp-cred.username
  description = "SMTP主体账户用户名"
  sensitive   = true # 标记为敏感数据,避免日志泄露
}

output "smtp_password" {
  value       = azurerm_email_communication_service_smtp_credential.smtp-cred.password
  description = "SMTP主体账户密钥"
  sensitive   = true # 敏感数据,禁止明文输出
}

关键说明

  1. azurerm_email_communication_service_smtp_credential资源会自动为邮件服务生成SMTP主体账户的用户名和密码
  2. 标记为sensitive = true的输出项,Terraform会默认隐藏显示,如需查看可执行terraform output smtp_password或terraform output -json命令
  3. 导出的凭据可直接用于应用程序的SMTP认证配置

内容的提问来源于stack exchange,提问作者anaconda1337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:01:09