Access Analyzer

2024/11/13 - Access Analyzer - 5 updated api methods

Changes  This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators.

GetFinding (updated) Link ¶
Changes (response)
{'finding': {'resourceControlPolicyRestriction': 'APPLICABLE | '
                                                 'FAILED_TO_EVALUATE_RCP | '
                                                 'NOT_APPLICABLE'}}

Retrieves information about the specified finding. GetFinding and GetFindingV2 both use access-analyzer:GetFinding in the Action element of an IAM policy statement. You must have permission to perform the access-analyzer:GetFinding action.

See also: AWS API Documentation

Request Syntax

client.get_finding(
    analyzerArn='string',
    id='string'
)
type analyzerArn:

string

param analyzerArn:

[REQUIRED]

The ARN of the analyzer that generated the finding.

type id:

string

param id:

[REQUIRED]

The ID of the finding to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'finding': {
        'id': 'string',
        'principal': {
            'string': 'string'
        },
        'action': [
            'string',
        ],
        'resource': 'string',
        'isPublic': True|False,
        'resourceType': 'AWS::S3::Bucket'|'AWS::IAM::Role'|'AWS::SQS::Queue'|'AWS::Lambda::Function'|'AWS::Lambda::LayerVersion'|'AWS::KMS::Key'|'AWS::SecretsManager::Secret'|'AWS::EFS::FileSystem'|'AWS::EC2::Snapshot'|'AWS::ECR::Repository'|'AWS::RDS::DBSnapshot'|'AWS::RDS::DBClusterSnapshot'|'AWS::SNS::Topic'|'AWS::S3Express::DirectoryBucket'|'AWS::DynamoDB::Table'|'AWS::DynamoDB::Stream',
        'condition': {
            'string': 'string'
        },
        'createdAt': datetime(2015, 1, 1),
        'analyzedAt': datetime(2015, 1, 1),
        'updatedAt': datetime(2015, 1, 1),
        'status': 'ACTIVE'|'ARCHIVED'|'RESOLVED',
        'resourceOwnerAccount': 'string',
        'error': 'string',
        'sources': [
            {
                'type': 'POLICY'|'BUCKET_ACL'|'S3_ACCESS_POINT'|'S3_ACCESS_POINT_ACCOUNT',
                'detail': {
                    'accessPointArn': 'string',
                    'accessPointAccount': 'string'
                }
            },
        ],
        'resourceControlPolicyRestriction': 'APPLICABLE'|'FAILED_TO_EVALUATE_RCP'|'NOT_APPLICABLE'
    }
}

Response Structure

  • (dict) --

    The response to the request.

    • finding (dict) --

      A finding object that contains finding details.

      • id (string) --

        The ID of the finding.

      • principal (dict) --

        The external principal that has access to a resource within the zone of trust.

        • (string) --

          • (string) --

      • action (list) --

        The action in the analyzed policy statement that an external principal has permission to use.

        • (string) --

      • resource (string) --

        The resource that an external principal has access to.

      • isPublic (boolean) --

        Indicates whether the policy that generated the finding allows public access to the resource.

      • resourceType (string) --

        The type of the resource identified in the finding.

      • condition (dict) --

        The condition in the analyzed policy statement that resulted in a finding.

        • (string) --

          • (string) --

      • createdAt (datetime) --

        The time at which the finding was generated.

      • analyzedAt (datetime) --

        The time at which the resource was analyzed.

      • updatedAt (datetime) --

        The time at which the finding was updated.

      • status (string) --

        The current status of the finding.

      • resourceOwnerAccount (string) --

        The Amazon Web Services account ID that owns the resource.

      • error (string) --

        An error.

      • sources (list) --

        The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

        • (dict) --

          The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

          • type (string) --

            Indicates the type of access that generated the finding.

          • detail (dict) --

            Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

            • accessPointArn (string) --

              The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.

            • accessPointAccount (string) --

              The account of the cross-account access point that generated the finding.

      • resourceControlPolicyRestriction (string) --

        The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).

