LogoLogo
Documentation and Guides
Documentation and Guides
  • ABOUT APONO
    • Why Choose Apono
    • Security and Architecture
    • Glossary
  • GETTING STARTED
    • How Apono Works
    • Getting started
    • Access Discovery
    • Integrating with Apono
  • CONNECTORS AND SECRETS
    • Apono Integration Secret
    • High Availability for Connectors
    • Installing a connector with Docker
    • Manage integrations
    • Manage connectors
    • S3 Storage
  • AWS ENVIRONMENT
    • AWS Overview
    • Apono Connector for AWS
      • Installing a connector on EKS Using Terraform
      • Updating a connector in AWS
      • Installing a connector on AWS ECS using Terraform
    • AWS Integrations
      • Integrate an AWS account or organization
        • Auto Discover AWS RDS Instances
        • AWS Best Practices
      • Amazon Redshift
      • RDS PostgreSQL
      • AWS RDS MySQL
      • Integrate with EKS
      • AWS Lambda Custom Integration
      • EC2 via Systems Manager Agent (SSM)
  • AZURE ENVIRONMENT
    • Apono Connector for Azure
      • Install an Azure connector on ACI using Azure CLI
      • Install an Azure connector on ACI using PowerShell
      • Install an Azure connector on ACI using Terraform
      • Updating a connector in Azure
    • Azure Integrations
      • Integrate with Azure Management Group or Subscription
        • Auto Discover Azure SQL Databases
      • Azure MySQL
      • Azure PostgreSQL
      • Integrate with AKS
  • GCP ENVIRONMENT
    • Apono Connector for GCP
      • Installing a GCP connector on Cloud Run using CLI
      • Installing a GCP connector on GKE using CLI (Helm)
      • Installing a GCP connector on GKE using Terraform
      • Updating a connector in Google Cloud
    • GCP Integrations
      • Integrate a GCP organization or project
      • CloudSQL - MySQL
      • CloudSQL - PostgreSQL
      • Google Cloud Functions
      • Integrate with GKE
      • AlloyDB
  • KUBERNETES ENVIRONMENT
    • Apono Connector for Kubernetes
      • Installing a connector on Kubernetes with AWS permissions
      • Updating a Kubernetes connector
    • Kubernetes Integrations
      • Integrate with Self-Managed Kubernetes
  • ADDITIONAL INTEGRATIONS
    • Databases and Data Repositories
      • Microsoft SQL Server
      • MongoDB
      • MongoDB Atlas
      • MongoDB Atlas Portal
      • MySQL
      • Oracle Database
      • PostgreSQL
      • RabbitMQ
      • Redis Cloud (Redislabs)
      • Snowflake
      • Vertica
      • MariaDB
    • Network Management
      • SSH Servers
      • RDP Servers
      • Windows Domain Controller
      • AWS EC2 SSH Servers
      • Azure VM SSH Servers
      • Installing the Apono HTTP Proxy
    • Development Tools
      • GitHub
      • Rancher
    • Identity Providers
      • Okta SCIM
      • Okta Groups
      • Okta SSO for Apono logins
      • Google Workspace (Gsuite)
      • Google Workspace (GSuite) Groups
      • Azure Active Directory (Microsoft Entra ID)
      • Azure Active Directory (Entra ID) Groups
      • Jumpcloud
      • JumpCloud Groups
      • OneLogin
      • OneLogin Group
      • LDAP Groups
      • The Manager Attribute in Access Flows
      • HiBob
      • Ping Identity SSO
    • Incident Response Integrations
      • Opsgenie
      • PagerDuty
      • VictorOps (Splunk On-Call)
      • Zenduty
    • ChatOps Integrations
      • Slack integration
      • Teams integration
      • Backstage Integration
    • Secret Management
      • 1Password
  • WEBHOOK INTEGRATIONS
    • Webhooks Overview
    • Anomaly Webhook
    • Audit Log Webhook
    • Request Webhook
      • Custom Webhooks
      • Communications and Notifications
        • Slack Outbound Webhooks
        • Teams
        • Outlook and Gmail (Using Azure Logic App)
      • ITSM
        • Freshdesk
        • Jira
        • ServiceNow
        • Zendesk
        • Freshservice
        • ServiceDesk Plus
      • Logs and SIEMs
        • Coralogix
        • Datadog
        • Logz.io
        • Grafana
        • New Relic
        • SolarWinds
        • Sumo Logic
        • Cortex
        • Logpoint
        • Splunk
        • Microsoft Sentinel
      • Orchestration and workflow builders
        • Okta Workflows
        • Torq
    • Integration Webhook
    • Webhook Payload References
      • Audit Log Webhook Payload Schema Reference
      • Webhook Payload Schema Reference
    • Manage webhooks
    • Troubleshoot a webhook
    • Manual Webhook
      • ITSM
        • PagerDuty
  • ACCESS FLOWS
    • Access Flows
      • What are Access Flows?
    • Create Access Flows
      • Self Serve Access Flows
      • Automatic Access Flows
      • Access Duration
    • Manage Access Flows
      • Right Sizing
    • Revoke Access
    • Dynamic Access Management
      • Resource and Integration Owners
    • Common Use Cases
      • Ensuring SLA
      • Protecting PII and Customer Data
      • Production Stability and Management
      • Break Glass Protocol
    • Create Bundles
    • Manage Bundles
  • ACCESS REQUESTS AND APPROVALS
    • Slack
      • Requesting Access with Slack
      • Approving Access with Slack
      • Reviewing historical requests with Slack
    • Teams
      • Requesting Access with Teams
      • Approving Access with Teams
    • CLI
      • Install and manage the Apono CLI
      • Requesting Access with CLI
    • Web Portal
      • Requesting Access with the Web Portal
      • Approving Access with the Web Portal
      • Reviewing historical requests with the Web Portal
    • Freshservice
    • Favorites
  • Inventory
    • Inventory Overview
    • Inventory
    • Access Scopes
    • Risk Scores
    • Apono Query Language
  • AUDITS AND REPORTS
    • Activity Overview
      • Activity
      • Create Reports
      • Manage Reports
    • Compliance: Audit and Reporting
    • Auditing Access in Apono
    • Admin Audit Log (Syslog)
  • HELP AND DEBUGGING
    • Integration Status Page
    • Troubleshooting Errors
  • ARCHITECTURE AND SECURITY
    • Anomaly Detection
    • Multi-factor Authentication
    • Credentials Rotation Policy
    • Periodic User Cleanup & Deletion
    • End-user Authentication
    • Personal API Tokens
  • User Administration
    • Role-Based Access Control (RBAC) Reference
    • Create Identities
    • Manage Identities
Powered by GitBook
On this page
  • Prerequisites
  • Configure user authentication
  • Integrate with Elastic Kubernetes Service (EKS)
  • Log in to EKS with Apono access details

Was this helpful?

Export as PDF
  1. AWS ENVIRONMENT
  2. AWS Integrations

Integrate with EKS

Create an integration to manage access to a Kubernetes cluster on AWS

PreviousAWS RDS MySQLNextAWS Lambda Custom Integration

Last updated 3 months ago

Was this helpful?

​​

With Elastic Kubernetes Service (EKS) on AWS, EKS simplifies the management complexities of Kubernetes.

Through this integration, Apono helps you securely manage access to your AWS Elastic Kubernetes cluster.​


Prerequisites

Item

Description

Apono Connector

Apono Premium

Cluster Admin Access

EKS Cluster Name

AWS SSO | SAML Federation

Authentication for requester Security Assertion Markup Language (SAML) federation for authentication can be provided by providers such as Okta, Onelogin, Jumpcloud, and Ping Identity.

​


Configure user authentication

Authentication can be completed with an Identity and Access Management IAM user or an IAM role. To grant a user access to an EKS cluster, the IAM user or IAM role must be mapped with a specific user identifier, such as an email address.Apono supports this mapping with an IAM role through AWS SSO or SAML federation from any identity provider (IdP).​

Create a new policy

