EFS
Terraform module to create AWS EFS resources
Inputs
33
access_pointsoptionalmap(object({ name = optional(string) tags = optional(map(string), {}) posix_user…A map of access point definitions to create
{}attach_policyoptionalboolDetermines whether a policy is attached to the file system
trueavailability_zone_nameoptionalstringThe AWS Availability Zone in which to create the file system. Used to create a file system that uses One Zone storage classes
nullbypass_policy_lockout_safety_checkoptionalboolA flag to indicate whether to bypass the `aws_efs_file_system_policy` lockout safety check. Defaults to `false`
nullcreateoptionalboolDetermines whether resources will be created (affects all resources)
truecreate_backup_policyoptionalboolDetermines whether a backup policy is created
truecreate_replication_configurationoptionalboolDetermines whether a replication configuration is created
falsecreate_security_groupoptionalboolDetermines whether a security group is created
truecreation_tokenoptionalstringA unique name (a maximum of 64 characters are allowed) used as reference when creating the Elastic File System to ensure idempotent file system creation. By default generated by Terraform
nulldeny_nonsecure_transportoptionalboolDetermines whether `aws:SecureTransport` is required when connecting to elastic file system
truedeny_nonsecure_transport_via_mount_targetoptionalboolDetermines whether to use the common policy option for denying nonsecure transport which allows all AWS principals when accessed via EFS mounted target
trueenable_backup_policyoptionalboolDetermines whether a backup policy is `ENABLED` or `DISABLED`
trueencryptedoptionalboolIf `true`, the disk will be encrypted
truekms_key_arnoptionalstringThe ARN for the KMS encryption key. When specifying `kms_key_arn`, encrypted needs to be set to `true`
nulllifecycle_policyoptionalobject({ transition_to_ia = optional(string) transition_to_archive = optional(st…A file system [lifecycle policy](https://docs.aws.amazon.com/efs/latest/ug/API_LifecyclePolicy.html) object
{}mount_targetsoptionalmap(object({ ip_address = optional(string) ip_address_type = optional(string) ip…A map of mount target definitions to create
{}nameoptionalstringThe name of the file system
""override_policy_documentsoptionallist(string)List of IAM policy documents that are merged together into the exported document. In merging, statements with non-blank `sid`s will override statements with the same `sid`
[]performance_modeoptionalstringThe file system performance mode. Can be either `generalPurpose` or `maxIO`. Default is `generalPurpose`
nullpolicy_statementsoptionalmap(object({ sid = optional(string) actions = optional(list(string)) not_actions…A list of IAM policy [statements](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document#statement) for custom permission usage
nullprotectionoptionalobject({ replication_overwrite = optional(string) })A map of file protection configurations
nullprovisioned_throughput_in_mibpsoptionalnumberThe throughput, measured in MiB/s, that you want to provision for the file system. Only applicable with `throughput_mode` set to `provisioned`
nullregionoptionalstringRegion where this resource will be managed. Defaults to the Region set in the provider configuration
nullreplication_configuration_destinationoptionalobject({ availability_zone_name = optional(string) file_system_id = optional(str…A destination configuration block
nullsecurity_group_descriptionoptionalstringSecurity group description. Defaults to Managed by Terraform
nullsecurity_group_egress_rulesoptionalmap(object({ name = optional(string) cidr_ipv4 = optional(string) cidr_ipv6 = op…Map of security group egress rules to add to the security group created
{}security_group_ingress_rulesoptionalmap(object({ name = optional(string) cidr_ipv4 = optional(string) cidr_ipv6 = op…Map of security group ingress rules to add to the security group created
{}security_group_nameoptionalstringName to assign to the security group. If omitted, Terraform will assign a random, unique name
nullsecurity_group_use_name_prefixoptionalboolDetermines whether to use a name prefix for the security group. If `true`, the `security_group_name` value will be used as a prefix
falsesecurity_group_vpc_idoptionalstringThe VPC ID where the security group will be created
nullsource_policy_documentsoptionallist(string)List of IAM policy documents that are merged together into the exported document. Statements must have unique `sid`s
[]tagsoptionalmap(string)A map of tags to add to all resources
{}throughput_modeoptionalstringThroughput mode for the file system. Defaults to `bursting`. Valid values: `bursting`, `elastic`, and `provisioned`. When using `provisioned`, also set `provisioned_throughput_in_mibps`
nullAll 33 are optional — the module deploys with none of them set.
Outputs
9
access_pointsMap of access points created and their attributes
arnAmazon Resource Name of the file system
dns_nameThe DNS name for the filesystem per [documented convention](http://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html)
idThe ID that identifies the file system (e.g., `fs-ccfc0d65`)
mount_targetsMap of mount targets created and their attributes
replication_configuration_destination_file_system_idThe file system ID of the replica
security_group_arnARN of the security group
security_group_idID of the security group
size_in_bytesThe latest known metered size (in bytes) of data stored in the file system, the value is not the exact size that the file system was at any point in time
What the agent wires into the next module. An edge on the architecture diagram is one of these consumed by something else.