Module Terraform qui crée un seau S3 sur AWS avec toutes les fonctionnalités (ou presque toutes) fournies par le fournisseur Terraform AWS.
Ces caractéristiques des configurations de seaux S3 sont prises en charge:
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket "
acl = " private "
control_object_ownership = true
object_ownership = " ObjectWriter "
versioning = {
enabled = true
}
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true
}
module "s3_bucket_for_logs" {
source = " terraform-aws-modules/s3-bucket/aws "
bucket = " my-s3-bucket-for-logs "
acl = " log-delivery-write "
# Allow deletion of non-empty bucket
force_destroy = true
control_object_ownership = true
object_ownership = " ObjectWriter "
attach_elb_log_delivery_policy = true # Required for ALB logs
attach_lb_log_delivery_policy = true # Required for ALB/NLB logs
}
Parfois, vous devez avoir un moyen de créer des ressources S3 conditionnellement, mais Terraform ne permet pas d'utiliser count
dans le bloc module
, donc la solution consiste à spécifier l'argument create_bucket
.
# This S3 bucket will not be created
module "s3_bucket" {
source = " terraform-aws-modules/s3-bucket/aws "
create_bucket = false
# ... omitted
}
variable "..." { type = any }
Il y a un bogue n ° 1211 dans Terragrunt lié à la façon dont les variables de any
sont transmises à Terraform.
Ce module résout ce problème en prenant en charge jsonencode()
-String en plus du type attendu ( list
ou map
).
Dans terragrunt.hcl
vous pouvez écrire:
inputs = {
bucket = " foobar " # `bucket` has type `string`, no need to jsonencode()
cors_rule = jsonencode ([ ... ]) # `cors_rule` has type `any`, so `jsonencode()` is required
}
Les utilisateurs de ce module Terraform peuvent créer plusieurs ressources similaires en utilisant for_each
méta-argument pour le bloc module
pour Terraform 0.13.
Les utilisateurs de Terragrunt peuvent obtenir des résultats similaires en utilisant des modules fournis dans le répertoire Wrappers, s'ils préfèrent réduire la quantité de fichiers de configuration.
Nom | Version |
---|---|
terraform | > = 1.0 |
AWS | > = 5,70 |
Nom | Version |
---|---|
AWS | > = 5,70 |
Pas de modules.
Nom | Taper |
---|---|
aws_s3_bucket. | ressource |
aws_s3_bucket_accelerate_configuration. | ressource |
aws_s3_bucket_acl. | ressource |
aws_s3_bucket_analytics_configuration. | ressource |
AWS_S3_Bucket_Cors_Configuration.Ce | ressource |
aws_s3_bucket_intelligent_tiering_configuration. | ressource |
aws_s3_bucket_inventory. | ressource |
aws_s3_bucket_lifecycle_configuration.t | ressource |
aws_s3_bucket_logging.tout | ressource |
aws_s3_bucket_metric.t | ressource |
aws_s3_bucket_object_lock_configuration. | ressource |
aws_s3_bucket_ownership_controls. | ressource |
aws_s3_bucket_policy.Ce | ressource |
aws_s3_bucket_public_access_block. | ressource |
aws_s3_bucket_replication_configuration.Ce | ressource |
aws_s3_bucket_request_payment_configuration. | ressource |
aws_s3_bucket_server_side_encryption_configuration. | ressource |
aws_s3_bucket_versioning. | ressource |
aws_s3_bucket_website_configuration. | ressource |
aws_caller_identity.current | source de données |
aws_canonical_user_id. | source de données |
aws_iam_policy_document.access_log_delivery | source de données |
aws_iam_policy_document.combin | source de données |
aws_iam_policy_document.deny_incorrect_encryption_headers | source de données |
aws_iam_policy_document.deny_incorrect_kms_key_sse | source de données |
aws_iam_policy_document.deny_insecure_transport | source de données |
aws_iam_policy_document.deny_unencrypted_object_uploads | source de données |
aws_iam_policy_document.elb_log_delivery | source de données |
aws_iam_policy_document.inventory_and_analytics_destination_policy | source de données |
aws_iam_policy_document.lb_log_delivery | source de données |
aws_iam_policy_document.require_latest_tls | source de données |
aws_partition.current | source de données |
aws_region.current | source de données |
Nom | Description | Taper | Défaut | Requis |
---|---|---|---|---|
accélération_status | (Facultatif) Définit la configuration d'accélération d'un seau existant. Peut être activé ou suspendu. | string | null | Non |
access_log_delivery_policy_source_accouts | (Facultatif) La liste des ID de compte AWS devrait être autorisée à fournir des journaux d'accès à ce seau. | list(string) | [] | Non |
Access_log_delivery_policy_source_buckets | (Facultatif) Liste des ARN de godet S3 qui devraient être autorisés à fournir des journaux d'accès à ce seau. | list(string) | [] | Non |
ACL | (Facultatif) L'ACL en conserve à appliquer. Conflit avec grant | string | null | Non |
autorisé_kms_key_arn | La clé ARN de KMS qui devrait être autorisée dans putObject | string | null | Non |
Analytics_configuration | Configuration de l'analyse du seau de carte. | any | {} | Non |
analytics_self_source_destination | Que le godet source analytique soit également le seau de destination. | bool | false | Non |
analytics_source_account_id | L'ID du compte source Analytics. | string | null | Non |
analytique_source_bucket_arn | La source d'analyse Bucket Arn. | string | null | Non |
attach_access_log_delivery_policy | Contrôles Si le seau S3 doit avoir une politique de livraison de journaux d'accès S3 jointe | bool | false | Non |
attach_analytics_destination_policy | Contrôles Si S3 Bucket doit avoir une politique de destination d'analyse de seau. | bool | false | Non |
attach_deny_incorrect_encryption_headers | COMMANDES Si le seau S3 doit refuser la politique de têtes de chiffrement incorrecte attachée. | bool | false | Non |
attach_deny_incorrect_kms_key_sse | Contrôles Si la politique S3 Bucket doit refuser l'utilisation de KMS Key Key SSE incorrecte. | bool | false | Non |
attach_deny_insecure_transport_policy | Contrôles Si le seau S3 devrait avoir refusé la politique de transport non SSL attachée | bool | false | Non |
attach_deny_unencrypted_object_uploads | Contrôles Si S3 Bucket doit refuser la stratégie de téléchargement d'objets non cryptée. | bool | false | Non |
attach_elb_log_delivery_policy | Contrôles Si le seau S3 doit avoir une politique de livraison de journaux ELB attachée | bool | false | Non |
attach_inventory_destination_policy | Contrôles Si le seau S3 doit avoir une politique de destination d'inventaire du seau. | bool | false | Non |
attach_lb_log_delivery_policy | Contrôles Si le seau S3 doit avoir une politique de livraison de journaux ALB / NLB attachée | bool | false | Non |
attach_policy | Contrôles Si S3 Bucket doit avoir une stratégie de seau attachée (définie sur true pour utiliser la valeur de policy comme politique de seau) | bool | false | Non |
attach_public_policy | Contrôles Si une stratégie publique définie par l'utilisateur sera jointe (réglé sur false pour permettre à l'amont pour appliquer les défauts par défaut au seau) | bool | true | Non |
attach_require_latest_tls_policy | Contrôles Si le seau S3 doit nécessiter la dernière version de TLS | bool | false | Non |
block_public_acls | Si Amazon S3 devrait bloquer les ACL publics pour ce seau. | bool | true | Non |
block_public_policy | Si Amazon S3 devrait bloquer les politiques de seau public pour ce seau. | bool | true | Non |
seau | (Facultatif, force la nouvelle ressource) Le nom du seau. S'il est omis, Terraform attribuera un nom unique aléatoire. | string | null | Non |
bucket_prefix | (Forces Forces, Forces New Resource) Crée un nom de godet unique à partir du préfixe spécifié. Conflit avec un seau. | string | null | Non |
contrôle_object_ownership | Que ce soit pour gérer les commandes de propriété S3 sur ce seau. | bool | false | Non |
cors_rule | Liste des cartes contenant des règles pour le partage des ressources croisées. | any | [] | Non |
create_bucket | Commandes si le seau S3 doit être créé | bool | true | Non |
attendu_bucket_owner | L'ID du compte du propriétaire de seau attendu | string | null | Non |
force_destroy | (Facultatif, par défaut: faux) Un booléen qui indique que tous les objets doivent être supprimés du seau afin que le seau puisse être détruit sans erreur. Ces objets ne sont pas récupérables. | bool | false | Non |
accorder | Une subvention de politique ACL. Conflit avec acl | any | [] | Non |
ignore_public_acls | Si Amazon S3 devrait ignorer les ACL publics pour ce seau. | bool | true | Non |
Intelligent_tiering | Carte contenant une configuration de trace intelligente. | any | {} | Non |
Inventory_configuration | Map contenant la configuration de l'inventaire S3. | any | {} | Non |
Inventory_self_source_destination | Que le seau de source d'inventaire soit également le seau de destination. | bool | false | Non |
inventaire_source_account_id | L'ID du compte source d'inventaire. | string | null | Non |
inventaire_source_bucket_arn | Le seau de source d'inventaire Arn. | string | null | Non |
lifecycle_rule | Liste des cartes contenant la configuration de la gestion du cycle de vie des objets. | any | [] | Non |
enregistrement | Carte contenant la configuration de journalisation du seau d'accès. | any | {} | Non |
métrique_configuration | Carte contenant la configuration métrique du seau. | any | [] | Non |
object_lock_configuration | Map contenant la configuration de verrouillage des objets S3. | any | {} | Non |
object_lock_enabled | Si le seau S3 doit avoir une configuration de verrouillage d'objet activé. | bool | false | Non |
object_ownership | Propriété des objets. Valeurs valides: BucketOneNerRend, BucketownerPreferred ou ObjectWriter. «BucketowneRenForced»: les ACL sont désactivés et le propriétaire du seau possède automatiquement et a un contrôle total sur chaque objet du seau. «BucketownerPreferred»: objets téléchargés sur la propriété Changement de seau au propriétaire du seau si les objets sont téléchargés avec le LCA en conserve en conserve-propriétaire de Bucket-Owner-Full. «ObjectWriter»: le compte de téléchargement possédera l'objet si l'objet est téléchargé avec le ACL en conserve en conserve-propriétaire. | string | "BucketOwnerEnforced" | Non |
propriétaire | Nom d'affichage du propriétaire du seau et ID. Conflit avec acl | map(string) | {} | Non |
politique | (Facultatif) Un document JSON à politique de seau valide. Notez que si le document de politique n'est pas suffisamment spécifique (mais toujours valide), Terraform peut considérer la politique comme étant en constante évolution dans un plan Terraform. Dans ce cas, assurez-vous d'utiliser la version verbale / spécifique de la politique. Pour plus d'informations sur la création de documents politiques AWS IAM avec Terraform, consultez le guide de document politique AWS IAM. | string | null | Non |
Poutine_khuylo | Êtes-vous d'accord que Poutine ne respecte pas la souveraineté ukrainienne et l'intégrité territoriale? Plus d'informations: https://en.wikipedia.org/wiki/Putin_khuylo! | bool | true | Non |
réplication_configuration | Carte contenant la configuration de réplication de la région croisée. | any | {} | Non |
request_payer | (Facultatif) Spécifie qui devrait supporter le coût du transfert de données Amazon S3. Peut être soit un cachet ou un demandeur. Par défaut, le propriétaire du seau S3 entraînerait les coûts de tout transfert de données. Voir le demandeur paie le Guide du développeur Buckets pour plus d'informations. | string | null | Non |
restricte_public_buckets | Si Amazon S3 devrait restreindre les politiques du seau public pour ce seau. | bool | true | Non |
server_side_encryption_configuration | MAP Contenant la configuration de chiffrement côté serveur. | any | {} | Non |
balises | (Facultatif) Un mappage des balises à affecter au seau. | map(string) | {} | Non |
transition_default_minimum_object_size | Le comportement de taille minimale d'objet par défaut s'appliquait à la configuration du cycle de vie. Valeurs valides: all_storage_classes_128k (par défaut), varies_by_storage_class | string | null | Non |
versioning | Carte contenant la configuration du versioning. | map(string) | {} | Non |
site web | Carte contenant une configuration d'hébergement de sites Web statique ou de redirection. | any | {} | Non |
Nom | Description |
---|---|
s3_bucket_arn | L'arn du seau. Sera de format arn: aws: s3 ::: backetname. |
s3_bucket_bucket_domain_name | Le nom du domaine de seau. Sera de format bucketname.s3.amazonaws.com. |
s3_bucket_bucket_regional_domain_name | Le nom de domaine spécifique à la région de seau. Le nom de domaine du seau, y compris le nom de la région, veuillez vous référer ici au format. Remarque: Le CloudFront AWS permet de spécifier le point de terminaison spécifique à la région S3 Lors de la création d'origine S3, il empêchera les problèmes de redirection du cloudfront vers l'URL d'origine S3. |
s3_bucket_hosted_zone_id | L'identité de la Route 53 a hébergé une zone de zone pour la région de ce seau. |
s3_bucket_id | Le nom du seau. |
s3_bucket_lifecycle_configuration_rules | Les règles du cycle de vie du seau, si le seau est configuré avec des règles de cycle de vie. Sinon, ce sera une chaîne vide. |
s3_bucket_policy | La politique du seau, si le seau est configuré avec une stratégie. Sinon, ce sera une chaîne vide. |
s3_bucket_region | La région AWS dans ce seau réside. |
s3_bucket_website_domain | Le domaine du point de terminaison du site Web, si le seau est configuré avec un site Web. Sinon, ce sera une chaîne vide. Ceci est utilisé pour créer des enregistrements d'alias de la route 53. |
s3_bucket_website_endpoint | Le point de terminaison du site Web, si le seau est configuré avec un site Web. Sinon, ce sera une chaîne vide. |
Le module est entretenu par Anton Babenko avec l'aide de ces contributeurs impressionnants.
Apache 2 sous licence. Voir la licence pour plus de détails.