GetFindingV2 (updated) Link ¶
Changes (response)
{'findingDetails': {'externalAccessDetails': {'resourceControlPolicyRestriction': 'APPLICABLE '
                                                                                  '| '
                                                                                  'FAILED_TO_EVALUATE_RCP '
                                                                                  '| '
                                                                                  'NOT_APPLICABLE'}}}

Retrieves information about the specified finding. GetFinding and GetFindingV2 both use access-analyzer:GetFinding in the Action element of an IAM policy statement. You must have permission to perform the access-analyzer:GetFinding action.

See also: AWS API Documentation

Request Syntax

client.get_finding_v2(
    analyzerArn='string',
    id='string',
    maxResults=123,
    nextToken='string'
)
type analyzerArn:

string

param analyzerArn:

[REQUIRED]

The ARN of the analyzer that generated the finding.

type id:

string

param id:

[REQUIRED]

The ID of the finding to retrieve.

type maxResults:

integer

param maxResults:

The maximum number of results to return in the response.

type nextToken:

string

param nextToken:

A token used for pagination of results returned.

rtype:

dict

returns:

Response Syntax

{
    'analyzedAt': datetime(2015, 1, 1),
    'createdAt': datetime(2015, 1, 1),
    'error': 'string',
    'id': 'string',
    'nextToken': 'string',
    'resource': 'string',
    'resourceType': 'AWS::S3::Bucket'|'AWS::IAM::Role'|'AWS::SQS::Queue'|'AWS::Lambda::Function'|'AWS::Lambda::LayerVersion'|'AWS::KMS::Key'|'AWS::SecretsManager::Secret'|'AWS::EFS::FileSystem'|'AWS::EC2::Snapshot'|'AWS::ECR::Repository'|'AWS::RDS::DBSnapshot'|'AWS::RDS::DBClusterSnapshot'|'AWS::SNS::Topic'|'AWS::S3Express::DirectoryBucket'|'AWS::DynamoDB::Table'|'AWS::DynamoDB::Stream',
    'resourceOwnerAccount': 'string',
    'status': 'ACTIVE'|'ARCHIVED'|'RESOLVED',
    'updatedAt': datetime(2015, 1, 1),
    'findingDetails': [
        {
            'externalAccessDetails': {
                'action': [
                    'string',
                ],
                'condition': {
                    'string': 'string'
                },
                'isPublic': True|False,
                'principal': {
                    'string': 'string'
                },
                'sources': [
                    {
                        'type': 'POLICY'|'BUCKET_ACL'|'S3_ACCESS_POINT'|'S3_ACCESS_POINT_ACCOUNT',
                        'detail': {
                            'accessPointArn': 'string',
                            'accessPointAccount': 'string'
                        }
                    },
                ],
                'resourceControlPolicyRestriction': 'APPLICABLE'|'FAILED_TO_EVALUATE_RCP'|'NOT_APPLICABLE'
            },
            'unusedPermissionDetails': {
                'actions': [
                    {
                        'action': 'string',
                        'lastAccessed': datetime(2015, 1, 1)
                    },
                ],
                'serviceNamespace': 'string',
                'lastAccessed': datetime(2015, 1, 1)
            },
            'unusedIamUserAccessKeyDetails': {
                'accessKeyId': 'string',
                'lastAccessed': datetime(2015, 1, 1)
            },
            'unusedIamRoleDetails': {
                'lastAccessed': datetime(2015, 1, 1)
            },
            'unusedIamUserPasswordDetails': {
                'lastAccessed': datetime(2015, 1, 1)
            }
        },
    ],
    'findingType': 'ExternalAccess'|'UnusedIAMRole'|'UnusedIAMUserAccessKey'|'UnusedIAMUserPassword'|'UnusedPermission'
}

