Terraform has an extreme approach to that, every time you reference a variable you have to spell out the complete TYPE.NAME.ATTRIBUTE, eg resource.aws_s3_bucket.my_bucket.website_endpoint. There is no way to access my_bucket without the whole prefix, even after assigning it to local variable you must prefix the reads as locals.my_bucket.
For sensitive infrastructure this makes sense, i surely wouldn't want to write other code like this.
For sensitive infrastructure this makes sense, i surely wouldn't want to write other code like this.