{"id":19084420,"url":"https://github.com/cloudandthings/terraform-aws-s3-bucket-replication","last_synced_at":"2025-04-30T09:16:39.516Z","repository":{"id":166758335,"uuid":"610164849","full_name":"cloudandthings/terraform-aws-s3-bucket-replication","owner":"cloudandthings","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T07:41:02.000Z","size":72,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T09:16:38.191Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudandthings.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/contributing.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-06T08:17:33.000Z","updated_at":"2024-05-17T12:53:07.000Z","dependencies_parsed_at":"2024-11-09T02:51:26.936Z","dependency_job_id":"f9df007e-b424-4ff7-a75a-6065c90b24da","html_url":"https://github.com/cloudandthings/terraform-aws-s3-bucket-replication","commit_stats":null,"previous_names":["cloudandthings/terraform-aws-s3-bucket-replication"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudandthings%2Fterraform-aws-s3-bucket-replication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudandthings%2Fterraform-aws-s3-bucket-replication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudandthings%2Fterraform-aws-s3-bucket-replication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudandthings%2Fterraform-aws-s3-bucket-replication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudandthings","download_url":"https://codeload.github.com/cloudandthings/terraform-aws-s3-bucket-replication/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251674590,"owners_count":21625646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T02:51:16.460Z","updated_at":"2025-04-30T09:16:39.455Z","avatar_url":"https://github.com/cloudandthings.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-s3-bucket-replication\n\n## Description\n\nTerraform module for enabling S3 replication between two buckets.\n\nWill be used for *HashiTalks: Africa 2023*.\n\nFeatures:\n\n - Enable S3 replication between buckets\n - Allow cross-region replication\n - Allow cross-account replication\n - Multiple destinations are supported\n\n[AWS documentation](https://docs.aws.amazon.com...)\n\n----\n## Prerequisites\n\nYou will need to create 2 S3 buckets. The examples show possible ways to achieve this.\n\n----\n## Usage\n\nSee `examples` dropdown on Terraform Cloud, or [browse here](/examples/).\n\n----\n## Testing\n\nThis module is tested during development using [`pytest`](https://docs.pytest.org/en/7.2.x/) and [`tftest`](https://pypi.org/project/tftest/). See the `tests` folder for further details, and in particular the [testing readme](./tests/README.md).\n\n----\n## Notes\n\n*This repo was created from [terraform-aws-template](https://github.com/cloudandthings/terraform-aws-template)*\n\n\n----\n## Known issues\n\nThis project is currently unlicenced. Please contact the maintaining team to add a licence.\n\n----\n## Contributing\n\nDirect contributions are welcome.\n\nSee [`CONTRIBUTING.md`](./.github/CONTRIBUTING.md) for further information.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n----\n## Documentation\n\n----\n### Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_aws_iam_role_permissions_boundary\"\u003e\u003c/a\u003e [aws\\_iam\\_role\\_permissions\\_boundary](#input\\_aws\\_iam\\_role\\_permissions\\_boundary) | AWS IAM Role permissions boundary. | `string` | `null` | no |\n| \u003ca name=\"input_create_iam_resources\"\u003e\u003c/a\u003e [create\\_iam\\_resources](#input\\_create\\_iam\\_resources) | Whether to create IAM resources. | `bool` | `true` | no |\n| \u003ca name=\"input_name_for_created_iam_resources\"\u003e\u003c/a\u003e [name\\_for\\_created\\_iam\\_resources](#input\\_name\\_for\\_created\\_iam\\_resources) | Name for created IAM resources. | `string` | n/a | yes |\n| \u003ca name=\"input_replication_configuration\"\u003e\u003c/a\u003e [replication\\_configuration](#input\\_replication\\_configuration) | Replication configuration, in priority order. See the comments in `variables.tf` for usage. | \u003cpre\u003elist(object({\u003cbr\u003e\u003cbr\u003e    destination_bucket_name = string\u003cbr\u003e\u003cbr\u003e    # S3 bucket prefix to replicate.\u003cbr\u003e    prefix = string # coalesced to \"\"\u003cbr\u003e\u003cbr\u003e    # Destination S3 bucket KMS Key ARN if applicable.\u003cbr\u003e    destination_bucket_kms_key_arn = string\u003cbr\u003e\u003cbr\u003e    # Destination AWS Account ID. Only use for cross-account replication. When specified, replica object ownership will be set to this account.\u003cbr\u003e    destination_aws_account_id = string\u003cbr\u003e\u003cbr\u003e    # Destination S3 bucket region. If unspecified, then the provider region is used.\u003cbr\u003e    destination_bucket_region = string\u003cbr\u003e\u003cbr\u003e    # Whether delete markers are replicated.\u003cbr\u003e    enable_delete_marker_replication = bool # coalesced to true\u003cbr\u003e\u003cbr\u003e    # Whether to enable S3 Replication Time Control (S3 RTC) and Replication Metrics.\u003cbr\u003e    enable_replication_time_control_and_metrics = bool # coalesced to false\u003cbr\u003e    })\u003cbr\u003e  )\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_replication_role_arn\"\u003e\u003c/a\u003e [replication\\_role\\_arn](#input\\_replication\\_role\\_arn) | IAM Role ARN for replication role. | `string` | `null` | no |\n| \u003ca name=\"input_source_bucket_kms_key_arn\"\u003e\u003c/a\u003e [source\\_bucket\\_kms\\_key\\_arn](#input\\_source\\_bucket\\_kms\\_key\\_arn) | Source S3 bucket KMS Key ARN | `string` | `null` | no |\n| \u003ca name=\"input_source_bucket_name\"\u003e\u003c/a\u003e [source\\_bucket\\_name](#input\\_source\\_bucket\\_name) | Source S3 bucket name | `string` | n/a | yes |\n| \u003ca name=\"input_source_bucket_region\"\u003e\u003c/a\u003e [source\\_bucket\\_region](#input\\_source\\_bucket\\_region) | Source S3 bucket region. If unspecified, then the provider region is used. | `string` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Map of additional tags to assign to created resources. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | n/a | yes |\n\n----\n### Modules\n\nNo modules.\n\n----\n### Outputs\n\nNo outputs.\n\n----\n### Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | ~\u003e 5.0 |\n\n----\n### Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.15.5 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 5.0 |\n\n----\n### Resources\n\n| Name | Type |\n|------|------|\n| [aws_iam_policy.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |\n| [aws_iam_role.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_s3_bucket_replication_configuration.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_replication_configuration) | resource |\n| [aws_iam_policy_document.replication_role_assume_role_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.replication_role_policy_document](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n----\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudandthings%2Fterraform-aws-s3-bucket-replication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudandthings%2Fterraform-aws-s3-bucket-replication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudandthings%2Fterraform-aws-s3-bucket-replication/lists"}