-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Importing S3 bucket with inline policy creates unmanageable policy object #12805
Comments
Hi @alkalinecoffee 👋 Thank you for reporting this confusing behavior and sorry it exists to begin with. We plan on removing any "complex" imports (where a single In the meantime (on any version of the Terraform CLI), you can execute the following to remove the "extra" resource from the Terraform state: $ terraform state rm aws_s3_bucket_policy.bucket This does not affect anything in the S3 API, only the Terraform state. 👍 |
Reference: #394 Reference: #9001 Reference: #9508 Reference: #12805 Output from acceptance testing: ``` --- PASS: TestAccAWSS3Bucket_acceleration (70.53s) --- PASS: TestAccAWSS3Bucket_AclToGrant (64.37s) --- PASS: TestAccAWSS3Bucket_basic (37.90s) --- PASS: TestAccAWSS3Bucket_Bucket_EmptyString (39.08s) --- PASS: TestAccAWSS3Bucket_Cors_Delete (32.28s) --- PASS: TestAccAWSS3Bucket_Cors_EmptyOrigin (39.25s) --- PASS: TestAccAWSS3Bucket_Cors_Update (68.80s) --- PASS: TestAccAWSS3Bucket_disableDefaultEncryption_whenDefaultEncryptionIsEnabled (67.23s) --- PASS: TestAccAWSS3Bucket_enableDefaultEncryption_whenAES256IsUsed (37.19s) --- PASS: TestAccAWSS3Bucket_enableDefaultEncryption_whenTypical (44.32s) --- PASS: TestAccAWSS3Bucket_forceDestroy (37.21s) --- PASS: TestAccAWSS3Bucket_forceDestroyWithEmptyPrefixes (38.50s) --- PASS: TestAccAWSS3Bucket_forceDestroyWithObjectLockEnabled (37.77s) --- PASS: TestAccAWSS3Bucket_generatedName (38.80s) --- PASS: TestAccAWSS3Bucket_GrantToAcl (60.31s) --- PASS: TestAccAWSS3Bucket_LifecycleBasic (89.67s) --- PASS: TestAccAWSS3Bucket_LifecycleExpireMarkerOnly (67.52s) --- PASS: TestAccAWSS3Bucket_LifecycleRule_Expiration_EmptyConfigurationBlock (30.08s) --- PASS: TestAccAWSS3Bucket_Logging (56.73s) --- PASS: TestAccAWSS3Bucket_namePrefix (40.92s) --- PASS: TestAccAWSS3Bucket_objectLock (68.34s) --- PASS: TestAccAWSS3Bucket_Policy (97.07s) --- PASS: TestAccAWSS3Bucket_region (34.45s) --- PASS: TestAccAWSS3Bucket_Replication (159.22s) --- PASS: TestAccAWSS3Bucket_ReplicationConfiguration_Rule_Destination_AccessControlTranslation (94.18s) --- PASS: TestAccAWSS3Bucket_ReplicationConfiguration_Rule_Destination_AddAccessControlTranslation (95.79s) --- PASS: TestAccAWSS3Bucket_ReplicationExpectVersioningValidationError (28.62s) --- PASS: TestAccAWSS3Bucket_ReplicationSchemaV2 (167.50s) --- PASS: TestAccAWSS3Bucket_ReplicationWithoutPrefix (55.52s) --- PASS: TestAccAWSS3Bucket_ReplicationWithoutStorageClass (58.02s) --- PASS: TestAccAWSS3Bucket_RequestPayer (67.28s) --- PASS: TestAccAWSS3Bucket_shouldFailNotFound (19.65s) --- PASS: TestAccAWSS3Bucket_tagsWithNoSystemTags (119.32s) --- PASS: TestAccAWSS3Bucket_tagsWithSystemTags (171.42s) --- PASS: TestAccAWSS3Bucket_UpdateAcl (65.51s) --- PASS: TestAccAWSS3Bucket_UpdateGrant (92.38s) --- PASS: TestAccAWSS3Bucket_Versioning (95.55s) --- PASS: TestAccAWSS3Bucket_Website_Simple (95.12s) --- PASS: TestAccAWSS3Bucket_WebsiteRedirect (91.21s) --- PASS: TestAccAWSS3Bucket_WebsiteRoutingRules (65.48s) ```
…14121) Reference: #394 Reference: #9001 Reference: #9508 Reference: #12805 Output from acceptance testing: ``` --- PASS: TestAccAWSS3Bucket_acceleration (70.53s) --- PASS: TestAccAWSS3Bucket_AclToGrant (64.37s) --- PASS: TestAccAWSS3Bucket_basic (37.90s) --- PASS: TestAccAWSS3Bucket_Bucket_EmptyString (39.08s) --- PASS: TestAccAWSS3Bucket_Cors_Delete (32.28s) --- PASS: TestAccAWSS3Bucket_Cors_EmptyOrigin (39.25s) --- PASS: TestAccAWSS3Bucket_Cors_Update (68.80s) --- PASS: TestAccAWSS3Bucket_disableDefaultEncryption_whenDefaultEncryptionIsEnabled (67.23s) --- PASS: TestAccAWSS3Bucket_enableDefaultEncryption_whenAES256IsUsed (37.19s) --- PASS: TestAccAWSS3Bucket_enableDefaultEncryption_whenTypical (44.32s) --- PASS: TestAccAWSS3Bucket_forceDestroy (37.21s) --- PASS: TestAccAWSS3Bucket_forceDestroyWithEmptyPrefixes (38.50s) --- PASS: TestAccAWSS3Bucket_forceDestroyWithObjectLockEnabled (37.77s) --- PASS: TestAccAWSS3Bucket_generatedName (38.80s) --- PASS: TestAccAWSS3Bucket_GrantToAcl (60.31s) --- PASS: TestAccAWSS3Bucket_LifecycleBasic (89.67s) --- PASS: TestAccAWSS3Bucket_LifecycleExpireMarkerOnly (67.52s) --- PASS: TestAccAWSS3Bucket_LifecycleRule_Expiration_EmptyConfigurationBlock (30.08s) --- PASS: TestAccAWSS3Bucket_Logging (56.73s) --- PASS: TestAccAWSS3Bucket_namePrefix (40.92s) --- PASS: TestAccAWSS3Bucket_objectLock (68.34s) --- PASS: TestAccAWSS3Bucket_Policy (97.07s) --- PASS: TestAccAWSS3Bucket_region (34.45s) --- PASS: TestAccAWSS3Bucket_Replication (159.22s) --- PASS: TestAccAWSS3Bucket_ReplicationConfiguration_Rule_Destination_AccessControlTranslation (94.18s) --- PASS: TestAccAWSS3Bucket_ReplicationConfiguration_Rule_Destination_AddAccessControlTranslation (95.79s) --- PASS: TestAccAWSS3Bucket_ReplicationExpectVersioningValidationError (28.62s) --- PASS: TestAccAWSS3Bucket_ReplicationSchemaV2 (167.50s) --- PASS: TestAccAWSS3Bucket_ReplicationWithoutPrefix (55.52s) --- PASS: TestAccAWSS3Bucket_ReplicationWithoutStorageClass (58.02s) --- PASS: TestAccAWSS3Bucket_RequestPayer (67.28s) --- PASS: TestAccAWSS3Bucket_shouldFailNotFound (19.65s) --- PASS: TestAccAWSS3Bucket_tagsWithNoSystemTags (119.32s) --- PASS: TestAccAWSS3Bucket_tagsWithSystemTags (171.42s) --- PASS: TestAccAWSS3Bucket_UpdateAcl (65.51s) --- PASS: TestAccAWSS3Bucket_UpdateGrant (92.38s) --- PASS: TestAccAWSS3Bucket_Versioning (95.55s) --- PASS: TestAccAWSS3Bucket_Website_Simple (95.12s) --- PASS: TestAccAWSS3Bucket_WebsiteRedirect (91.21s) --- PASS: TestAccAWSS3Bucket_WebsiteRoutingRules (65.48s) ```
The removal of the automatic |
Sounds good @bflad, thanks! |
This has been released in version 3.0.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks! |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks! |
Community Note
Terraform Version
Affected Resource(s)
Terraform Configuration Files
Expected Behavior
I'm specifying an
aws_s3_bucket
object with an in-linepolicy
value shown above and importing it into my state.After importing, I make a change to the policy and run
terraform plan
. The plan should show only policy changes on my newly importedaws_s3_bucket
object.Actual Behavior
After importing, it appears that the policy is internally attached to an
aws_s3_bucket_policy
object, which does not exist in my configuration and is unmanageable without further config changes.Because my policy is specified in-line with the
aws_s3_bucket
, the terraform plan shows that the policy must be created directly on the bucket, and the policy object be removed:This is confusing as according to the plan, the policy should be deleted, then re-attached directly to the S3 bucket. So we're hesitant about running this plan in production.
To me, if an S3 object with a policy is imported into configuration that specifies a policy in-line, that policy should be attached directly to the
aws_s3_bucket
object, and theaws_s3_bucket_policy
object should not exist at all.Steps to Reproduce
terraform import aws_s3_bucket.bucket my-bucket
terraform plan
to see an unmanagedaws_s3_bucket_policy
objectThe text was updated successfully, but these errors were encountered: