调用CreateWebLoginToken触发AccessDeniedException,请求排查
问题原因及解决方法
1. IAM策略资源范围不正确
很多时候用户只配置了airflow:CreateWebLoginToken操作权限,但未指定精确的MWAA环境ARN作为资源。必须确保策略中的Resource字段匹配目标MWAA环境的完整ARN,不能使用泛通配符*(特殊场景除外)。
正确的IAM策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "airflow:CreateWebLoginToken", "Resource": "arn:aws:airflow:<区域>:<账号ID>:environment:<你的MWAA环境名>" } ] }
同时确认该策略已正确附加到调用API的IAM用户/角色上,而非MWAA的执行角色。
2. 未将调用者添加到MWAA环境的允许访问列表
使用Idealo的MWAA Terraform模块时,需明确指定哪些IAM实体有权访问MWAA环境(包括创建登录令牌)。模块通常提供allowed_iam_entities参数,需将调用API的用户/角色ARN添加到该列表中:
module "mwaa" { source = "idealo/mwaa/aws" version = "x.x.x" # 其他必要配置 name = "my-mwaa-env" execution_role_arn = "arn:aws:iam::<账号ID>:role/my-mwaa-exec-role" # ... # 添加允许创建令牌的IAM实体 allowed_iam_entities = [ "arn:aws:iam::<账号ID>:user/my-api-user", # 若使用角色则填写角色ARN # "arn:aws:iam::<账号ID>:role/my-api-role" ] }
更新配置后重新部署MWAA环境,确保配置生效。
3. IAM权限边界限制
若调用者的IAM用户/角色设置了权限边界,需检查边界策略是否包含airflow:CreateWebLoginToken操作及对应的MWAA环境资源。权限边界会覆盖直接附加的策略,可能导致权限失效。
4. 验证调用身份的正确性
调用API时,确保使用的是已配置权限的IAM用户/角色凭证。可通过以下CLI命令验证当前身份:
aws sts get-caller-identity
确认返回的ARN与你配置权限的实体一致。
内容的提问来源于stack exchange,提问作者HouKaide
相关产品推荐
相关产品推荐

