@Internal public static interface IBucket.Jsii$Default extends IBucket, IResource.Jsii$Default
IBucket
.IBucket.Jsii$Default, IBucket.Jsii$Proxy
Modifier and Type | Method and Description |
---|---|
default AddToResourcePolicyResult |
addToResourcePolicy(PolicyStatement permission)
(experimental) Adds a statement to the resource policy for a principal (i.e.
|
default String |
arnForObjects(String keyPattern)
(experimental) Returns an ARN that represents all objects within the bucket that match the key pattern specified.
|
default String |
getBucketArn()
(experimental) The ARN of the bucket.
|
default String |
getBucketDomainName()
(experimental) The IPv4 DNS name of the specified bucket.
|
default String |
getBucketDualStackDomainName()
(experimental) The IPv6 DNS name of the specified bucket.
|
default String |
getBucketName()
(experimental) The name of the bucket.
|
default String |
getBucketRegionalDomainName()
(experimental) The regional domain name of the specified bucket.
|
default String |
getBucketWebsiteDomainName()
(experimental) The Domain name of the static website.
|
default String |
getBucketWebsiteUrl()
(experimental) The URL of the static website.
|
default IKey |
getEncryptionKey()
(experimental) Optional KMS encryption key associated with this bucket.
|
default ResourceEnvironment |
getEnv()
(experimental) The environment this resource belongs to.
|
default Boolean |
getIsWebsite()
(experimental) If this bucket has been configured for static website hosting.
|
default software.constructs.Node |
getNode()
The tree node.
|
default BucketPolicy |
getPolicy()
(experimental) The resource policy associated with this bucket.
|
default Stack |
getStack()
(experimental) The stack in which this resource is defined.
|
default Grant |
grantDelete(IGrantable identity,
Object objectsKeyPattern)
(experimental) Grants s3:DeleteObject* permission to an IAM principal for objects in this bucket.
|
default Grant |
grantPublicAccess(String keyPrefix,
String... allowedActions)
(experimental) Allows unrestricted access to objects from this bucket.
|
default Grant |
grantPut(IGrantable identity,
Object objectsKeyPattern)
(experimental) Grants s3:PutObject* and s3:Abort* permissions for this bucket to an IAM principal.
|
default Grant |
grantPutAcl(IGrantable identity,
String objectsKeyPattern)
(experimental) Grant the given IAM identity permissions to modify the ACLs of objects in the given Bucket.
|
default Grant |
grantRead(IGrantable identity,
Object objectsKeyPattern)
(experimental) Grant read permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
|
default Grant |
grantReadWrite(IGrantable identity,
Object objectsKeyPattern)
(experimental) Grants read/write permissions for this bucket and it's contents to an IAM principal (Role/Group/User).
|
default Grant |
grantWrite(IGrantable identity,
Object objectsKeyPattern)
(experimental) Grant write permissions to this bucket to an IAM principal.
|
default Rule |
onCloudTrailEvent(String id,
OnCloudTrailBucketEventOptions options)
(experimental) Defines a CloudWatch event that triggers when something happens to this bucket.
|
default Rule |
onCloudTrailPutObject(String id,
OnCloudTrailBucketEventOptions options)
(experimental) Defines an AWS CloudWatch event that triggers when an object is uploaded to the specified paths (keys) in this bucket using the PutObject API call.
|
default Rule |
onCloudTrailWriteObject(String id,
OnCloudTrailBucketEventOptions options)
(experimental) Defines an AWS CloudWatch event that triggers when an object at the specified paths (keys) in this bucket are written to.
|
default String |
s3UrlForObject(String key)
(experimental) The S3 URL of an S3 object.
|
default void |
setPolicy(BucketPolicy value)
(experimental) The resource policy associated with this bucket.
|
default String |
urlForObject(String key)
(experimental) The https URL of an S3 object.
|
default String |
virtualHostedUrlForObject(String key,
VirtualHostedStyleUrlOptions options)
(experimental) The virtual hosted-style URL of an S3 object.
|
grantDelete, grantPut, grantPutAcl, grantRead, grantReadWrite, grantWrite, onCloudTrailEvent, onCloudTrailPutObject, onCloudTrailWriteObject, s3UrlForObject, urlForObject, virtualHostedUrlForObject, virtualHostedUrlForObject
@Stability(value=Stable) @NotNull default software.constructs.Node getNode()
getNode
in interface software.constructs.IConstruct
getNode
in interface software.constructs.IConstruct.Jsii$Default
getNode
in interface IResource.Jsii$Default
@Stability(value=Experimental) @NotNull default ResourceEnvironment getEnv()
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
getEnv
in interface IResource
getEnv
in interface IResource.Jsii$Default
@Stability(value=Experimental) @NotNull default Stack getStack()
getStack
in interface IResource
getStack
in interface IResource.Jsii$Default
@Stability(value=Experimental) @NotNull default String getBucketArn()
getBucketArn
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketDomainName()
getBucketDomainName
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketDualStackDomainName()
getBucketDualStackDomainName
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketName()
getBucketName
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketRegionalDomainName()
getBucketRegionalDomainName
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketWebsiteDomainName()
getBucketWebsiteDomainName
in interface IBucket
@Stability(value=Experimental) @NotNull default String getBucketWebsiteUrl()
getBucketWebsiteUrl
in interface IBucket
@Stability(value=Experimental) @Nullable default IKey getEncryptionKey()
getEncryptionKey
in interface IBucket
@Stability(value=Experimental) @Nullable default Boolean getIsWebsite()
getIsWebsite
in interface IBucket
@Stability(value=Experimental) @Nullable default BucketPolicy getPolicy()
If autoCreatePolicy
is true, a BucketPolicy
will be created upon the
first call to addToResourcePolicy(s).
@Stability(value=Experimental) default void setPolicy(@Nullable BucketPolicy value)
If autoCreatePolicy
is true, a BucketPolicy
will be created upon the
first call to addToResourcePolicy(s).
@Stability(value=Experimental) @NotNull default AddToResourcePolicyResult addToResourcePolicy(@NotNull PolicyStatement permission)
addToResourcePolicy
in interface IBucket
permission
- This parameter is required.@Stability(value=Experimental) @NotNull default String arnForObjects(@NotNull String keyPattern)
To represent all keys, specify "*"
.
arnForObjects
in interface IBucket
keyPattern
- This parameter is required.@Stability(value=Experimental) @NotNull default Grant grantDelete(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
grantDelete
in interface IBucket
identity
- The principal. This parameter is required.objectsKeyPattern
- Restrict the permission to a certain key pattern (default '*').@Stability(value=Experimental) @NotNull default Grant grantPublicAccess(@Nullable String keyPrefix, @NotNull String... allowedActions)
IMPORTANT: This permission allows anyone to perform actions on S3 objects in this bucket, which is useful for when you configure your bucket as a website and want everyone to be able to read objects in the bucket without needing to authenticate.
Without arguments, this method will grant read ("s3:GetObject") access to all objects ("*") in the bucket.
The method returns the iam.Grant
object, which can then be modified
as needed. For example, you can add a condition that will restrict access only
to an IPv4 range like this:
const grant = bucket.grantPublicAccess(); grant.resourceStatement!.addCondition(‘IpAddress’, { “aws:SourceIp”: “54.240.143.0/24” });
grantPublicAccess
in interface IBucket
keyPrefix
- the prefix of S3 object keys (e.g. `home/*`). Default is "*".allowedActions
- the set of S3 actions to allow. This parameter is required.@Stability(value=Experimental) @NotNull default Grant grantPut(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If encryption is used, permission to use the key to encrypt the contents of written files will also be granted to the same principal.
@Stability(value=Experimental) @NotNull default Grant grantPutAcl(@NotNull IGrantable identity, @Nullable String objectsKeyPattern)
If your application has the '@aws-cdk/aws-s3:grantWriteWithoutAcl' feature flag set, calling {@link grantWrite} or {@link grantReadWrite} no longer grants permissions to modify the ACLs of the objects; in this case, if you need to modify object ACLs, call this method explicitly.
grantPutAcl
in interface IBucket
identity
- The principal. This parameter is required.objectsKeyPattern
- Restrict the permission to a certain key pattern (default '*').@Stability(value=Experimental) @NotNull default Grant grantRead(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If encryption is used, permission to use the key to decrypt the contents of the bucket will also be granted to the same principal.
@Stability(value=Experimental) @NotNull default Grant grantReadWrite(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If an encryption key is used, permission to use the key for encrypt/decrypt will also be granted.
Before CDK version 1.85.0, this method granted the s3:PutObject*
permission that included s3:PutObjectAcl
,
which could be used to grant read/write object access to IAM principals in other accounts.
If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
and make sure the @aws-cdk/aws-s3:grantWriteWithoutAcl
feature flag is set to true
in the context
key of your cdk.json file.
If you've already updated, but still need the principal to have permissions to modify the ACLs,
use the {@link grantPutAcl} method.
grantReadWrite
in interface IBucket
identity
- The principal. This parameter is required.objectsKeyPattern
- Restrict the permission to a certain key pattern (default '*').@Stability(value=Experimental) @NotNull default Grant grantWrite(@NotNull IGrantable identity, @Nullable Object objectsKeyPattern)
If encryption is used, permission to use the key to encrypt the contents of written files will also be granted to the same principal.
Before CDK version 1.85.0, this method granted the s3:PutObject*
permission that included s3:PutObjectAcl
,
which could be used to grant read/write object access to IAM principals in other accounts.
If you want to get rid of that behavior, update your CDK version to 1.85.0 or later,
and make sure the @aws-cdk/aws-s3:grantWriteWithoutAcl
feature flag is set to true
in the context
key of your cdk.json file.
If you've already updated, but still need the principal to have permissions to modify the ACLs,
use the {@link grantPutAcl} method.
grantWrite
in interface IBucket
identity
- The principal. This parameter is required.objectsKeyPattern
- Restrict the permission to a certain key pattern (default '*').@Stability(value=Experimental) @NotNull default Rule onCloudTrailEvent(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
Requires that there exists at least one CloudTrail Trail in your account that captures the event. This method will not create the Trail.
onCloudTrailEvent
in interface IBucket
id
- The id of the rule. This parameter is required.options
- Options for adding the rule.@Stability(value=Experimental) @NotNull default Rule onCloudTrailPutObject(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
Note that some tools like aws s3 cp
will automatically use either
PutObject or the multipart upload API depending on the file size,
so using onCloudTrailWriteObject
may be preferable.
Requires that there exists at least one CloudTrail Trail in your account that captures the event. This method will not create the Trail.
onCloudTrailPutObject
in interface IBucket
id
- The id of the rule. This parameter is required.options
- Options for adding the rule.@Stability(value=Experimental) @NotNull default Rule onCloudTrailWriteObject(@NotNull String id, @Nullable OnCloudTrailBucketEventOptions options)
This includes the events PutObject, CopyObject, and CompleteMultipartUpload.
Note that some tools like aws s3 cp
will automatically use either
PutObject or the multipart upload API depending on the file size,
so using this method may be preferable to onCloudTrailPutObject
.
Requires that there exists at least one CloudTrail Trail in your account that captures the event. This method will not create the Trail.
onCloudTrailWriteObject
in interface IBucket
id
- The id of the rule. This parameter is required.options
- Options for adding the rule.@Stability(value=Experimental) @NotNull default String s3UrlForObject(@Nullable String key)
For example:
Example:
// Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826 s3:
s3UrlForObject
in interface IBucket
key
- The S3 key of the object.@Stability(value=Experimental) @NotNull default String urlForObject(@Nullable String key)
For example:
Example:
// Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826 https:
urlForObject
in interface IBucket
key
- The S3 key of the object.@Stability(value=Experimental) @NotNull default String virtualHostedUrlForObject(@Nullable String key, @Nullable VirtualHostedStyleUrlOptions options)
Specify regional: false
at
the options for non-regional URL. For example:
Example:
// Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826 https:
virtualHostedUrlForObject
in interface IBucket
key
- The S3 key of the object.options
- Options for generating URL.Copyright © 2021. All rights reserved.