ECS — FileSystemNotFound: файловая система не существует

У меня есть служба ECS с типом запуска EC2, принадлежащая учетной записи AWS A. Наша ИТ-команда создала хранилище FSx, принадлежащее учетной записи AWS B:

Когда я пытаюсь запустить задачи, я получаю эту неавторизованную ошибку в разделе «Причина остановки» задачи:

       Fsx describing filesystem(s) from the service for [fs-0fd8b05f434cf0e72]: 
FileSystemNotFound: File system 'fs-0fd8b05f434cf0e72' does not exist.

Я прикрепил эти 2 политики к экземпляру EC2 (контейнерного хоста):

  • AmazonFSxReadOnlyAccess (под управлением AWS)
  • fsx_mount (управляется клиентом)

fsx_mount:

      {
    "Statement": [
        {
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:us-west-2:111111111111:secret:dev/rushmore/ad-account-NKOkyh"
        },
        {
            "Action": [
                "fsx:*",
                "ds:DescribeDirectories"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:fsx:eu-west-1:222222222222:file-system/fs-0fd8b05f434cf0e72"
        }
    ],
    "Version": "2012-10-17"
}

Обратите внимание , что идентификатор учетной записи 222222222222 представляет собой учетную запись AWS B.

Terraform aws_ecs_task_definition:

      resource "aws_ecs_task_definition" "participants_task" {
  volume {
    name = "FSxStorage"
    fsx_windows_file_server_volume_configuration {
      file_system_id = "fs-0fd8b05f434cf0e72"
      root_directory = "\\data"

      authorization_config {
        credentials_parameter = aws_secretsmanager_secret_version.fsx_account_secret.arn
        domain                = var.domain
      }
    }
  }
  ...
}

Я не уверен, почему ECS не может "видеть" файловую систему FSx. Конечно, это должно быть потому, что он находится в другой учетной записи AWS, но я не знаю, какие изменения необходимы, чтобы это исправить.

1 ответ

Из документации AWS:

Вы можете получить доступ к файловой системе FSx для файлового сервера Windows из вычислительных экземпляров в другом облаке VPC, учетной записи AWS или регионе AWS, отличном от того, который связан с вашей файловой системой. Для этого вы можете использовать пиринговые или транзитные шлюзы VPC. Когда вы используете пиринговое соединение VPC или транзитный шлюз для подключения VPC, вычислительные экземпляры, находящиеся в одном VPC, могут получить доступ к файловым системам Amazon FSx в другом VPC. Такой доступ возможен, даже если VPC принадлежат разным учетным записям и даже если VPC находятся в разных регионах AWS.

Краткая версия приведенного выше текста заключается в том, что ваш сервис ECS и файловый сервер Amazon FSx Windows либо должны находиться в одном и том же VPC, либо должны находиться в VPC, которые подключены друг к другу (через пиринг VPC или транзитный шлюз).

Другие вопросы по тегам