Невозможно разобрать сопоставление: проблема с созданием sftp-сервера Aws с использованием логического каталога, поддерживаемого s3 с настраиваемой HTTP-аутентификацией имени пользователя и пароля.

Мне удалось создать sftp-сервер по этой ссылке https://www.intelligentdiscovery.io/blogs/aws-sftp-custom-identity-provider-v2.

Однако я использовал http-backend API вместо Azure-AD для аутентификации пользователей.

Все работает нормально при использовании aws по умолчанию DirectoryType=PATH. Но изменив его на Logicalвведите вместе с добавлением HomeDirectoryDetailsи удаление любых конфликтующих переменных, которые я получаю

Невозможно разобрать сопоставление -> /bucket-name/home/user

Пример лямбда-ответа:

      {
    "Role": "arn:aws:iam::179651610164:role/S3-Ftps-Bucket-Role",
    "HomeDirectoryType": "LOGICAL",
    "HomeDirectoryDetails": "[{\"Entry:\":\"/\",\"Target\":\"/bucket-name/home/user_a\"}]",
    "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"allowFolderList\",\"Action\":[\"s3:ListBucket\"],\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:s3:::bucket-name/\"],\"Condition\":{\"StringLike\":{\"s3:prefix\":[\"home/*\"]}}},{\"Sid\":\"allowListBuckets\",\"Effect\":\"Allow\",\"Action\":[\"s3:ListAllMyBuckets\",\"s3:GetBucketLocation\"],\"Resource\":\"*\"},{\"Sid\":\"HomeDirectoryAccess\",\"Effect\":\"Allow\",\"Action\":[\"s3:PutObject\",\"s3:GetObject\",\"s3:DeleteObjectVersion\",\"s3:DeleteObject\",\"s3:GetObjectVersion\"],\"Resource\":[\"arn:aws:s3:::bucket-name/home/*\"]},{\"Sid\":\"DenyDeletionOfHomeDirectory\",\"Effect\":\"Deny\",\"Action\":[\"s3:DeleteObjectVersion\",\"s3:DeleteObject\"],\"Resource\":[\"arn:aws:s3:::bucket-name/home/\"]}]}"
}

Схема модели отклика для лямбда-функции приведена ниже.

      {
    "$schema":"http://json-schema.org/draft-04/schema#",
    "title":"UserUserConfig",
    "type":"object",
    "properties":{"Role":{"type":"string"},"Policy":{"type":"string"},
    "HomeDirectory":{"type":"string"},
    "HomeDirectoryDetails": {"type":"string"},
    "HomeDirectoryType": {"type": "string"},
    "PublicKeys":{"type":"array","items":{"type":"string"}}}
}

Я пробовал все виды сопоставления, например, как показано ниже, как на сервере семейства переносов, так и в FileZilla. И все они дают одну и ту же ошибку: Невозможно разобрать сопоставление. Однако код состояния 200.

       1. / -> /bucket-name 
 2. / -> /bucket-name/home
 3. / -> /bucket-name/home/
 4. / -> /home
 5. /userA -> /bucket-name/home/userA/

Тестирование из FileZilla дает ошибку:

      Status: Connecting to s-xxxxxxxx.server.transfer.us-east-1.amazonaws.com...
Status: Using username "xxxx". 
Status: Access denied 
Error:  Authentication failed.
Error:  Critical error: Could not connect to server

Тестирование на ошибке сервера Transfer-Family:

      {
"Response": "{}",
"StatusCode": 200,
"Message": "[Unable to parse mapping  -> /bucket-name/home/xxxx]",
"Url": "https://xxxxxx.execute-api.us-east-1.amazonaws.com/prod/servers/s-xxxxxx/users/user/config"
}

0 ответов

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