CI/CD 워크플로우를 위해 SIGV4를 통한 헤드리스 (headless) IAM 인증을 지원하며, Kiro CLI를 설치하고 캐싱하는 GitHub Action입니다. OpenSSF 실버 인증 (OpenSSF silver certified)을 받았습니다: 오픈 소스 프로젝트 중 이 수준에 도달하는 비율은 1% 미만입니다.
비공식 커뮤니티 액션 (Unofficial community action). Amazon Web Services와 제휴하거나 보증되지 않았습니다. "Kiro"와 "Amazon Web Services"는 AWS의 상표입니다.
중요
프롬프트 인젝션 (Prompt Injection) 위험: AI가 사용자가 제어하는 입력값(git diffs, 코드 주석, 커밋 메시지)을 분석할 때, 악의적인 행위자가 출력을 조작하기 위한 지침을 삽입할 수 있습니다. 이는 모든 AI 도구에 적용됩니다.
운영 환경에서 사용하려면 아래의 보안 패턴 (Security Patterns)에서 세 가지 방어 계층을 참조하십시오.
# 권장 사항: 최신 v1.x 업데이트를 자동으로 가져옵니다
- uses: clouatre-labs/setup-kiro-action@v1
# 정확한 SHA에 고정 (공급망 무결성을 위해 권장됨)
...
현재 기본 Kiro CLI 버전: action.yml 참조
name: AI Analysis - Maximum Security
on: [pull_request]
permissions:
...
자동 캐싱 (Automatic caching)
- 후속 실행 속도를 높이기 위해 Kiro CLI 바이너리를 캐싱합니다.
SIGV4 인증 (SIGV4 authentication)
- CI/CD를 위한 IAM 기반의 헤드리스 (headless) 인증을 지원합니다.
경량화 (Lightweight)
- 외부 의존성이 없습니다.
| 입력 (Input) | 설명 (Description) | 필수 (Required) | 기본값 (Default) |
|---|
version | 설치할 Kiro CLI 버전 | 아니오 | action.yml 참조 |
aws-region | Kiro CLI 작업을 위한 AWS 리전 | 아니오 | us-east-1 |
enable-sigv4 | SIGV4 인증 모드 활성화 | 아니오 | false |
verify-checksum | 다운로드된 바이너리의 SHA256 체크섬 검증 | 아니오 | true |
| 출력 (Output) | 설명 (Description) |
|---|
kiro-version | 설치된 Kiro CLI 버전 |
kiro-path | Kiro CLI 바이너리 디렉토리 경로 |
이 액션은 AI가 강화된 CI/CD를 위해 세 가지 보안 계층을 지원합니다:
계층 1 (Tier 1 - Maximum Security): AI는 도구 출력값(JSON)만 분석하며, 원본 코드는 절대 분석하지 않습니다. 워크플로우 참조
계층 2 (Tier 2): AI는 파일 통계(file stats)를 확인하며, 수동 승인이 필요합니다. 워크플로우 참조
계층 3 (Tier 3): 전체 디프 (diff) 분석을 수행하며, 신뢰할 수 있는 팀에만 적용됩니다. 워크플로우 참조
안전한 패턴 (Safe Pattern): AI는 원본 코드가 아닌 도구 출력값(ruff, trivy, semgrep)을 분석합니다.
위험한 패턴 (Unsafe Pattern): AI가 git diff를 직접 분석하며, 이는 프롬프트 인젝션 (Prompt Injection)에 취약합니다.
전체 설명 읽기: AI-Augmented CI/CD 블로그 포스트
취약점 보고는 SECURITY.md를 참조하세요.
GitHub 호스팅 러너 (GitHub-hosted runners) 전용 - 단순하고 빠르며 관리하기 쉬운 CI/CD를 위해 설계되었습니다.
| OS | 아키텍처 (Architecture) | 러너 레이블 (Runner Label) |
|---|
| Ubuntu | x64 | ubuntu-24.04 , ubuntu-22.04 |
| Ubuntu | ARM64 | ubuntu-24.04-arm |
macOS 및 Windows는 지원되지 않습니다. macOS의 경우, 공식 설치 스크립트를 사용하세요: curl -fsSL https://cli.kiro.dev/install | bash
x64 및 ARM64 아키텍처 모두 CI에서 테스트되었습니다.
보안이 강화된 자격 증명 없는 인증을 위해 GitHub의 OIDC 제공자를 사용합니다. 전체 워크플로우는 Tier 1 예시를 참조하세요.
필요한 IAM 권한:
{
"Version": "2012-10-17",
"Statement": [{
...
- uses: clouatre-labs/setup-kiro-action@91393ee22956aee30d31f53abc8d37ac69e02102 # v1.0.1
# 장기 유지 자격 증명 (long-lived credentials)과 함께 enable-sigv4를 설정하지 마십시오
- name: Use Kiro CLI
...
장기 유지 IAM 자격 증명 (AKIA* 키)과 함께 enable-sigv4: true를 사용하지 마십시오.
첫 실행 시, 이 액션은 AWS CDN에서 Kiro CLI 바이너리를 다운로드하여 ~/.local/bin/에 캐싱합니다. 이후 실행 시에는 캐시에서 복구합니다. enable-sigv4가 설정되면, 액션은 헤드리스 (headless) IAM 인증을 위해 AMAZON_Q_SIGV4=1을 내보냅니다 (export).
SIGV4 발견: AMAZON_Q_SIGV4 환경 변수는 amazon-q-developer-cli 리포지토리의 소스 코드 분석을 통해 발견되었습니다. 이는 CI/CD 환경을 위한 헤드리스 IAM 인증을 활성화하는 문서화되지 않은 기능입니다.
경고
kiro-cli-chat에 SIGV4가 아직 구현되지 않음: Amazon은 Q CLI를 Kiro CLI로 마이그레이션할 때 SIGV4 인증을 이식하지 않았습니다. enable-sigv4: true를 설정하면 CI 경고가 발생하지만 기능적인 효과는 없습니다. 업스트림 진행 상황은 kirodotdev/Kiro#5938에서 확인하세요. 현재 작동하는 SIGV4 헤드리스 인증을 사용하려면 대신 clouatre-labs/setup-q-cli-action을 사용하세요.
바이너리를 찾을 수 없음 (Binary not found): 액션 단계가 kiro-cli-chat 호출 전에 실행되는지 확인하세요.
SIGV4 작동 안 함: AMAZON_Q_SIGV4는 아직 kiro-cli-chat에 구현되지 않았습니다. 이는 kirodotdev/Kiro#5938에서 추적 중인 알려진 업스트림 (upstream) 제한 사항입니다. 작동하는 SIGV4 지원을 사용하려면 clouatre-labs/setup-q-cli-action을 사용하세요.
캐시 작동 안 함: 캐시 키에는 OS 및 아키텍처 (architecture)가 포함됩니다. 러너 (runners)를 변경하면 새로운 캐시 항목이 생성되며, 이는 예상된 동작입니다.
| Q CLI | Kiro CLI |
|---|
clouatre-labs/setup-q-cli-action@v1 | clouatre-labs/setup-kiro-action@v1 |
qchat chat --no-interactive "..." | kiro-cli-chat chat --no-interactive "..." |
steps.q.outputs.q-version | steps.kiro.outputs.kiro-version |
steps.q.outputs.q-path | steps.kiro.outputs.kiro-path |
기여(Contributions)를 환영합니다. 이슈(issue)나 PR을 열어주세요.
Apache 2.0. LICENSE를 참조하세요.
- AI-Augmented CI/CD - CI/CD 파이프라인 내 AI 코드 리뷰를 위한 3계층 보안 모델
- Kiro CLI Documentation - 공식 Kiro CLI 문서
- Amazon Q Developer CLI - 업스트림 (upstream) 저장소 (Apache 2.0)
- Setup Goose Action - Goose AI 에이전트를 위한 유사한 액션
- Setup Q CLI Action - Q CLI를 위한 이전 액션 (deprecated)
개발자 커뮤니티를 위해 clouatre-labs에서 제작했습니다.