Я пытаюсь создать клиент службы в задаче Fargate, используя роль IAM уровня задачи.
В других сообщениях предполагается, что TaskRole является частью цепочки поставщиков учетных данных по умолчанию, поэтому должен работать стандартный вызов для загрузки учетных данных.
Урезанный код задачи
import (
"fmt"
"github.com/aws/aws-sdk-go-v2/aws/external"
"github.com/aws/aws-sdk-go-v2/service/sns"
)
func main() {
cfg, err := external.LoadDefaultAWSConfig()
if err != nil {
fmt.Println("failed to load config, " + err.Error())
}
fmt.Printf("%+v\n", cfg )
client := sns.New(cfg)
fmt.Printf("%+v\n", client)
}
Роль Terraformи определения политики ...
TaskExecutions и TaskRole - это, по сути, один и тот же код, хотя и 2 блока: (правильно ??)
resource "aws_iam_role" "++++++++++++" {
name = "++++++++++++++"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": [
"ecs.amazonaws.com",
"ecs-tasks.amazonaws.com"
]
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
Политика выполнения задачи
resource "aws_iam_policy" "ExecutionPolicy" {
name = "execution-policy"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
EOF
}
Политика ролей задач
resource "aws_iam_policy" "TaskPolicy" {
name = "task-policy"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"sns:Publish"
],
"Resource": "*"
}
]
}
EOF
}
Политики, похоже, правильно прикреплены к ролям и выглядят нормально на консоли при выполнении задачи.
Я ожидаю, что задача загрузит конфигурацию / учетные данныеиз роли задачи IAM из поиска цепочки поставщиков учетных данных по умолчанию и создания клиента.
Тем не менее, ТОЛЬКО результат журнала:
standard_init_linux.go: 190: exec userпроцесс вызвал "нет такого файла или каталога"
Когда я запускаю другой код без вызовов других служб aws, задача выполняется правильно.
WЧто мне не хватает?