跳至內容

如何設定 Transfer Family 伺服器,以使用另一個 AWS 帳戶中的 Amazon EFS 檔案系統?

2 分的閱讀內容
0

我希望 AWS 帳戶中的 AWS Transfer Family 伺服器能夠存取另一個帳戶中的 Amazon Elastic File System (Amazon EFS) 檔案系統。我還想設定 Transfer Family 伺服器,以便跨帳戶存取 Amazon EFS 檔案系統。

解決方法

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

若要設定您的 Transfer Family 伺服器,請在帳戶 A 中建立一個可以存取帳戶 B 中檔案系統的 AWS Identity and Access Management (IAM) 角色。然後,建立一個在帳戶 A 中設定了 IAM 角色的 Transfer Family 伺服器使用者。確認帳戶 A 中的 Transfer Family 伺服器使用者是否可以存取帳戶 B 中的檔案系統。

**注意:**AWS Transfer Family 主控台只會顯示同一帳戶中的 Amazon EFS 檔案系統。若要將您的 Transfer Family 伺服器與另一個帳戶中的檔案系統一起使用,請使用 AWS CLI 或 AWS SDK。

在帳戶 A 中建立可存取檔案系統的 IAM 角色

為您的伺服器使用者建立 IAM 角色。對於角色的 IAM 政策,使用以下政策陳述式:

{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "RootFileSystemAccess",  
      "Effect": "Allow",  
      "Action": [  
        "elasticfilesystem:ClientRootAccess",  
        "elasticfilesystem:ClientMount",  
        "elasticfilesystem:ClientWrite"  
      ],  
      "Resource": "arn:aws:elasticfilesystem:region:accountB-id:file-system/file-system-id"  
    }  
  ]  
}

在檔案系統中為帳戶 B 新增一個政策,為帳戶 A 的 IAM 角色授予權限:

{  
  "Sid": "EFS-TransferFamily",  
  "Effect": "Allow",  
  "Principal": {  
    "AWS": "arn:aws:iam::AccounA-id:role/RoleName"  
  },  
  "Action": [  
    "elasticfilesystem:ClientRootAccess",  
    "elasticfilesystem:ClientWrite",  
    "elasticfilesystem:ClientMount"  
  ],  
  "Resource": "arn:aws:elasticfilesystem:region:accountB-id:file-system/file-system-id"  
}

在帳戶 A 中建立具有 IAM 角色的 Transfer Family 伺服器使用者

執行以下 create-user AWS CLI 命令,以建立 Transfer Family 使用者:

aws transfer create-user --user-name "sftp" --server-id "SERVER-ID" --role "arn:aws:iam::accountA-id:role/RoleName" --home-directory "/file-system-id/username"

該命令會傳回伺服器 ID 和使用者名稱。

輸出範例:

{  
  "ServerId":  "MY_SERVER_ID",  
  "UserName":  "MY_SERVER_USER_NAME"  
}

確認戶 A 中的 Transfer Family 伺服器使用者可以存取帳戶 B 中的檔案系統

請完成下列步驟:

  1. 以您建立的使用者身分連線至您的伺服器。您可以執行以下 sftp OpenSSH 命令來連線:

    sftp -i myserveruser MY_SERVER_USER_NAME@MY_SERVER_ID.server.transfer.us-east-1.amazonaws.com
  2. 列出儲存貯體的主目錄。如果您使用 OpenSSH,請執行 ls 命令:

    ls

如果命令傳回主目錄,則您的伺服器使用者可以跨帳戶存取 Amazon EFS 檔案系統。

相關資訊

建立啟用 SFTP 的伺服器

建立檔案系統政策

如何設定我的 AWS Transfer Family 伺服器,以使用位於另一個 AWS 帳戶中的 Amazon S3 儲存貯體?

為 Transfer Family 設定跨帳戶存取權

AWS 官方已更新 9 個月前