Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ArePoliciesEqal ¶
ArePoliciesEqal determines if the two Policy objects can be considered equal.
Types ¶
type ConditionMap ¶
type ConditionMap map[string]ConditionSettings
ConditionMap is map with the operator as key and the setting as values. See https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html for details.
type ConditionSettings ¶
ConditionSettings is a map of keys and values. Depending on the type of operation, the values can strings, integers, bools or lists of strings.
func (*ConditionSettings) UnmarshalJSON ¶
func (m *ConditionSettings) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into m.
type Policy ¶
type Policy struct { // Version is the current IAM policy version Version string `json:"Version"` // ID is the policy's optional identifier ID string `json:"Id,omitempty"` // Statements is the list of statement this policy applies. Statements StatementList `json:"Statement,omitempty"` }
Policy represents an AWS IAM policy.
func ParsePolicyBytes ¶
ParsePolicyBytes from a byte array representing a raw JSOn string.
func ParsePolicyObject ¶
ParsePolicyObject parses a policy from an object (i.e. an API struct) which can be marshalled into JSON.
func ParsePolicyString ¶
ParsePolicyString from a raw JSON string.
type Principal ¶
type Principal struct { // This flag indicates if the policy should be made available // to all anonymous users. Also known as "*". // +optional AllowAnon bool `json:"-"` // This list contains the all of the AWS IAM users which are affected // by the policy statement. // +optional AWSPrincipals StringOrArray `json:"AWS,omitempty"` // This string contains the identifier for any federated web identity // provider. // +optional Federated string `json:"Federated,omitempty"` // Service define the services which can have access to this bucket // +optional Service StringOrArray `json:"Service,omitempty"` }
Principal defines the principal users affected by the PolicyStatement Please see the AWS S3 docs for more information https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html
func (*Principal) UnmarshalJSON ¶
UnmarshalJSON unmarshals data into p.
type Statement ¶
type Statement struct { // Optional identifier for this statement, must be unique within the // policy if provided. SID string `json:"Sid,omitempty"` // The effect is required and specifies whether the statement results // in an allow or an explicit deny. // Valid values for Effect are "Allow" and "Deny". Effect StatementEffect `json:"Effect"` // Used with the policy to specify the principal that is allowed // or denied access to a resource. Principal *Principal `json:"Principal,omitempty"` // Used with the S3 policy to specify the users which are not included // in this policy NotPrincipal *Principal `json:"NotPrincipal,omitempty"` // Action specifies the action or actions that will be allowed or denied // with this Statement. Action StringOrArray `json:"Action,omitempty"` // NotAction specifies each element that will allow the property to match // all but the listed actions. NotAction StringOrArray `json:"NotAction,omitempty"` // Resource specifies paths on which this statement will apply. Resource StringOrArray `json:"Resource,omitempty"` // NotResource explicitly specifies all resource paths that are defined in // this array. NotResource StringOrArray `json:"NotResource,omitempty"` // Condition specifies where conditions for policy are in effect. // https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html Condition ConditionMap `json:"Condition,omitempty"` }
Statement defines an individual statement within the policy.
type StatementEffect ¶
type StatementEffect string
StatementEffect specifies the effect of a policy statement.
const ( StatementEffectAllow StatementEffect = "Allow" StatementEffectDeny StatementEffect = "Deny" )
Statement effect values.
type StatementList ¶
type StatementList []Statement
StatementList is a list of statements. It implements a custom marshaller to support parsing from a single, non-list statement.
func (*StatementList) UnmarshalJSON ¶
func (s *StatementList) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into s.
type StringOrArray ¶
type StringOrArray []string
StringOrArray is a string array that supports parsing from a single string as a single entry array.
func (*StringOrArray) UnmarshalJSON ¶
func (s *StringOrArray) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals data into s.