/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; namespace Amazon.S3.Model { /// /// The container element for all Public Access Block configuration options. You can enable /// the configuration options in any combination. /// /// /// /// Amazon S3 considers a bucket policy public unless at least one of the following conditions /// is true: /// ///
  1. /// /// The policy limits access to a set of CIDRs using aws:SourceIp. For more /// information on CIDR, see http://www.rfc-editor.org/rfc/rfc4632.txt /// /// ///
  2. /// /// The policy grants permissions, not including any "bad actions," to one of the following: /// ///
    • /// /// A fixed AWS principal, user, role, or service principal /// ///
    • /// /// A fixed aws:SourceArn /// ///
    • /// /// A fixed aws:SourceVpc /// ///
    • /// /// A fixed aws:SourceVpce /// ///
    • /// /// A fixed aws:SourceOwner /// ///
    • /// /// A fixed aws:SourceAccount /// ///
    • /// /// A fixed value of s3:x-amz-server-side-encryption-aws-kms-key-id /// ///
    • /// /// A fixed value of aws:userid outside the pattern "AROLEID:*" /// ///
/// /// "Bad actions" are those that could expose the data inside a bucket to reads or writes /// by the public. These actions are s3:Get*, s3:List*, s3:AbortMultipartUpload, /// s3:Delete*, s3:Put*, and s3:RestoreObject. /// /// /// /// The star notation for bad actions indicates that all matching operations are considered /// bad actions. For example, because s3:Get* is a bad action, s3:GetObject, /// s3:GetObjectVersion, and s3:GetObjectAcl are all bad actions. /// ///
public class PublicAccessBlockConfiguration { private bool? blockPublicAcls; private bool? ignorePublicAcls; private bool? blockPublicPolicy; private bool? restrictPublicBuckets; /// /// Gets and sets the property BlockPublicAcls. /// /// Specifies whether Amazon S3 should block public ACLs for this bucket. Setting this /// element to TRUE causes the following behavior: /// /// /// /// Note that enabling this setting doesn't affect existing policies or ACLs. /// /// public bool BlockPublicAcls { get { return this.blockPublicAcls ?? default(bool); } set { this.blockPublicAcls = value; } } // Check to see if BlockPublicAcls property is set internal bool IsSetBlockPublicAcls() { return this.blockPublicAcls.HasValue; } /// /// Gets and sets the property IgnorePublicAcls. /// /// Specifies whether Amazon S3 should ignore public ACLs for this bucket. Setting this /// element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket /// and any objects that it contains. /// /// /// /// Note that enabling this setting doesn't affect the persistence of any existing ACLs /// and doesn't prevent new public ACLs from being set. /// /// public bool IgnorePublicAcls { get { return this.ignorePublicAcls ?? default(bool); } set { this.ignorePublicAcls = value; } } // Check to see if IgnorePublicAcls property is set internal bool IsSetIgnorePublicAcls() { return this.ignorePublicAcls.HasValue; } /// /// Gets and sets the property BlockPublicPolicy. /// /// Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting /// this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy /// if the specified bucket policy allows public access. /// /// /// /// Note that enabling this setting doesn't affect existing bucket policies. /// /// public bool BlockPublicPolicy { get { return this.blockPublicPolicy ?? default(bool); } set { this.blockPublicPolicy = value; } } // Check to see if BlockPublicPolicy property is set internal bool IsSetBlockPublicPolicy() { return this.blockPublicPolicy.HasValue; } /// /// Gets and sets the property RestrictPublicBuckets. /// /// Specifies whether Amazon S3 should restrict public bucket policies for this bucket. /// Setting this element to TRUE restricts access to this bucket to only /// Amazon Web Service principals and authorized users within this account if the bucket /// has a public policy. /// /// /// /// Enabling this setting doesn't affect previously stored bucket policies, except that /// public and cross-account access within any public bucket policy, including non-public /// delegation to specific accounts, is blocked. /// /// public bool RestrictPublicBuckets { get { return this.restrictPublicBuckets ?? default(bool); } set { this.restrictPublicBuckets = value; } } // Check to see if RestrictPublicBuckets property is set internal bool IsSetRestrictPublicBuckets() { return this.restrictPublicBuckets.HasValue; } } }