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 или транзитный шлюз).