1

我有一个 ECS 服务,它属于 AWS 账户 A 拥有的 Launch Type EC2。我们的 IT 团队创建了一个由 AWS 账户 B 拥有的 FSx 存储:

在此处输入图像描述

当我尝试启动任务时,我在任务的已停止原因部分收到此未授权错误:

 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"
}

请注意,账户 id 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 账户中,但我不知道需要进行哪些更改才能解决此问题。

4

1 回答 1

1

来自AWS 文档

您可以从与您的文件系统关联的不同 VPC、AWS 账户或 AWS 区域中的计算实例访问您的 FSx for Windows File Server 文件系统。为此,您可以使用 VPC 对等互连或中转网关。当您使用 VPC 对等连接或中转网关连接 VPC 时,一个 VPC 中的计算实例可以访问另一个 VPC 中的 Amazon FSx 文件系统。即使 VPC 属于不同的账户,即使 VPC 位于不同的 AWS 区域,也可以进行此访问。

上述文本的简短版本是您的 ECS 服务和 Amazon FSx Windows 文件服务器需要位于同一个 VPC 中,或者需要位于相互连接的 VPC 中(通过 VPC 对等互连或 Transit Gateway)。

于 2022-01-20T17:07:01.790 回答