String certificate
The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. Required when
Protocols
is set to FTPS
.
To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide.
To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide.
To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide.
Certificates with the following cryptographic algorithms and key sizes are supported:
2048-bit RSA (RSA_2048)
4096-bit RSA (RSA_4096)
Elliptic Prime Curve 256 bit (EC_prime256v1)
Elliptic Prime Curve 384 bit (EC_secp384r1)
Elliptic Prime Curve 521 bit (EC_secp521r1)
The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
EndpointDetails endpointDetails
The virtual private cloud (VPC) endpoint settings that are configured for your file transfer protocol-enabled server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IPs and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.
String endpointType
The type of VPC endpoint that you want your file transfer protocol-enabled server to connect to. You can choose to connect to the public internet or a VPC endpoint. With a VPC endpoint, you can restrict access to your server and resources only within your VPC.
It is recommended that you use VPC
as the EndpointType
. With this endpoint type, you
have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's
endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible
with EndpointType
set to VPC_ENDPOINT
.
String hostKey
The RSA private key as generated by the ssh-keygen -N "" -m PEM -f my-new-server-key
command.
If you aren't planning to migrate existing users from an existing SFTP-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.
For more information, see Change the host key for your SFTP-enabled server in the AWS Transfer Family User Guide.
IdentityProviderDetails identityProviderDetails
Required when IdentityProviderType
is set to API_GATEWAY
. Accepts an array containing
all of the information required to call a customer-supplied authentication API, including the API Gateway URL.
Not required when IdentityProviderType
is set to SERVICE_MANAGED
.
String identityProviderType
Specifies the mode of authentication for a file transfer protocol-enabled server. The default value is
SERVICE_MANAGED
, which allows you to store and access user credentials within the AWS Transfer
Family service. Use the API_GATEWAY
value to integrate with an identity provider of your choosing.
The API_GATEWAY
setting requires you to provide an API Gateway endpoint URL to call for
authentication using the IdentityProviderDetails
parameter.
String loggingRole
Allows the service to write your users' activity to your Amazon CloudWatch logs for monitoring and auditing purposes.
List<E> protocols
Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:
SFTP
(Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
FTPS
(File Transfer Protocol Secure): File transfer with TLS encryption
FTP
(File Transfer Protocol): Unencrypted file transfer
If you select FTPS
, you must choose a certificate stored in AWS Certificate Manager (ACM) which will
be used to identify your file transfer protocol-enabled server when clients connect to it over FTPS.
If Protocol
includes either FTP
or FTPS
, then the
EndpointType
must be VPC
and the IdentityProviderType
must be
API_GATEWAY
.
If Protocol
includes FTP
, then AddressAllocationIds
cannot be associated.
If Protocol
is set only to SFTP
, the EndpointType
can be set to
PUBLIC
and the IdentityProviderType
can be set to SERVICE_MANAGED
.
String securityPolicyName
Specifies the name of the security policy that is attached to the server.
List<E> tags
Key-value pairs that can be used to group and search for file transfer protocol-enabled servers.
String serverId
The service-assigned ID of the file transfer protocol-enabled server that is created.
String homeDirectory
The landing directory (folder) for a user when they log in to the file transfer protocol-enabled server using the client.
An example is your-Amazon-S3-bucket-name>/home/username
.
String homeDirectoryType
The type of landing directory (folder) you want your users' home directory to be when they log into the file
transfer protocol-enabled server. If you set it to PATH
, the user will see the absolute Amazon S3
bucket paths as is in their file transfer protocol clients. If you set it LOGICAL
, you will need to
provide mappings in the HomeDirectoryMappings
for how you want to make Amazon S3 paths visible to
your users.
List<E> homeDirectoryMappings
Logical directory mappings that specify what Amazon S3 paths and keys should be visible to your user and how you
want to make them visible. You will need to specify the "Entry
" and "Target
" pair,
where Entry
shows how the path is made visible and Target
is the actual Amazon S3 path.
If you only specify a target, it will be displayed as is. You will need to also make sure that your IAM role
provides access to paths in Target
. The following is an example.
'[ "/bucket2/documentation", { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]'
In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated
home directory ("chroot"). To do this, you can set Entry
to '/' and set Target
to the
HomeDirectory parameter value.
If the target of a logical directory entry does not exist in Amazon S3, the entry will be ignored. As a
workaround, you can use the Amazon S3 API to create 0 byte objects as place holders for your directory. If using
the CLI, use the s3api
call instead of s3
so you can use the put-object operation. For
example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/
. Make
sure that the end of the key name ends in a '/' for it to be considered a folder.
String policy
A scope-down policy for your user so you can use the same IAM role across multiple users. This policy scopes down
user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include
${Transfer:UserName}
, ${Transfer:HomeDirectory}
, and
${Transfer:HomeBucket}
.
For scope-down policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource
Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy
argument.
For an example of a scope-down policy, see Creating a scope-down policy.
For more information, see AssumeRole in the AWS Security Token Service API Reference.
String role
The IAM role that controls your users' access to your Amazon S3 bucket. The policies attached to this role will determine the level of access you want to provide your users when transferring files into and out of your Amazon S3 bucket or buckets. The IAM role should also contain a trust relationship that allows the file transfer protocol-enabled server to access your resources when servicing your users' transfer requests.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server instance. This is the specific server that you added your user to.
String sshPublicKeyBody
The public portion of the Secure Shell (SSH) key used to authenticate the user to the file transfer protocol-enabled server.
List<E> tags
Key-value pairs that can be used to group and search for users. Tags are metadata attached to users for any purpose.
String userName
A unique string that identifies a user and is associated with a file transfer protocol-enabled server as
specified by the ServerId
. This user name must be a minimum of 3 and a maximum of 100 characters
long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'.
The user name can't start with a hyphen, period, and at sign.
String serverId
A unique system-assigned identifier for a file transfer protocol-enabled server instance.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server instance that has the user assigned to it.
String sshPublicKeyId
A unique identifier used to reference your user's specific SSH key.
String userName
A unique string that identifies a user whose public key is being deleted.
Boolean fips
Specifies whether this policy enables Federal Information Processing Standards (FIPS).
String securityPolicyName
Specifies the name of the security policy that is attached to the server.
List<E> sshCiphers
Specifies the enabled Secure Shell (SSH) cipher encryption algorithms in the security policy that is attached to the server.
List<E> sshKexs
Specifies the enabled SSH key exchange (KEX) encryption algorithms in the security policy that is attached to the server.
List<E> sshMacs
Specifies the enabled SSH message authentication code (MAC) encryption algorithms in the security policy that is attached to the server.
List<E> tlsCiphers
Specifies the enabled Transport Layer Security (TLS) cipher encryption algorithms in the security policy that is attached to the server.
String arn
Specifies the unique Amazon Resource Name (ARN) of the file transfer protocol-enabled server.
String certificate
Specifies the ARN of the AWS Certificate Manager (ACM) certificate. Required when Protocols
is set
to FTPS
.
EndpointDetails endpointDetails
Specifies the virtual private cloud (VPC) endpoint settings that you configured for your file transfer protocol-enabled server.
String endpointType
Defines the type of endpoint that your file transfer protocol-enabled server is connected to. If your server is connected to a VPC endpoint, your server isn't accessible over the public internet.
String hostKeyFingerprint
Specifies the Base64-encoded SHA256 fingerprint of the server's host key. This value is equivalent to the output
of the ssh-keygen -l -f my-new-server-key
command.
IdentityProviderDetails identityProviderDetails
Specifies information to call a customer-supplied authentication API. This field is not populated when the
IdentityProviderType
of a file transfer protocol-enabled server is SERVICE_MANAGED
.
String identityProviderType
Specifies the mode of authentication method enabled for this service. A value of SERVICE_MANAGED
means that you are using this file transfer protocol-enabled server to store and access user credentials within
the service. A value of API_GATEWAY
indicates that you have integrated an API Gateway endpoint that
will be invoked for authenticating your user into the service.
String loggingRole
Specifies the AWS Identity and Access Management (IAM) role that allows a file transfer protocol-enabled server to turn on Amazon CloudWatch logging for Amazon S3 events. When set, user activity can be viewed in your CloudWatch logs.
List<E> protocols
Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:
SFTP
(Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
FTPS
(File Transfer Protocol Secure): File transfer with TLS encryption
FTP
(File Transfer Protocol): Unencrypted file transfer
String securityPolicyName
Specifies the name of the security policy that is attached to the server.
String serverId
Specifies the unique system-assigned identifier for a file transfer protocol-enabled server that you instantiate.
String state
Specifies the condition of a file transfer protocol-enabled server for the server that was described. A value of
ONLINE
indicates that the server can accept jobs and transfer files. A State
value of
OFFLINE
means that the server cannot perform file transfer operations.
The states of STARTING
and STOPPING
indicate that the server is in an intermediate
state, either not fully able to respond, or not fully offline. The values of START_FAILED
or
STOP_FAILED
can indicate an error condition.
List<E> tags
Specifies the key-value pairs that you can use to search for and group file transfer protocol-enabled servers that were assigned to the server that was described.
Integer userCount
Specifies the number of users that are assigned to a file transfer protocol-enabled server you specified with the
ServerId
.
String arn
Specifies the unique Amazon Resource Name (ARN) for the user that was requested to be described.
String homeDirectory
Specifies the landing directory (or folder), which is the location that files are written to or read from in an
Amazon S3 bucket, for the described user. An example is
your-Amazon-S3-bucket-name>/home/username
.
List<E> homeDirectoryMappings
Specifies the logical directory mappings that specify what Amazon S3 paths and keys should be visible to your
user and how you want to make them visible. You will need to specify the "Entry
" and "
Target
" pair, where Entry
shows how the path is made visible and Target
is
the actual Amazon S3 path. If you only specify a target, it will be displayed as is. You will need to also make
sure that your AWS Identity and Access Management (IAM) role provides access to paths in Target
.
In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated
home directory ("chroot"). To do this, you can set Entry
to '/' and set Target
to the
HomeDirectory parameter value.
String homeDirectoryType
Specifies the type of landing directory (folder) you mapped for your users to see when they log into the file
transfer protocol-enabled server. If you set it to PATH
, the user will see the absolute Amazon S3
bucket paths as is in their file transfer protocol clients. If you set it LOGICAL
, you will need to
provide mappings in the HomeDirectoryMappings
for how you want to make Amazon S3 paths visible to
your users.
String policy
Specifies the name of the policy in use for the described user.
String role
Specifies the IAM role that controls your users' access to your Amazon S3 bucket. The policies attached to this role will determine the level of access you want to provide your users when transferring files into and out of your Amazon S3 bucket or buckets. The IAM role should also contain a trust relationship that allows a file transfer protocol-enabled server to access your resources when servicing your users' transfer requests.
List<E> sshPublicKeys
Specifies the public key portion of the Secure Shell (SSH) keys stored for the described user.
List<E> tags
Specifies the key-value pairs for the user requested. Tag can be used to search for and group users for a variety of purposes.
String userName
Specifies the name of the user that was requested to be described. User names are used for authentication purposes. This is the string that will be used by your user when they log in to your file transfer protocol-enabled server.
String securityPolicyName
Specifies the name of the security policy that is attached to the server.
DescribedSecurityPolicy securityPolicy
An array containing the properties of the security policy.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server.
DescribedServer server
An array containing the properties of a file transfer protocol-enabled server with the ServerID
you
specified.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that has this user assigned.
String userName
The name of the user assigned to one or more file transfer protocol-enabled servers. User names are part of the sign-in credentials to use the AWS Transfer Family service and perform file transfer tasks.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that has this user assigned.
DescribedUser user
An array containing the properties of the user account for the ServerID
value that you specified.
List<E> addressAllocationIds
A list of address allocation IDs that are required to attach an Elastic IP address to your file transfer
protocol-enabled server's endpoint. This is only valid in the UpdateServer
API.
This property can only be use when EndpointType
is set to VPC
.
List<E> subnetIds
A list of subnet IDs that are required to host your file transfer protocol-enabled server endpoint in your VPC.
This property can only be used when EndpointType
is set to VPC
.
String vpcEndpointId
The ID of the VPC endpoint.
This property can only be used when EndpointType
is set to VPC_ENDPOINT
.
String vpcId
The VPC ID of the VPC in which a file transfer protocol-enabled server's endpoint will be hosted.
This property can only be used when EndpointType
is set to VPC
.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server.
String sshPublicKeyBody
The public key portion of an SSH key pair.
String userName
The name of the user account that is assigned to one or more file transfer protocol-enabled servers.
String arn
Specifies the unique Amazon Resource Name (ARN) for a file transfer protocol-enabled server to be listed.
String identityProviderType
Specifies the authentication method used to validate a user for a file transfer protocol-enabled server that was
specified. This can include Secure Shell (SSH), user name and password combinations, or your own custom
authentication method. Valid values include SERVICE_MANAGED
or API_GATEWAY
.
String endpointType
Specifies the type of VPC endpoint that your file transfer protocol-enabled server is connected to. If your server is connected to a VPC endpoint, your server isn't accessible over the public internet.
String loggingRole
Specifies the AWS Identity and Access Management (IAM) role that allows a file transfer protocol-enabled server to turn on Amazon CloudWatch logging.
String serverId
Specifies the unique system assigned identifier for a file transfer protocol-enabled servers that were listed.
String state
Specifies the condition of a file transfer protocol-enabled server for the server that was described. A value of
ONLINE
indicates that the server can accept jobs and transfer files. A State
value of
OFFLINE
means that the server cannot perform file transfer operations.
The states of STARTING
and STOPPING
indicate that the server is in an intermediate
state, either not fully able to respond, or not fully offline. The values of START_FAILED
or
STOP_FAILED
can indicate an error condition.
Integer userCount
Specifies the number of users that are assigned to a file transfer protocol-enabled server you specified with the
ServerId
.
String arn
Provides the unique Amazon Resource Name (ARN) for the user that you want to learn about.
String homeDirectory
Specifies the location that files are written to or read from an Amazon S3 bucket for the user you specify by their ARN.
String homeDirectoryType
Specifies the type of landing directory (folder) you mapped for your users' home directory. If you set it to
PATH
, the user will see the absolute Amazon S3 bucket paths as is in their file transfer protocol
clients. If you set it LOGICAL
, you will need to provide mappings in the
HomeDirectoryMappings
for how you want to make Amazon S3 paths visible to your users.
String role
Specifies the role that is in use by this user. A role is an AWS Identity and Access Management (IAM) entity that, in this case, allows a file transfer protocol-enabled server to act on a user's behalf. It allows the server to inherit the trust relationship that enables that user to perform file operations to their Amazon S3 bucket.
Integer sshPublicKeyCount
Specifies the number of SSH public keys stored for the user you specified.
String userName
Specifies the name of the user whose ARN was specified. User names are used for authentication purposes.
Integer maxResults
Specifies the number of security policies to return as a response to the ListSecurityPolicies
query.
String nextToken
When additional results are obtained from the ListSecurityPolicies
command, a NextToken
parameter is returned in the output. You can then pass the NextToken
parameter in a subsequent
command to continue listing additional security policies.
String nextToken
When you can get additional results from the ListSecurityPolicies
operation, a
NextToken
parameter is returned in the output. In a following command, you can pass in the
NextToken
parameter to continue listing security policies.
List<E> securityPolicyNames
An array of security policies that were listed.
Integer maxResults
Specifies the number of file transfer protocol-enabled servers to return as a response to the
ListServers
query.
String nextToken
When additional results are obtained from the ListServers
command, a NextToken
parameter is returned in the output. You can then pass the NextToken
parameter in a subsequent
command to continue listing additional file transfer protocol-enabled servers.
String nextToken
When you can get additional results from the ListServers
operation, a NextToken
parameter is returned in the output. In a following command, you can pass in the NextToken
parameter
to continue listing additional file transfer protocol-enabled servers.
List<E> servers
An array of file transfer protocol-enabled servers that were listed.
String arn
Requests the tags associated with a particular Amazon Resource Name (ARN). An ARN is an identifier for a specific AWS resource, such as a server, user, or role.
Integer maxResults
Specifies the number of tags to return as a response to the ListTagsForResource
request.
String nextToken
When you request additional results from the ListTagsForResource
operation, a NextToken
parameter is returned in the input. You can then pass in a subsequent command to the NextToken
parameter to continue listing additional tags.
String arn
The ARN you specified to list the tags of.
String nextToken
When you can get additional results from the ListTagsForResource
call, a NextToken
parameter is returned in the output. You can then pass in a subsequent command to the NextToken
parameter to continue listing additional tags.
List<E> tags
Key-value pairs that are assigned to a resource, usually for the purpose of grouping and searching for items. Tags are metadata that you define.
Integer maxResults
Specifies the number of users to return as a response to the ListUsers
request.
String nextToken
When you can get additional results from the ListUsers
call, a NextToken
parameter is
returned in the output. You can then pass in a subsequent command to the NextToken
parameter to
continue listing additional users.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that has users assigned to it.
String nextToken
When you can get additional results from the ListUsers
call, a NextToken
parameter is
returned in the output. You can then pass in a subsequent command to the NextToken
parameter to
continue listing additional users.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that the users are assigned to.
List<E> users
Returns the user accounts and their properties for the ServerId
value that you specify.
Date dateImported
Specifies the date that the public key was added to the user account.
String sshPublicKeyBody
Specifies the content of the SSH public key as specified by the PublicKeyId
.
String sshPublicKeyId
Specifies the SshPublicKeyId
parameter contains the identifier of the public key.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that you start.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that you stopped.
String serverId
A system-assigned identifier for a specific file transfer protocol-enabled server. That server's user authentication method is tested with a user name and password.
String serverProtocol
The type of file transfer protocol to be tested.
The available protocols are:
Secure Shell (SSH) File Transfer Protocol (SFTP)
File Transfer Protocol Secure (FTPS)
File Transfer Protocol (FTP)
String sourceIp
The source IP address of the user account to be tested.
String userName
The name of the user account to be tested.
String userPassword
The password of the user account to be tested.
String response
The response that is returned from your API Gateway.
Integer statusCode
The HTTP status code that is the response from your API Gateway.
String message
A message that indicates whether the test was successful or not.
String url
The endpoint of the service used to authenticate a user.
String retryAfterSeconds
String arn
The value of the resource that will have the tag removed. An Amazon Resource Name (ARN) is an identifier for a specific AWS resource, such as a server, user, or role.
List<E> tagKeys
TagKeys are key-value pairs assigned to ARNs that can be used to group and search for resources by type. This metadata can be attached to resources for any purpose.
String certificate
The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. Required when
Protocols
is set to FTPS
.
To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide.
To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide.
To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide.
Certificates with the following cryptographic algorithms and key sizes are supported:
2048-bit RSA (RSA_2048)
4096-bit RSA (RSA_4096)
Elliptic Prime Curve 256 bit (EC_prime256v1)
Elliptic Prime Curve 384 bit (EC_secp384r1)
Elliptic Prime Curve 521 bit (EC_secp521r1)
The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
EndpointDetails endpointDetails
The virtual private cloud (VPC) endpoint settings that are configured for your file transfer protocol-enabled server. With a VPC endpoint, you can restrict access to your server to resources only within your VPC. To control incoming internet traffic, you will need to associate one or more Elastic IP addresses with your server's endpoint.
String endpointType
The type of endpoint that you want your file transfer protocol-enabled server to connect to. You can choose to connect to the public internet or a VPC endpoint. With a VPC endpoint, you can restrict access to your server and resources only within your VPC.
It is recommended that you use VPC
as the EndpointType
. With this endpoint type, you
have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's
endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible
with EndpointType
set to VPC_ENDPOINT
.
String hostKey
The RSA private key as generated by ssh-keygen -N "" -m PEM -f my-new-server-key
.
If you aren't planning to migrate existing users from an existing file transfer protocol-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.
For more information, see Change the host key for your SFTP-enabled server in the AWS Transfer Family User Guide.
IdentityProviderDetails identityProviderDetails
An array containing all of the information required to call a customer's authentication API method.
String loggingRole
Changes the AWS Identity and Access Management (IAM) role that allows Amazon S3 events to be logged in Amazon CloudWatch, turning logging on or off.
List<E> protocols
Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:
Secure Shell (SSH) File Transfer Protocol (SFTP): File transfer over SSH
File Transfer Protocol Secure (FTPS): File transfer with TLS encryption
File Transfer Protocol (FTP): Unencrypted file transfer
If you select FTPS
, you must choose a certificate stored in AWS Certificate Manager (ACM) which will
be used to identify your server when clients connect to it over FTPS.
If Protocol
includes either FTP
or FTPS
, then the
EndpointType
must be VPC
and the IdentityProviderType
must be
API_GATEWAY
.
If Protocol
includes FTP
, then AddressAllocationIds
cannot be associated.
If Protocol
is set only to SFTP
, the EndpointType
can be set to
PUBLIC
and the IdentityProviderType
can be set to SERVICE_MANAGED
.
String securityPolicyName
Specifies the name of the security policy that is attached to the server.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server instance that the user account is assigned to.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server that the user account is assigned to.
String homeDirectory
Specifies the landing directory (folder) for a user when they log in to the file transfer protocol-enabled server using their file transfer protocol client.
An example is your-Amazon-S3-bucket-name>/home/username
.
String homeDirectoryType
The type of landing directory (folder) you want your users' home directory to be when they log into the file
transfer protocol-enabled server. If you set it to PATH
, the user will see the absolute Amazon S3
bucket paths as is in their file transfer protocol clients. If you set it LOGICAL
, you will need to
provide mappings in the HomeDirectoryMappings
for how you want to make Amazon S3 paths visible to
your users.
List<E> homeDirectoryMappings
Logical directory mappings that specify what Amazon S3 paths and keys should be visible to your user and how you
want to make them visible. You will need to specify the "Entry
" and "Target
" pair,
where Entry
shows how the path is made visible and Target
is the actual Amazon S3 path.
If you only specify a target, it will be displayed as is. You will need to also make sure that your IAM role
provides access to paths in Target
. The following is an example.
'[ "/bucket2/documentation", { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf" } ]'
In most cases, you can use this value instead of the scope-down policy to lock your user down to the designated
home directory ("chroot"). To do this, you can set Entry
to '/' and set Target
to the
HomeDirectory parameter value.
If the target of a logical directory entry does not exist in Amazon S3, the entry will be ignored. As a
workaround, you can use the Amazon S3 API to create 0 byte objects as place holders for your directory. If using
the CLI, use the s3api
call instead of s3
so you can use the put-object operation. For
example, you use the following: aws s3api put-object --bucket bucketname --key path/to/folder/
. Make
sure that the end of the key name ends in a / for it to be considered a folder.
String policy
Allows you to supply a scope-down policy for your user so you can use the same IAM role across multiple users.
The policy scopes down user access to portions of your Amazon S3 bucket. Variables you can use inside this policy
include ${Transfer:UserName}
, ${Transfer:HomeDirectory}
, and
${Transfer:HomeBucket}
.
For scope-down policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource
Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy
argument.
For an example of a scope-down policy, see Creating a scope-down policy.
For more information, see AssumeRole in the AWS Security Token Service API Reference.
String role
The IAM role that controls your users' access to your Amazon S3 bucket. The policies attached to this role will determine the level of access you want to provide your users when transferring files into and out of your Amazon S3 bucket or buckets. The IAM role should also contain a trust relationship that allows the file transfer protocol-enabled server to access your resources when servicing your users' transfer requests.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server instance that the user account is assigned to.
String userName
A unique string that identifies a user and is associated with a file transfer protocol-enabled server as
specified by the ServerId
. This user name must be a minimum of 3 and a maximum of 100 characters
long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'.
The user name can't start with a hyphen, period, and at sign.
String serverId
A system-assigned unique identifier for a file transfer protocol-enabled server instance that the user account is assigned to.
String userName
The unique identifier for a user that is assigned to a file transfer protocol-enabled server instance that was specified in the request.
Copyright © 2020. All rights reserved.