DirectorySecurity AdvisoriesPricing
Sign in
Directory
apache-apisix-iamguarded logo

apache-apisix-iamguarded

Last changed

Request a free trial

Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.

Tags
Overview
Comparison
Provenance
Specifications
SBOM
Vulnerabilities
Advisories

Chainguard Container for apache-apisix-iamguarded

APISIX API Gateway provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.

Chainguard Containers are regularly-updated, secure-by-default container images.

Download this Container Image

For those with access, this container image is available on cgr.dev:

docker pull cgr.dev/ORGANIZATION/apache-apisix-iamguarded:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.

Compatibility Notes

The apache-apisix-iamguarded image is based on Apache APISIX and provides the same functionality as the upstream project with the following differences:

  • This image follows IAMGuarded container standards for enterprise compatibility
  • The binary is located at /opt/iamguarded/apisix/bin/apisix instead of the default path
  • Configuration files are located under /opt/iamguarded/apisix/conf/
  • The container runs as user ID 1001 (apisix user) with group ID 0 (root group) following IAMGuarded standards
  • Custom environment variables including LUA_PATH for Lua module loading
  • Luarocks is not included in this image, as its usage with openresty is strongly discouraged in favor of openresty's own package manager opm

These changes ensure enterprise-grade security compliance while maintaining full compatibility with the upstream Apache APISIX functionality.

Getting Started

Apache APISIX requires etcd as a configuration store. Here's how to get started with the basic setup:

Basic Version Check

First, verify the image works correctly:

docker run --rm cgr.dev/ORGANIZATION/apache-apisix-iamguarded:latest version

Running with Docker and etcd

Create a minimal setup with etcd and APISIX:

# Create a network for APISIX and etcd
docker network create apisix-network

# Start etcd
docker run -d \
  --name apisix-etcd \
  --network apisix-network \
  -p 2379:2379 \
  -e ALLOW_NONE_AUTHENTICATION=yes \
  cgr.dev/ORGANIZATION/etcd:latest \
  etcd --listen-client-urls=http://0.0.0.0:2379 --advertise-client-urls=http://0.0.0.0:2379

Create APISIX configuration:

cat > apisix-config.yaml <<EOF
deployment:
  role: traditional
  role_traditional:
    config_provider: etcd
  etcd:
    host:
      - "http://apisix-etcd:2379"
    prefix: "/apisix"
    timeout: 30
  admin:
    admin_key_required: false
    enable_admin_cors: true
    admin_listen:
      ip: 0.0.0.0
      port: 9180

apisix:
  node_listen: 9080
  enable_ipv6: false
EOF

Start APISIX with the configuration:

docker run -d \
  --name apisix-gateway \
  --network apisix-network \
  -p 9080:9080 \
  -p 9180:9180 \
  -v "$(pwd)/apisix-config.yaml:/usr/local/apisix/conf/config.yaml" \
  --entrypoint=/bin/bash \
  cgr.dev/ORGANIZATION/apache-apisix-iamguarded:latest \
  -c 'apisix init && apisix init_etcd && exec /usr/bin/openresty -p /usr/local/apisix -g "daemon off;"'

Testing the Setup

Once running, test the admin API:

# Check routes (should return empty initially)
curl "http://localhost:9180/apisix/admin/routes"

# Create a test route
curl -X PUT -H "Content-Type: application/json" \
  "http://localhost:9180/apisix/admin/routes/1" \
  -d '{
    "uri": "/test",
    "plugins": {
      "response-rewrite": {
        "body": "APISIX is working!",
        "status_code": 200
      }
    }
  }'

# Test the proxy endpoint
curl "http://localhost:9080/test"

Configuration

APISIX configuration is primarily handled through the config.yaml file and admin API. Key configuration areas include:

Core Configuration

The main configuration file structure:

deployment:
  role: traditional              # or data_plane for distributed setup
  role_traditional:
    config_provider: etcd       # Configuration storage backend

etcd:
  host:
    - "http://etcd-host:2379"   # etcd cluster endpoints
  prefix: "/apisix"             # Key prefix in etcd
  timeout: 30                   # Connection timeout

admin:
  admin_listen:
    ip: 0.0.0.0
    port: 9180                  # Admin API port
  admin_key_required: false     # Set to true for production
  enable_admin_cors: true       # Allow cross-origin requests

apisix:
  node_listen: 9080             # Gateway port for client traffic
  enable_ipv6: false            # IPv6 support

Security Considerations

For production deployments:

  • Enable admin API key authentication by setting admin_key_required: true
  • Configure proper TLS certificates
  • Restrict admin API access through firewall rules
  • Use strong authentication plugins for client traffic
  • Implement proper rate limiting and circuit breaker patterns

Environment Variables

The image sets specific environment variables for proper operation:

  • LUA_PATH: Configured for Lua module loading
  • PATH: Includes APISIX binary paths and dependencies

Documentation and Resources

For comprehensive documentation and advanced configuration:

What are Chainguard Containers?

Chainguard's free tier of Starter container images are built with Wolfi, our minimal Linux undistro.

All other Chainguard Containers are built with Chainguard OS, Chainguard's minimal Linux operating system designed to produce container images that meet the requirements of a more secure software supply chain.

The main features of Chainguard Containers include:

For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a development, or -dev, variant.

In all other cases, including Chainguard Containers tagged as :latest or with a specific version number, the container images include only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager.

Although the -dev container image variants have similar security features as their more minimal versions, they include additional software that is typically not necessary in production environments. We recommend using multi-stage builds to copy artifacts from the -dev variant into a more minimal production image.

Need additional packages?

To improve security, Chainguard Containers include only essential dependencies. Need more packages? Chainguard customers can use Custom Assembly to add packages, either through the Console, chainctl, or API.

To use Custom Assembly in the Chainguard Console: navigate to the image you'd like to customize in your Organization's list of images, and click on the Customize image button at the top of the page.

Learn More

Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Librariescontact us for access.

Trademarks

This software listing is packaged by Chainguard. The trademarks set forth in this offering are owned by their respective companies, and use of them does not imply any affiliation, sponsorship, or endorsement by such companies.

Licenses

Chainguard's container images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" tag of this image:

  • Apache-2.0

  • Artistic-1.0-Perl

  • BSD-3-Clause

  • GCC-exception-3.1

  • GPL-1.0-or-later

  • GPL-2.0-or-later

  • GPL-3.0-or-later

For a complete list of licenses, please refer to this Image's SBOM.

Software license agreement

Compliance

A FIPS validated version of this image is available for FedRAMP compliance. STIG is included with FIPS image.


Related images
apache-apisix logo
apache-apisix

Category
application

The trusted source for open source

Talk to an expert
© 2025 Chainguard. All Rights Reserved.
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsIntegrationsPricing