Netskope LogoNetskope Logo
  • Security Services
  • AI Services
  • Networking Services
  • Analytics Services
  • Integrations
  • getting-started.svgGetting Started
    • Support
    • Community
    • Netskope.com
    © 2026 All Rights Reserved. Netskope Inc.
    Home
    Netskope Cloud Exchange
    Log Shipper Module
    Configure 3rd-party Log Shipper Plugins
    AWS S3 Events and Alerts Plugin for Log Shipper

    AWS S3 Events and Alerts Plugin for Log Shipper

    This document explains how to configure the AWS S3 Events, Alerts v1.2.0 plugin with the Log Shipper module of the Netskope Cloud Exchange platform. This plugin is used to fetch Alerts (DLP, Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, Device, and Content) and Events (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint and Client Status) from the Netskope Tenant.

    Prerequisites

    To complete this configuration, you need:

    • A Netskope tenant (or multiple, for example, production and development/test instances).
    • A Netskope Cloud Exchange tenant with the Tenant plugin and Log Shipper plugin already configured.
    • Amazon S3 bucket permissions to the IAM user.
      • ListBucket
      • CreateBucket
      • ListAllMyBuckets
      • GetBucketPolicy
      • GetBucketPublicAccessBlock
      • PutEncryptionConfiguration
      • PutBucketPublicAccessBlock
      • PutBucketPolicy
      • GetBucketLocation
      • PutObject 
    • Connectivity to the following hosts: AWS S3 Bucket access.
    AWS S3 Events, Alerts Plugin Support

    This plugin is used to fetch Alerts (DLP, Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, Device, and Content) and Events (Page, Application, Audit, Infrastructure, Network, Incident, Endpoint and Client Status) from the Netskope Tenant.

    Data TypeDescription
    Event SupportYes: Page, Application, Audit, Infrastructure, Network, Incident, Endpoint and Client Status
    Alert SupportYes: DLP, Malware, Policy, Compromised Credential, Malsite, Quarantine, Remediation, Security Assessment, Watchlist, UBA, CTEP, Device, and Content
    WebTx SupportNo
    Permissions

    Amazon S3 bucket permissions to the IAM user to send Events and Alerts data to buckets.

    • ListBucket
    • CreateBucket
    • ListAllMyBuckets
    • GetBucketPolicy
    • GetBucketPublicAccessBlock
    • PutEncryptionConfiguration
    • PutBucketPublicAccessBlock
    • PutBucketPolicy
    • GetBucketLocation 
    • PutObject
    API Details
    List of APIs Used

    This plugin uses Python libraries to create file objects in AWS S3.

    Library: The AWS SDK for Python (Boto3)

    Usage: The AWS SDK for Python (Boto3) to create, configure, and manage AWS services, such as Amazon Elastic Compute Cloud (Amazon EC2) and Amazon Simple Storage Service (Amazon S3). The SDK provides an object-oriented API as well as low-level access to AWS services.

    Create a Client 

    s3_client = boto3.client(
    "s3",
    aws_access_key_id=self.aws_public_key,
    aws_secret_access_key=self.aws_private_key,
    aws_session_token=self.aws_session_token,
    region_name=self.region_name,
    config=Config(proxies=self.proxy, user_agent=self.useragent),
    )

    Create a Bucket

    bucket = s3_client.create_bucket(
    Bucket=bucket_name,
    CreateBucketConfiguration=location,
    )

    Upload to File to the Bucket 

    s3_client.upload_file(
    file_name,
    bucket_name,
    object_name,
    )

    Get an AWS Resource 

    s3_resource = boto3.resource(
    "s3",
    aws_access_key_id=self.aws_public_key,
    aws_secret_access_key=self.aws_private_key,
    region_name=self.region_name,
    config=Config(proxies=self.proxy, user_agent=self. user-agent),
    )
    Performance Matrix

    This performance reading is for a Large Stack CE tested on these VM specifications. These readings are added with the consideration that it will ingest around 10K file size in 30 seconds.

    DescriptionSpecification
    Stack detailsSize: Large
    RAM: 32 GB
    CPU: 16 Cores
    Events, Alerts ingested to third-party SIEM~ 200K EPM
    User Agent

    User-Agent: APN/1.1 (ahq9d89xj9gspapczzdb59goq)

    Workflow

    1. Generate required credentials for AWS S3 bucket access.
    2. Create an S3 Bucket and Policy.
    3. Generate Private Key, Certificate Body, Password Phrase, Profile ARN, Role ARN, Trust Anchor ARN if using AWS IAM Role Anywhere.
    4. Configure the AWS S3 Events, Alerts plugin.
    5. Configure Log Shipper Business Rules for the AWS S3 Events, Alerts plugin.
    6. Configure Log Shipper SIEM mappings for the AWS S3 Events, Alerts plugin.
    7. Validate the AWS S3 Events, Alerts plugin.

    Watch a Video

    Click play to watch a video.

     

    Create AWS S3 Source Bucket

    This bucket will be used in the AWS S3 Source Bucket configuration parameter while configuring the plugin.

    1. To Create a Bucket and Set the required policies, log in to the AWS console.
    1. From All Services, select S3 or search for S3 in the search bar.
    1. Click Create Bucket.
    1. Enter Bucket Name, scroll down, and click Create Bucket. Example: netskope-ce-source-bucket.
    1. Search for your bucket and click on the bucket name to open it.
    1. Click Permissions to open the permission tab and to set the policy.
    1. Click Edit in the Block public access (bucket settings) section. Uncheck all checkboxes and click Save Changes. You’ll be asked for confirmation; confirm it and click Confirm.
    1. Under the Permissions tab in the bucket, click Edit in the Bucket Policy section.
    1. Click Policy generator.
    1. Select S3 Bucket policy as the policy type, add statement details, and generate the policy: 
      Replace the <user-arn> with the user ARN used for accessing the source bucket and <bucket-name> with the source bucket created above. Sample <user-arn>: arn:aws:iam::7111xxxxxxxx:user/xxxxxxxx, and <bucket-name>: netskope-ce-source-bucket
      • Select Type of Policy: S3 Bucket Policy
      • Effect: Allow
      • Principal: <user-arn>
      • Actions:
        1. GetBucketAcl
        2. GetBucketPolicy
      • ARN: arn:aws:s3:::<bucket-name>
      • Click Add Statement.
    • Scroll back up and add another statement.
      • Select Type of Policy: S3 Bucket Policy
      • Effect: Allow
      • Principal: <user-arn>
      • Actions:
        1. PutObject
        2. PutObjectAcl
      • ARN: arn:aws:s3:::<bucket-name>/*
      • Click Add Statement.
    1. Click Generate Policy. Make sure to copy the policy generated in this step because it will be used in the next step to attach in the source bucket.
    1. Add this policy to the Textbox. Scroll to the bottom and click Save Changes.

    Create a Bucket Policy

    1. Search for IAM in the search box, and in the left panel, click Policies.
    2. Click Create Policy.
    1. On the JSON tab, enter this policy. Click Next: Tags, and click Next: Review.
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
      "s3:GetBucketPublicAccessBlock",
      "s3:PutEncryptionConfiguration",
      "s3:PutBucketPublicAccessBlock",
      "s3:ListAllMyBuckets",
      "s3:PutBucketPolicy",
      "s3:CreateBucket",
      "s3:ListBucket",
      "s3:GetBucketPolicy",
      "s3:GetBucketLocation"
      "s3:PutObject"
      ],
      "Resource": "*"
      }
      ]
      }
    1. Enter a Name and click Create Policy.
    1. Attach this policy to the user. Go to IAM > Users and select the user for which you want to attach a policy. Click Add permissions, and click Add permissions again.
    1. Select Attach policies directly under Permissions, and then search for and select the policy created in the previous step for the source queue.
    1. Click Next and then click Add permissions. A policy will be attached to the user.

    Plugin Authentication Methods

    IAM Role Anywhere Configuration

    Prerequisites

    The AWS Certificate Manager service is required to be enabled to authenticate the plugin using the AWS IAM Roles Anywhere Authentication Method.

    Note

    Make sure you create the Private Certificate Authority, Trust Anchor, and Profile in the same region in which your AWS S3 Source Bucket resides.

    Create an IAM Policy

    This Policy contains the required permissions for creating a Private CA Certificate (including Permissions for creating a Trust Anchor and Profile) and using IAM Roles Anywhere.

    1. Go to Policy Generator and click Add Statement to generate a policy.
    2. Select Type of Policy: IAM Policy
      • Effect: Allow
      • AWS Service: AWS Private Certificate Authority
      • Actions:
        • CreateCertificateAuthority
        • DescribeCertificateAuthority
        • GetCertificate
        • GetCertificateAuthorityCertificate
        • GetCertificateAuthorityCsr
        • ImportCertificateAuthorityCertificate
        • IssueCertificate
        • ListCertificateAuthorities
      • ARN: *
      • Click Add Statement.
    1. Select Type of Policy: IAM Policy
      • Effect: Allow
      • AWS Service: AWS Identity and Access Management (IAM)
      • Actions:
        • AttachRolePolicy
        • CreateAccessKey
        • CreateRole
        • DeleteRole
        • PassRole
      • ARN: *
      • Click Add Statement.
    1. Select Type of Policy: IAM Policy
      • Effect: Allow
      • AWS Service: AWS Certificate Manager
      • Actions:
        • DescribeCertificate
        • ExportCertificate
        • GetCertificate
        • ListCertificates
        • ListTagsForCertificate
        • RequestCertificate
      • ARN: *
      • Click Add Statement.
    1. Select Type of Policy: IAM Policy
      • Effect: Allow
      • AWS Service: AWS Identity and Access Management Roles Anywhere
      • Actions:
        • CreateProfile
        • CreateTrustAnchor
        • GetProfile
        • GetTrustAnchor
        • ListProfiles
        • ListTrustAnchors
      • ARN: *
      • Click Add Statement.
    1. Click Generate Policy.
    1. Copy the Policy as it is used in the next step for creating the policy required for creating the Private CA certificates.
    2. Go to the AWS Console and select IAM from All Services. Click Policies from the left panel, and click Create Policy.
    1. Copy the policy to the JSON tab, and then click on Next: Tags and Next: Review..
    1. Enter a name, like netskope-ce-rolesAnywhere-policy, and click Save Changes.
    Create a Private Certificate Authority
    1. Log in to AWS Console.
    2. Search for Certificate Manager.
    1. Click AWS Private CA.
    2. Click Create a private CA.
    1. Select General-purpose for Mode Options.
    2. Select Root for CA Type Options.
    1. Enter the Organization (O).
    1. Select RSA 2048 for Key Algorithm Options.
    1. Add tags if any (optional).
    2. Enable the checkbox in the CA permissions options section.
    3. Enable the checkbox in the Pricing section.
    4. Click Create to create the CA certificate.
    1. From Actions, select Install.
    1. Click Confirm and Install.
    Create a Trust Anchor
    1. Search for the IAM service, and go to Roles under Access management. Scroll down to Roles Anywhere and select Manage.
    1. Click Create a Trust anchor.
    1. Enter the Trust anchor name, like netskope-ce-trust-anchor.
    1. Select AWS Certificate Manager Private CA (created in the previous steps) as a Certificate authority (CA) source.
    2. Add tags if required.
    3. Click Create a trust anchor.
    1. Click on the created Trust Anchor and copy the Trust Anchor ARN.
    Create an IAM Role
    1. Go to IAM services in the AWS Console.
    2. Click Role under Access management.
    3. Click Create Role.
    1. For the Trusted entity type, select Custom Trust Policy.
    1. Replace the Custom trust Policy with the below given Trust Policy – this policy contains the permissions for using the Roles Anywhere service:
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Principal": {
      "Service": [
      "rolesanywhere.amazonaws.com"
      ]
      },
      "Action": [
      "sts:AssumeRole",
      "sts:TagSession",
      "sts:SetSourceIdentity"
      ]
      }
      ]
      }
    1. Click Next.
    2. In the Permissions policies, select the previously created Bucket Policy.
    1. Click Next.
    2. Provide a Role name, like netskope-ce-roleAnywhere, and add a Description for the role.
    3. Click Create role.
    1. Make a note of the Role ARN as this will be required in the Plugin configuration parameter: Role ARN for the authentication method AWS IAM Roles Anywhere.
    Create a Profile
    1. Select Roles under Access management.
    2. Scroll down to Roles Anywhere and click Manage.
    1. Expand the Setup steps.
    2. Click Step 2: Configure roles.
    3. Click Configure a profile.
    1. Enter a Profile name, like netskope-ce-profile.
    2. Select the role created in Create IAM Role section (netskope-ce-roleAnywhere).
    1. Remove the Inline Policy.
    2. Click Create profile.
    1. Click on the created Profile and copy the Profile ARN.
    Request a Private Certificate
    1. Go to AWS Certificate Manager > Request certificate.
    2. Select Request a private certificate.
    1. Click Next.
    2. Select the Certificate authority created in the previous steps.
    1. Provide a domain name in the Fully Qualified Domain Name field, like netskope-ce.com.
    2. Select RSA 2048 for the Key algorithm.
    1. Add tags if required.
    2. Acknowledge the Certificate renewal permissions.
    3. Click Request.
    1. Go to List certificates from the navigation pane of AWS Certificate Manager.
    2. Select the certificate created previously.
    1. Click Export.
    1. Enter the passphrase. Make a note of the passphrase as it will be required for the Configuration of the AWS S3 Plugin using the AWS IAM Roles Anywhere Authentication method.
    2. Click Generate PEM Encoding.
    1. Download all the Certificates because they won’t be visible again. For new certificates, you will need to Export it again. For More Info visit AWS IAM Role Anywhere

    Deployed on AWS Configuration

    Create a Role
    1. Go to IAM services in the AWS Console.
    2. Click Create role.
    1. Select the AWS Service.
    2. For Use Case, select EC2.
    3. Click Next.
    1. Select the permission policy created in your Bucket Policy.
    2. Click Next.
    1. Enter a Role Name, like netskope-ce-instance-role, and add a Description. 
    2. Click Create Role.
    Assign a Role to an EC2 Instance
    1. Open your EC2 instance console.
    2. Click Instances under Instances.
    1. Go to Action > Security > Modify IAM Role.
    1. Select the Role that you created previously (like netskope-ce-instance-role).
    2. Click Update IAM Role.
    Assign a Role to a Fargate Instance
    1. Open your CFN script.
    2. Get the ExistingECSTaskRole Parameter value if present.
    1. Go to IAM > Roles.
    2. Search for the ExistingECSTaskRole parameter value. Otherwise, search for NetskopeCloudExchangeTaskRole-<CFN name> and select the role.
    1. Attach the previously created Create Bucket Policy to this role.
    2. Click Add permission > Attach policies.
    1. Search and select the bucket policy previously created (netskope-ce-s3-policy).
    2. Click Add permissions.
    Assign the Role to a K8s Instance
    1. Open your Role created for ServiceAccount while creating K8s instance.
    2. Attach the Bucket policy created previously.

    Configure the AWS S3 Events, Alerts Plugin

    1. In Cloud Exchange, go to Settings > Plugin Store.
    2. Search for and select the AWS S3 Events, and Alerts v1.2.0 (CLS) plugin box.
    1. Enter a Configuration Name.
    1. Click Next and enter the Configuration Parameters:
      • Authentication Method: Select the method to be used for authentication (Deployed on AWS/AWS IAM Roles Anywhere)
      • Private Key: Private Key for decrypting the AWS Private CA Certificate. Required for AWS IAM Roles Anywhere authentication type.
      • Certificate Body: Certificate Body for AWS Public/Private CA Certificate. Required for AWS IAM Roles Anywhere authentication type.
      • Password Phrase: Password Phrase for decrypting the CA Certificate. Required for AWS IAM Roles Anywhere authentication type.
      • Profile ARN: AWS Profile ARN for AWS client authentication. Required for AWS IAM Roles Anywhere authentication type.
      • Role ARN: AWS Role ARN for AWS client authentication. Required for AWS IAM Roles Anywhere authentication type.
      • Trust Anchor ARN: AWS Trust Anchor ARN for AWS client authentication. Required for AWS IAM Roles Anywhere authentication type.
      • AWS S3 Bucket Region Name: AWS S3 Bucket Region Name from where to get the AWS S3 Bucket. Make sure that the region name matches the region in the Profile ARN and Trust Anchor ARN.
      • AWS S3 Bucket Name: AWS S3 Bucket Name in which the data object will be stored.
    1. Click Save. Your plugin configuration will be available on the Cloud Log Shipper > Plugins page.

    Configure a Log Shipper Business Rule for AWS S3 Events, Alerts

    1. In Log Shipper, go to the Business Rules. 
    2. By default there is a business rule that filters all alerts and events. If you want to filter out any specific type of alert or event, click Create New Rule and configure a new business rule by adding the rule name and filter(s).
    3. Click Save.

    Configure a SIEM Mapping for AWS S3 Events, Alerts

    1. Go to SIEM Mappings and click Add SIEM Mapping. 
    2. Select the Source plugin (Netskope CLS), the Destination plugin (AWS S3 Events, Alerts), your business rule, and click Save.
    3. After the SIEM mapping is added, the data will start to be pulled from the Netskope tenant, transformed, and ingested into the AWS platform.

    Validate the AWS S3 Events, Alerts Plugin

    Validate the Pull

    To validate the pulling of indicators from the Netskope tenant.

    Go to Logging in Cloud Exchange and search for the pulled logs.

    Validate the Push

    To validate the plugin workflow, on Netskope Cloud Exchange.

    1. Go to Logging and search for ingested events with the filter “message contains ingested”. 
    2. The ingested logs will be filtered.

    To validate the push from the AWS S3 platform:

    1. Go to AWS S3. On the Search bar, search for and select Buckets.
    2. Search the bucket you used while creating the plugin.
    3. Click on the bucket name.

    Note

    The folder structure will be like alerts/feedname/year/month/day/hour/filename.gz

    Example: awsdemobucket/alerts/feedname=Malware/year=2023/month=11/day=30/hour=9/1701336881_139977276685128.txt

    After downloading the file, the alert/event will look like this:

    Troubleshooting the AWS S3 Events, Alerts Plugin

    Facing issues in the existing plugin configuration after the plugin update

    If you’ve recently updated your AWS S3 plugin, there might be an issue where editing the existing plugin configuration leads to a blank Cloud Exchange interface. This problem may occur in Cloud Exchange versions 4.2.0 and 5.0.0 if users try to modify the plugin configuration after the update and navigate to the Configuration Parameters page.

    Here’s what you can do on your Cloud Exchange version:

    For version 4.2.0, 5.0.0: The only solution available is to delete the current plugin configuration and set up a new one from scratch.

    Facing issues while configuring the new plugin 

    If you’re creating a new plugin with AWS IAM Roles Anywhere and face an error of 400, the root cause for not being able to save the plugin can be found in the logging section when expanding the logs

    What to do:
    While expanding the log, you can see At least one of the Trust Anchor ARN, Role ARN, and Profile ARN has a different account ID, so you would have to check that the provided parameters are generated from the same account and have the same region.

    In this Topic
    • AWS S3 Events and Alerts Plugin for Log Shipper