Response Structure

  • (dict) --

    • analyzedAt (datetime) --

      The time at which the resource-based policy or IAM entity that generated the finding was analyzed.

    • createdAt (datetime) --

      The time at which the finding was created.

    • error (string) --

      An error.

    • id (string) --

      The ID of the finding to retrieve.

    • nextToken (string) --

      A token used for pagination of results returned.

    • resource (string) --

      The resource that generated the finding.

    • resourceType (string) --

      The type of the resource identified in the finding.

    • resourceOwnerAccount (string) --

      Tye Amazon Web Services account ID that owns the resource.

    • status (string) --

      The status of the finding.

    • updatedAt (datetime) --

      The time at which the finding was updated.

    • findingDetails (list) --

      A localized message that explains the finding and provides guidance on how to address it.

      • (dict) --

        Contains information about an external access or unused access finding. Only one parameter can be used in a FindingDetails object.

        • externalAccessDetails (dict) --

          The details for an external access analyzer finding.

          • action (list) --

            The action in the analyzed policy statement that an external principal has permission to use.

            • (string) --

          • condition (dict) --

            The condition in the analyzed policy statement that resulted in an external access finding.

            • (string) --

              • (string) --

          • isPublic (boolean) --

            Specifies whether the external access finding is public.

          • principal (dict) --

            The external principal that has access to a resource within the zone of trust.

            • (string) --

              • (string) --

          • sources (list) --

            The sources of the external access finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

            • (dict) --

              The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

              • type (string) --

                Indicates the type of access that generated the finding.

              • detail (dict) --

                Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

                • accessPointArn (string) --

                  The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.

                • accessPointAccount (string) --

                  The account of the cross-account access point that generated the finding.

          • resourceControlPolicyRestriction (string) --

            The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).

        • unusedPermissionDetails (dict) --

          The details for an unused access analyzer finding with an unused permission finding type.

          • actions (list) --

            A list of unused actions for which the unused access finding was generated.

            • (dict) --

              Contains information about an unused access finding for an action. IAM Access Analyzer charges for unused access analysis based on the number of IAM roles and users analyzed per month. For more details on pricing, see IAM Access Analyzer pricing.

              • action (string) --

                The action for which the unused access finding was generated.

              • lastAccessed (datetime) --

                The time at which the action was last accessed.

          • serviceNamespace (string) --

            The namespace of the Amazon Web Services service that contains the unused actions.

          • lastAccessed (datetime) --

            The time at which the permission was last accessed.

        • unusedIamUserAccessKeyDetails (dict) --

          The details for an unused access analyzer finding with an unused IAM user access key finding type.

          • accessKeyId (string) --

            The ID of the access key for which the unused access finding was generated.

          • lastAccessed (datetime) --

            The time at which the access key was last accessed.

        • unusedIamRoleDetails (dict) --

          The details for an unused access analyzer finding with an unused IAM role finding type.

          • lastAccessed (datetime) --

            The time at which the role was last accessed.

        • unusedIamUserPasswordDetails (dict) --

          The details for an unused access analyzer finding with an unused IAM user password finding type.

          • lastAccessed (datetime) --

            The time at which the password was last accessed.

    • findingType (string) --

      The type of the finding. For external access analyzers, the type is ExternalAccess. For unused access analyzers, the type can be UnusedIAMRole, UnusedIAMUserAccessKey, UnusedIAMUserPassword, or UnusedPermission.

ListAccessPreviewFindings (updated) Link ¶
Changes (response)
{'findings': {'resourceControlPolicyRestriction': 'APPLICABLE | '
                                                  'FAILED_TO_EVALUATE_RCP | '
                                                  'NOT_APPLICABLE'}}

Retrieves a list of access preview findings generated by the specified access preview.

See also: AWS API Documentation

Request Syntax