Follow these steps to create a new policy:

  1. Click JSON.

  2. Replace the default policy with the following policy. Be sure to replace the placeholder.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "eks:DescribeCluster",
                "Resource": "arn:aws:eks:*:<AWS_ACCOUNT_ID>:cluster/*"
            }
        ]
    }
    Placeholder
    Description

    <AWS_ACCOUNT_ID>

    AWS account ID where the EKS is hosted

  3. Click Next. The Review and create page appears.

  4. Enter a Policy name. This name is used to identify this policy.

  5. Click Create policy.

​

Create the IAM role

Follow these steps to create the IAM role:

  1. Under Trusted entity type, select Custom trust policy.

  2. Under Custom trust policy, replace the default policy with one of the following trust policies. Be sure to replace the placeholders.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "sts:RoleSessionName": "${SAML:sub}"
                },
                "ArnLike": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_*",
                        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/aws-reserved/sso.amazonaws.com/*/AWSReservedSSO_*"
                    ]
                }
            }
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::<AWS_ACCOUNT_ID>:saml-provider/<SAML_PROVIDER>"
            },
            "Action": "sts:AssumeRoleWithSAML",
            "Condition": {
                "StringEquals": {
                    "SAML:aud": "https://signin.aws.amazon.com/saml"
                }
            }
        }
    ]
}
Placeholder
Description

<AWS_ACCOUNT_ID>

AWS account ID where the EKS is hosted

<SAML_PROVIDER>

Identity provider name

  1. Click Next. The Add permissions page appears.

  2. Under Permissions policies, select the newly created policy.

  3. Click Next. The Name, review, and create page appears.

  4. For the Role name, enter apono-k8s-access.

  5. For the Description, enter required for k8s access managed by Apono.

  6. Click Create role.

If an Overly permission trust policy popup window appears, click Continue.

Authenticate the EKS cluster

Now that the IAM role has been created, you must authenticate the EKS cluster with the ConfigMap or EKS API.

Follow these steps to authenticate the cluster:

  1. Log into the EKS cluster with a user account that has the cluster admin permission.

  2. Edit the aws-auth ConfigMap to include the following mapRoles entry. Be sure to replace the placeholder.

    - rolearn: arn:aws:iam::<AWS_ACCOUNT_ID>:role/apono-k8s-access
      username: "{{SessionNameRaw}}"
    Placeholder
    Description

    <AWS_ACCOUNT_ID>

    AWS account ID where the EKS is hosted

Follow these steps to authenticate the cluster:

    • For the IAM principal, enter arn:aws:iam::<AWS_ACCOUNT_ID>:role/apono-k8s-access.

    • For the Username use apono:{{SessionName}}.

    • Choose Cluster as the access scope.


Integrate with Elastic Kubernetes Service (EKS)

You can also use the steps below to integrate with Apono using Terraform.

In step 11, instead of clicking Confirm, follow the Are you integrating with Apono using Terraform? guidance.

Follow these steps to complete the integration:

  1. Under Discovery, click one or more resource types to sync with Apono.

Apono automatically discovers and syncs all the instances in the environment. After syncing, you can manage access flows to these resources.

  1. Click Next. The Apono connector section appears.

  2. From the dropdown menu, select a connector.

  1. Click Next. The Integration Config section expands.

  2. Define the Integration Config settings.

When the Apono connector is installed on the EKS cluster, you do not need to enter values for the other optional fields.

Setting
Description

Integration Name

Unique, alphanumeric, user-friendly name used to identify this integration when constructing an access flow

Server URL

(Optional) URL of the Kubernetes API server used to interact with the Kubernetes cluster

Certification Authority

(Optional) Certificate that ensures that the Kubernetes API server is trusted and authentic Leave this field empty if you want to connect the cluster where the connector is deployed.

EKS Cluster Name

Unique name of the cluster to integrate

AWS Role Name

(Optional) Role defined for the connector

Region

(Optional) Location where the AWS Elastic Kubernetes cluster is deployed

  1. Click Next. The Secret Store section expands.

When the Apono connector is installed on the EKS cluster, you do not need to provide a secret.

  1. Click Next. The Get more with Apono section expands.

  2. Define the Get more with Apono settings.\

    Setting
    Description

    Credential Rotation

    User cleanup after access is revoked (in days)

    (Optional) Defines the number of days after access has been revoked that the user should be deleted

    Custom Access Details

    (Optional) Instructions explaining how to access this integration's resources Upon accessing an integration, a message with these instructions will be displayed to end users in the User Portal. The message may include up to 400 characters. To view the message as it appears to end users, click Preview.

    Integration Owner

    1. From the Attribute dropdown menu, select User or Group under the relevant identity provider (IdP) platform.

    2. From the Value dropdown menu, select one or multiple users or groups.

    NOTE: When Resource Owner is defined, an Integration Owner must be defined.

    Resource Owner

    1. Enter a Key name. This value is the name of the tag created in your cloud environment.

    2. From the Attribute dropdown menu, select an attribute under the IdP platform to which the key name is associated. Apono will use the value associated with the key (tag) to identify the resource owner. When you update the membership of the group or role in your IdP platform, this change is also reflected in Apono.

    NOTE: When this setting is defined, an Integration Owner must also be defined.

  3. Click Confirm.

💡Are you integrating with Apono using Terraform?

If you want to integrate with Apono using Terraform, follow these steps instead of clicking Confirm:

  1. At the top of the screen, click View as Code. A modal appears with the completed Terraform configuration code.

  2. Click to copy the code.

  3. Make any additional edits.

  4. Deploy the code in your Terraform.


Log in to EKS with Apono access details

The following table shows two approaches to assume this role.

Approach
Details

AWS CLI

In the AWS CLI, run the aws sts assume-role command. Be sure to replace the placeholders.

Config File

Edit ~/.aws/config to contain the following profile. Be sure to replace the placeholders.

Placeholder
Description

<AWS_ACCOUNT_ID>

AWS account ID where the EKS is hosted

<EMAIL>

User email listed in the IdP

​ installed on the EKS cluster that serves as a bridge between the cluster and Apono

​ providing all available features and dedicated account support

Admin access to the cluster to integrate The cluster admin access can be the built-in role or equivalent permission level. Apono does not require admin permissions to the Kubernetes environment.

Unique to integrate

Under Access management on the page in AWS, click Policies > Create policy. The Specify permission page appears.

Under Access management on the page in AWS, click Roles > Create role. The Select trusted entity page appears.

Read to learn more about editing the aws-auth ConfigMap.

to EKS API.

:

Now, you can .

On the tab, click Elastic Kubernetes Service (EKS). The Connect Integration page appears.

If the desired connector is not listed, click + Add new connector and follow the instructions for creating an on an EKS cluster.

(Optional) .

(Optional) Number of days after which the database credentials must be rotated Learn more about the .

Learn more about .

(Optional) Fallback approver if no is found Follow these steps to define one or several integration owners:

(Optional) Group or role responsible for managing access approvals or rejections for the resource Follow these steps to define one or several :

Refer to for more details about the schema definition.

Now that you have completed this integration, you can that grant permission to your Elastic Kubernetes Service cluster.

After a user gains access to an EKS resource, the user must authenticate with the cluster. The user must assume the .

aws sts assume-role \
  --role-arn arn:aws:iam::<ACCOUNT_ID>:role/apono-k8s-access \
  --role-session-name <EMAIL> \
  --duration-seconds 3600
[profile apono-k8s-access]
role_arn = arn:aws:iam::<ACCOUNT_ID>:role/apono-k8s-access
role_session_name = <EMAIL>
source_profile = default
Identity and Access Management (IAM)
Identity and Access Management (IAM)
Apply the aws-auth ConfigMap to your cluster
Change the authentication mode
Create the access entry
Catalog
Apono Connector for Kubernetes
Associate the secret or credentials
Integration Config Metadata
create access flows
integrate with EKS
apono-k8s-access role
Connection
Apono plan
cluster-admin
name of the cluster
Credentials Rotation Policy
Periodic User Cleanup & Deletion
resource owner
resource owners
Elastice Kubernetes Service (EKS) tile