Package com.pulumi.aws.s3
Class BucketLoggingV2
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.s3.BucketLoggingV2
-
@Deprecated public class BucketLoggingV2 extends com.pulumi.resources.CustomResourceDeprecated.aws.s3/bucketloggingv2.BucketLoggingV2 has been deprecated in favor of aws.s3/bucketlogging.BucketLoggingProvides an S3 bucket (server access) logging resource. For more information, see [Logging requests using server access logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) in the AWS S3 User Guide. > **Note:** Amazon S3 supports server access logging, AWS CloudTrail, or a combination of both. Refer to the [Logging options for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html) to decide which method meets your requirements. > This resource cannot be used with S3 directory buckets. ## Example Usage ### Grant permission by using bucket policy
### Grant permission by using bucket ACL The [AWS Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html) does not recommend using the ACL.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.s3.BucketPolicy; import com.pulumi.aws.s3.BucketPolicyArgs; import com.pulumi.aws.s3.BucketLogging; import com.pulumi.aws.s3.BucketLoggingArgs; import com.pulumi.aws.s3.inputs.BucketLoggingTargetObjectKeyFormatArgs; import com.pulumi.aws.s3.inputs.BucketLoggingTargetObjectKeyFormatPartitionedPrefixArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var logging = new Bucket("logging", BucketArgs.builder() .bucket("access-logging-bucket") .build()); final var loggingBucketPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .conditions(GetPolicyDocumentStatementConditionArgs.builder() .test("StringEquals") .variable("aws:SourceAccount") .values(current.accountId()) .build()) .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .identifiers("logging.s3.amazonaws.com") .type("Service") .build()) .actions("s3:PutObject") .resources(logging.arn().applyValue(_arn -> String.format("%s/*", _arn))) .build()) .build()); var loggingBucketPolicy2 = new BucketPolicy("loggingBucketPolicy2", BucketPolicyArgs.builder() .bucket(logging.bucket()) .policy(loggingBucketPolicy.applyValue(_loggingBucketPolicy -> _loggingBucketPolicy.json())) .build()); var example = new Bucket("example", BucketArgs.builder() .bucket("example-bucket") .build()); var exampleBucketLogging = new BucketLogging("exampleBucketLogging", BucketLoggingArgs.builder() .targetObjectKeyFormat(BucketLoggingTargetObjectKeyFormatArgs.builder() .partitionedPrefix(BucketLoggingTargetObjectKeyFormatPartitionedPrefixArgs.builder() .partitionDateSource("EventTime") .build()) .build()) .bucket(example.bucket()) .targetBucket(logging.bucket()) .targetPrefix("log/") .build()); } }
## Import ### Identity Schema #### Required * `bucket` (String) S3 bucket name. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): **Using `pulumi import` to import** S3 bucket logging using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: ```sh $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name ``` If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): ```sh $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name,123456789012 ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.s3.BucketAcl; import com.pulumi.aws.s3.BucketAclArgs; import com.pulumi.aws.s3.BucketLogging; import com.pulumi.aws.s3.BucketLoggingArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Bucket("example", BucketArgs.builder() .bucket("my-tf-example-bucket") .build()); var exampleBucketAcl = new BucketAcl("exampleBucketAcl", BucketAclArgs.builder() .bucket(example.id()) .acl("private") .build()); var logBucket = new Bucket("logBucket", BucketArgs.builder() .bucket("my-tf-log-bucket") .build()); var logBucketAcl = new BucketAcl("logBucketAcl", BucketAclArgs.builder() .bucket(logBucket.id()) .acl("log-delivery-write") .build()); var exampleBucketLogging = new BucketLogging("exampleBucketLogging", BucketLoggingArgs.builder() .bucket(example.id()) .targetBucket(logBucket.id()) .targetPrefix("log/") .build()); } }
-
-
Constructor Summary
Constructors Constructor Description BucketLoggingV2(java.lang.String name)Deprecated.BucketLoggingV2(java.lang.String name, BucketLoggingV2Args args)Deprecated.BucketLoggingV2(java.lang.String name, BucketLoggingV2Args args, com.pulumi.resources.CustomResourceOptions options)Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>bucket()Deprecated.com.pulumi.core.Output<java.util.Optional<java.lang.String>>expectedBucketOwner()Deprecated.static BucketLoggingV2get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, BucketLoggingV2State state, com.pulumi.resources.CustomResourceOptions options)Deprecated.Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>region()Deprecated.com.pulumi.core.Output<java.lang.String>targetBucket()Deprecated.com.pulumi.core.Output<java.util.Optional<java.util.List<BucketLoggingV2TargetGrant>>>targetGrants()Deprecated.com.pulumi.core.Output<java.util.Optional<BucketLoggingV2TargetObjectKeyFormat>>targetObjectKeyFormat()Deprecated.com.pulumi.core.Output<java.lang.String>targetPrefix()Deprecated.
-
-
-
Constructor Detail
-
BucketLoggingV2
public BucketLoggingV2(java.lang.String name)
Deprecated.- Parameters:
name- The _unique_ name of the resulting resource.
-
BucketLoggingV2
public BucketLoggingV2(java.lang.String name, BucketLoggingV2Args args)Deprecated.- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
BucketLoggingV2
public BucketLoggingV2(java.lang.String name, BucketLoggingV2Args args, @Nullable com.pulumi.resources.CustomResourceOptions options)Deprecated.- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
bucket
public com.pulumi.core.Output<java.lang.String> bucket()
Deprecated.- Returns:
- Name of the bucket.
-
expectedBucketOwner
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> expectedBucketOwner()
Deprecated.- Returns:
- Account ID of the expected bucket owner.
-
region
public com.pulumi.core.Output<java.lang.String> region()
Deprecated.- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
targetBucket
public com.pulumi.core.Output<java.lang.String> targetBucket()
Deprecated.- Returns:
- Name of the bucket where you want Amazon S3 to store server access logs.
-
targetGrants
public com.pulumi.core.Output<java.util.Optional<java.util.List<BucketLoggingV2TargetGrant>>> targetGrants()
Deprecated.- Returns:
- Set of configuration blocks with information for granting permissions. See below.
-
targetObjectKeyFormat
public com.pulumi.core.Output<java.util.Optional<BucketLoggingV2TargetObjectKeyFormat>> targetObjectKeyFormat()
Deprecated.- Returns:
- Amazon S3 key format for log objects. See below.
-
targetPrefix
public com.pulumi.core.Output<java.lang.String> targetPrefix()
Deprecated.- Returns:
- Prefix for all log object keys.
-
get
public static BucketLoggingV2 get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable BucketLoggingV2State state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Deprecated.Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-