client.list_access_preview_findings(
    accessPreviewId='string',
    analyzerArn='string',
    filter={
        'string': {
            'eq': [
                'string',
            ],
            'neq': [
                'string',
            ],
            'contains': [
                'string',
            ],
            'exists': True|False
        }
    },
    nextToken='string',
    maxResults=123
)
type accessPreviewId:

string

param accessPreviewId:

[REQUIRED]

The unique ID for the access preview.

type analyzerArn:

string

param analyzerArn:

[REQUIRED]

The ARN of the analyzer used to generate the access.

type filter:

dict

param filter:

Criteria to filter the returned findings.

  • (string) --

    • (dict) --

      The criteria to use in the filter that defines the archive rule. For more information on available filter keys, see IAM Access Analyzer filter keys.

      • eq (list) --

        An "equals" operator to match for the filter used to create the rule.

        • (string) --

      • neq (list) --

        A "not equals" operator to match for the filter used to create the rule.

        • (string) --

      • contains (list) --

        A "contains" operator to match for the filter used to create the rule.

        • (string) --

      • exists (boolean) --

        An "exists" operator to match for the filter used to create the rule.

type nextToken:

string

param nextToken:

A token used for pagination of results returned.

type maxResults:

integer

param maxResults:

The maximum number of results to return in the response.

rtype:

dict

returns:

Response Syntax

