Thread
#java
    a

    astonishing-minister-81878

    4 months ago
    Hello, So excited for Java release. I am trying to use Input Bucket Resource properties (currently publicAccessBlockConfiguration, later on loggingConfiguration etc)… but am not able to move ahead. Are Input available in Java? Any code snipplets around these would be super helpful. Thanks!
    t

    tall-librarian-49374

    4 months ago
    Not sure I understand the question. Yes, they are… Could you show a code snippet that is problematic for you?
    There’s no Input<T> type if that’s your question
    a

    astonishing-minister-81878

    4 months ago
    var bucket = new Bucket("my-bucket",
                    BucketArgs.builder()
                            .publicAccessBlockConfiguration(bucketPublicAccessBlockConfiguration) <--- Not compiling
                    .build()
    not sure how to go from here…
    var bucketPublicAccessBlockConfiguration = new BucketPublicAccessBlockConfiguration(true,true,true,true);
    BucketPublicAccessBlockConfiguration has private access…
    how can I assign bucket resource properties to a bucket, is what I am a little lost…
    t

    tall-librarian-49374

    4 months ago
    Okay, so your docs point to AWS Native - which is confusingly not supported yet despite the docs suggesting otherwise. Are you actually using the AWS (classic) provider?
    a

    astonishing-minister-81878

    4 months ago
    Thanks @tall-librarian-49374. So this was my yesterday and didn’t go anywhere and I thought I should be using aws-native 😞
    How should I be able to block public ACLs on buckets? Which API will help me do this and later assign it to Bucket object?
    var bucket = new Bucket("my-bucket", BucketArgs.builder()
                    .acl("private")
                    .policy("{\n" +
                            "      \"PublicAccessBlockConfiguration\":{\n" +
                            "         \"BlockPublicAcls\":true,\n" +
                            "         \"IgnorePublicAcls\":false,\n" +
                            "         \"BlockPublicPolicy\":true,\n" +
                            "         \"RestrictPublicBuckets\":true\n" +
                            "      }\n" +
                            "}")
                    .build());
    I get below error
    * creating urn:pulumi:dev::s3_provisioning::aws:s3/bucket:Bucket::my-bucket: 1 error occurred:
        	* Error putting S3 policy: MalformedPolicy: Unknown field PublicAccessBlockConfiguration
    Am I on the right track of assigning Block policy through JSON?
    t

    tall-librarian-49374

    4 months ago
    Sorry I don’t know this part of AWS… Are you looking for this resource https://www.pulumi.com/registry/packages/aws/api-docs/s3/bucketpublicaccessblock/?
    a

    astonishing-minister-81878

    4 months ago
    t

    tall-librarian-49374

    4 months ago
    So go ahead and use it
    a

    astonishing-minister-81878

    4 months ago
    Basically be able to do this thru pulumi
    t

    tall-librarian-49374

    4 months ago
    You should be able to do that with the resource that I linked
    a

    astonishing-minister-81878

    4 months ago
    Trying to use it in
    var bucket = new Bucket("my-bucket", BucketArgs.builder()
                    .acl("private")
                    .policy("{\n" +
                            "      \"PublicAccessBlockConfiguration\":{\n" +
                            "         \"BlockPublicAcls\":true,\n" +
                            "         \"BlockPublicPolicy\":true,\n" +
                            "         \"RestrictPublicBuckets\":true\n" +
                            "      }\n" +
                            "}")
                    .build());
    t

    tall-librarian-49374

    4 months ago
    That’s
    Bucket
    you need to add
    new BucketPublicAccessBlock
    as a separate resource
    a

    astonishing-minister-81878

    4 months ago
    ok … Thanks 🙂
    So, this is what is deployed successfully
    var exampleBucketV2 = new BucketV2("exampleBucketV2");
    
            var exampleBucketPublicAccessBlock = new BucketPublicAccessBlock("exampleBucketPublicAccessBlock", BucketPublicAccessBlockArgs.builder()
                    .bucket(exampleBucketV2.getId())
                    .blockPublicAcls(true)
                    //.restrictPublicBuckets(true)
                    .blockPublicPolicy(true)
                    .build());
    However, I still don’t see Block public access enabled.. on aws console…
    How can I make sure, I am dealing with the right property (Pulumi API?)
    Tried https://www.pulumi.com/registry/packages/aws/api-docs/s3/bucketpublicaccessblock/ with Java and Python. Couldn’t get it working… I will appreciate if someone else tries, to make sure I am not going blind 🤣 . Thanks!