{
    'findings': [
        {
            'id': 'string',
            'existingFindingId': 'string',
            'existingFindingStatus': 'ACTIVE'|'ARCHIVED'|'RESOLVED',
            'principal': {
                'string': 'string'
            },
            'action': [
                'string',
            ],
            'condition': {
                'string': 'string'
            },
            'resource': 'string',
            'isPublic': True|False,
            'resourceType': 'AWS::S3::Bucket'|'AWS::IAM::Role'|'AWS::SQS::Queue'|'AWS::Lambda::Function'|'AWS::Lambda::LayerVersion'|'AWS::KMS::Key'|'AWS::SecretsManager::Secret'|'AWS::EFS::FileSystem'|'AWS::EC2::Snapshot'|'AWS::ECR::Repository'|'AWS::RDS::DBSnapshot'|'AWS::RDS::DBClusterSnapshot'|'AWS::SNS::Topic'|'AWS::S3Express::DirectoryBucket'|'AWS::DynamoDB::Table'|'AWS::DynamoDB::Stream',
            'createdAt': datetime(2015, 1, 1),
            'changeType': 'CHANGED'|'NEW'|'UNCHANGED',
            'status': 'ACTIVE'|'ARCHIVED'|'RESOLVED',
            'resourceOwnerAccount': 'string',
            'error': 'string',
            'sources': [
                {
                    'type': 'POLICY'|'BUCKET_ACL'|'S3_ACCESS_POINT'|'S3_ACCESS_POINT_ACCOUNT',
                    'detail': {
                        'accessPointArn': 'string',
                        'accessPointAccount': 'string'
                    }
                },
            ],
            'resourceControlPolicyRestriction': 'APPLICABLE'|'FAILED_TO_EVALUATE_RCP'|'NOT_APPLICABLE'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • findings (list) --

      A list of access preview findings that match the specified filter criteria.

      • (dict) --

        An access preview finding generated by the access preview.

        • id (string) --

          The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer.

        • existingFindingId (string) --

          The existing ID of the finding in IAM Access Analyzer, provided only for existing findings.

        • existingFindingStatus (string) --

          The existing status of the finding, provided only for existing findings.

        • principal (dict) --

          The external principal that has access to a resource within the zone of trust.

          • (string) --

            • (string) --

        • action (list) --

          The action in the analyzed policy statement that an external principal has permission to perform.

          • (string) --

        • condition (dict) --

          The condition in the analyzed policy statement that resulted in a finding.

          • (string) --

            • (string) --

        • resource (string) --

          The resource that an external principal has access to. This is the resource associated with the access preview.

        • isPublic (boolean) --

          Indicates whether the policy that generated the finding allows public access to the resource.

        • resourceType (string) --

          The type of the resource that can be accessed in the finding.

        • createdAt (datetime) --

          The time at which the access preview finding was created.

        • changeType (string) --

          Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.

          • New - The finding is for newly-introduced access.

          • Unchanged - The preview finding is an existing finding that would remain unchanged.

          • Changed - The preview finding is an existing finding with a change in status.

          For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

        • status (string) --

          The preview status of the finding. This is what the status of the finding would be after permissions deployment. For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

        • resourceOwnerAccount (string) --

          The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.

        • error (string) --

          An error.

        • sources (list) --

          The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

          • (dict) --

            The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

            • type (string) --

              Indicates the type of access that generated the finding.

            • detail (dict) --

              Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

              • accessPointArn (string) --

                The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.

              • accessPointAccount (string) --

                The account of the cross-account access point that generated the finding.

        • resourceControlPolicyRestriction (string) --

          The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).

    • nextToken (string) --

      A token used for pagination of results returned.

ListFindings (updated) Link ¶
Changes (response)
{'findings': {'resourceControlPolicyRestriction': 'APPLICABLE | '
                                                  'FAILED_TO_EVALUATE_RCP | '
                                                  'NOT_APPLICABLE'}}

Retrieves a list of findings generated by the specified analyzer. ListFindings and ListFindingsV2 both use access-analyzer:ListFindings in the Action element of an IAM policy statement. You must have permission to perform the access-analyzer:ListFindings action.

To learn about filter keys that you can use to retrieve a list of findings, see IAM Access Analyzer filter keys in the IAM User Guide.

See also: AWS API Documentation

Request Syntax

client.list_findings(
    analyzerArn='string',
    filter={
        'string': {
            'eq': [
                'string',
            ],
            'neq': [
                'string',
            ],
            'contains': [
                'string',
            ],
            'exists': True|False
        }
    },
    sort={
        'attributeName': 'string',
        'orderBy': 'ASC'|'DESC'
    },
    nextToken='string',
    maxResults=123
)
type analyzerArn:

string

param analyzerArn:

[REQUIRED]

The ARN of the analyzer to retrieve findings from.

type filter:

dict

param filter:

A filter to match for the findings to return.

  • (string) --

    • (dict) --

      The criteria to use in the filter that defines the archive rule. For more information on available filter keys, see IAM Access Analyzer filter keys.

      • eq (list) --

        An "equals" operator to match for the filter used to create the rule.

        • (string) --

      • neq (list) --

        A "not equals" operator to match for the filter used to create the rule.

        • (string) --

      • contains (list) --

        A "contains" operator to match for the filter used to create the rule.

        • (string) --

      • exists (boolean) --

        An "exists" operator to match for the filter used to create the rule.

type sort:

dict

param sort:

The sort order for the findings returned.

  • attributeName (string) --

    The name of the attribute to sort on.

  • orderBy (string) --

    The sort order, ascending or descending.

type nextToken:

string

param nextToken:

A token used for pagination of results returned.

type maxResults:

integer

param maxResults:

The maximum number of results to return in the response.

rtype:

dict

returns:

Response Syntax

{
    'findings': [
        {
            'id': 'string',
            'principal': {
                'string': 'string'
            },
            'action': [
                'string',
            ],
            'resource': 'string',
            'isPublic': True|False,
            'resourceType': 'AWS::S3::Bucket'|'AWS::IAM::Role'|'AWS::SQS::Queue'|'AWS::Lambda::Function'|'AWS::Lambda::LayerVersion'|'AWS::KMS::Key'|'AWS::SecretsManager::Secret'|'AWS::EFS::FileSystem'|'AWS::EC2::Snapshot'|'AWS::ECR::Repository'|'AWS::RDS::DBSnapshot'|'AWS::RDS::DBClusterSnapshot'|'AWS::SNS::Topic'|'AWS::S3Express::DirectoryBucket'|'AWS::DynamoDB::Table'|'AWS::DynamoDB::Stream',
            'condition': {
                'string': 'string'
            },
            'createdAt': datetime(2015, 1, 1),
            'analyzedAt': datetime(2015, 1, 1),
            'updatedAt': datetime(2015, 1, 1),
            'status': 'ACTIVE'|'ARCHIVED'|'RESOLVED',
            'resourceOwnerAccount': 'string',
            'error': 'string',
            'sources': [
                {
                    'type': 'POLICY'|'BUCKET_ACL'|'S3_ACCESS_POINT'|'S3_ACCESS_POINT_ACCOUNT',
                    'detail': {
                        'accessPointArn': 'string',
                        'accessPointAccount': 'string'
                    }
                },
            ],
            'resourceControlPolicyRestriction': 'APPLICABLE'|'FAILED_TO_EVALUATE_RCP'|'NOT_APPLICABLE'
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    The response to the request.

    • findings (list) --

      A list of findings retrieved from the analyzer that match the filter criteria specified, if any.

      • (dict) --

        Contains information about a finding.

        • id (string) --

          The ID of the finding.

        • principal (dict) --

          The external principal that has access to a resource within the zone of trust.

          • (string) --

            • (string) --

        • action (list) --

          The action in the analyzed policy statement that an external principal has permission to use.

          • (string) --

        • resource (string) --

          The resource that the external principal has access to.

        • isPublic (boolean) --

          Indicates whether the finding reports a resource that has a policy that allows public access.

        • resourceType (string) --

          The type of the resource that the external principal has access to.

        • condition (dict) --

          The condition in the analyzed policy statement that resulted in a finding.

          • (string) --

            • (string) --

        • createdAt (datetime) --

          The time at which the finding was created.

        • analyzedAt (datetime) --

          The time at which the resource-based policy that generated the finding was analyzed.

        • updatedAt (datetime) --

          The time at which the finding was most recently updated.

        • status (string) --

          The status of the finding.

        • resourceOwnerAccount (string) --

          The Amazon Web Services account ID that owns the resource.

        • error (string) --

          The error that resulted in an Error finding.

        • sources (list) --

          The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

          • (dict) --

            The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

            • type (string) --

              Indicates the type of access that generated the finding.

            • detail (dict) --

              Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

              • accessPointArn (string) --

                The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.

              • accessPointAccount (string) --

                The account of the cross-account access point that generated the finding.

        • resourceControlPolicyRestriction (string) --

          The type of restriction applied to the finding by the resource owner with an Organizations resource control policy (RCP).

    • nextToken (string) --

      A token used for pagination of results returned.

ValidatePolicy (updated) Link ¶
Changes (request)
{'policyType': {'RESOURCE_CONTROL_POLICY'}}

Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices.

See also: AWS API Documentation

Request Syntax

client.validate_policy(
    locale='DE'|'EN'|'ES'|'FR'|'IT'|'JA'|'KO'|'PT_BR'|'ZH_CN'|'ZH_TW',
    maxResults=123,
    nextToken='string',
    policyDocument='string',
    policyType='IDENTITY_POLICY'|'RESOURCE_POLICY'|'SERVICE_CONTROL_POLICY'|'RESOURCE_CONTROL_POLICY',
    validatePolicyResourceType='AWS::S3::Bucket'|'AWS::S3::AccessPoint'|'AWS::S3::MultiRegionAccessPoint'|'AWS::S3ObjectLambda::AccessPoint'|'AWS::IAM::AssumeRolePolicyDocument'|'AWS::DynamoDB::Table'
)
type locale:

string

param locale:

The locale to use for localizing the findings.

type maxResults:

integer

param maxResults:

The maximum number of results to return in the response.

type nextToken:

string

param nextToken:

A token used for pagination of results returned.

type policyDocument:

string

param policyDocument:

[REQUIRED]

The JSON policy document to use as the content for the policy.

type policyType:

string

param policyType:

[REQUIRED]

The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups.

Resource policies grant permissions on Amazon Web Services resources. Resource policies include trust policies for IAM roles and bucket policies for Amazon S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or Amazon S3 bucket policy.

Service control policies (SCPs) are a type of organization policy attached to an Amazon Web Services organization, organizational unit (OU), or an account.

type validatePolicyResourceType:

string

param validatePolicyResourceType:

The type of resource to attach to your resource policy. Specify a value for the policy validation resource type only if the policy type is RESOURCE_POLICY. For example, to validate a resource policy to attach to an Amazon S3 bucket, you can choose AWS::S3::Bucket for the policy validation resource type.

For resource types not supported as valid values, IAM Access Analyzer runs policy checks that apply to all resource policies. For example, to validate a resource policy to attach to a KMS key, do not specify a value for the policy validation resource type and IAM Access Analyzer will run policy checks that apply to all resource policies.

rtype:

dict

returns:

Response Syntax

{
    'findings': [
        {
            'findingDetails': 'string',
            'findingType': 'ERROR'|'SECURITY_WARNING'|'SUGGESTION'|'WARNING',
            'issueCode': 'string',
            'learnMoreLink': 'string',
            'locations': [
                {
                    'path': [
                        {
                            'index': 123,
                            'key': 'string',
                            'substring': {
                                'start': 123,
                                'length': 123
                            },
                            'value': 'string'
                        },
                    ],
                    'span': {
                        'start': {
                            'line': 123,
                            'column': 123,
                            'offset': 123
                        },
                        'end': {
                            'line': 123,
                            'column': 123,
                            'offset': 123
                        }
                    }
                },
            ]
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • findings (list) --

      The list of findings in a policy returned by IAM Access Analyzer based on its suite of policy checks.

      • (dict) --

        A finding in a policy. Each finding is an actionable recommendation that can be used to improve the policy.

        • findingDetails (string) --

          A localized message that explains the finding and provides guidance on how to address it.

        • findingType (string) --

          The impact of the finding.

          Security warnings report when the policy allows access that we consider overly permissive.

          Errors report when a part of the policy is not functional.

          Warnings report non-security issues when a policy does not conform to policy writing best practices.

          Suggestions recommend stylistic improvements in the policy that do not impact access.

        • issueCode (string) --

          The issue code provides an identifier of the issue associated with this finding.

        • learnMoreLink (string) --

          A link to additional documentation about the type of finding.

        • locations (list) --

          The list of locations in the policy document that are related to the finding. The issue code provides a summary of an issue identified by the finding.

          • (dict) --

            A location in a policy that is represented as a path through the JSON representation and a corresponding span.

            • path (list) --

              A path in a policy, represented as a sequence of path elements.

              • (dict) --

                A single element in a path through the JSON representation of a policy.

                • index (integer) --

                  Refers to an index in a JSON array.

                • key (string) --

                  Refers to a key in a JSON object.

                • substring (dict) --

                  Refers to a substring of a literal string in a JSON object.

                  • start (integer) --

                    The start index of the substring, starting from 0.

                  • length (integer) --

                    The length of the substring.

                • value (string) --

                  Refers to the value associated with a given key in a JSON object.

            • span (dict) --

              A span in a policy.

              • start (dict) --

                The start position of the span (inclusive).

                • line (integer) --

                  The line of the position, starting from 1.

                • column (integer) --

                  The column of the position, starting from 0.

                • offset (integer) --

                  The offset within the policy that corresponds to the position, starting from 0.

              • end (dict) --

                The end position of the span (exclusive).

                • line (integer) --

                  The line of the position, starting from 1.

                • column (integer) --

                  The column of the position, starting from 0.

                • offset (integer) --

                  The offset within the policy that corresponds to the position, starting from 0.

    • nextToken (string) --

      A token used for pagination of results returned.