Speedle AI · 두 가지 연결된 방향

AI를 활용해 접근을 관리하고, AI의 접근을 제어합니다

AI를 활용해 접근 정책을 설계, 관리 및 검증하고, 동일한 정책을 AI 자체에도 적용합니다. MCP 인가, 권한 인식 RAG, AI 에이전트를 위한 최소 권한 등이 포함됩니다. 두 방향 모두 명확하고 집행 가능한 정책 결정에 기반합니다.

오픈 소스 Speedle 인가 엔진을 기반으로 구축되었습니다.

Use AI to manage access

접근 정책에 AI를 활용하세요

사람들의 접근 관리를 돕는 AI: 정책 문서를 SPDL로 변환하는 오픈 소스 스킬, 정책 설계, 관리 및 검증을 위한 Speedle MCP 프리뷰, 계획된 AI 위험 탐지 접근 방식.

Speedle 정책 모델러 · 오픈 소스 에이전트 스킬사용 가능

정책 문서를 검토 가능한 SPDL로 변환

직원 핸드북이나 규정을 읽고 명확하지 않은 부분에 대해 질문한 후 그 결과를 RBAC + ABAC 정책으로 모델링하는 에이전트 스킬입니다. 결코 규칙을 추측하지 않습니다.

생성물5개 파일

핸드북 조항에서 검증된 정책까지

모든 정책은 구현하는 조항이나 확인된 답변을 명시합니다. 모델 문서에는 Mermaid 역할 상속 다이어그램과 각 정책의 근거가 포함됩니다.

  • spctl check로 검증되어 파일 저장소로 직접 가져올 수 있는 .spdl.
  • 부서, 위치, 데이터 등급 및 금액에 대한 ABAC 조건.
  • 허용, 거부 및 승인 경계를 포괄하는 실행 가능한 케이스.
스킬 폴더 열기
샘플 출력영어 + 중국어

가상의 직원 핸드북을 엔드투엔드로 모델링

두 실행 모두 가상의 직원 핸드북에서 시작하여 검증된 모델로 완료됩니다. 각각 spctl check를 통과하고 로컬 PMS 및 ADS에서 37개 인가 케이스를 모두 통과했습니다.

  • 역할 상속 및 부서 한정 관리자 역할.
  • 광범위한 직원 권한을 재정의하는 명시적 거부.
  • entity로 모델링된 급여 서비스 계정.
영어 샘플 읽기

이 패키지는 에이전트 스킬 형식을 따릅니다: name 및 description 프론트매터가 포함된 SKILL.md와 참조 문서, 스크립트 및 예제가 포함됩니다. 해당 형식을 지원하는 모든 에이전트에서 작동합니다. 일반적인 설치의 경우 스킬 폴더를 에이전트의 스킬 디렉터리에 복사한 다음 에이전트에게 핸드북 모델링을 요청하세요. 아래 예제는 호환되는 두 에이전트를 보여줍니다.

사전 요구 사항

  • spctl — — spctl check -f policies.spdl로 생성된 SPDL을 검증합니다.
  • speedle-pms and speedle-ads — — 로컬 Speedle에서 엔드투엔드 인가 케이스를 실행합니다.
  • Python 3 — — scripts/run-cases.py의 테스트 케이스를 실행합니다.
설치 및 사용Claude Code · 예제
claude plugin marketplace add teramoby/ai.speedle.io
claude plugin install speedle@speedle

# Claude Code에서:
/plugin configure speedle@speedle
/speedle:speedle-policy-modeler ./employee-handbook.md
설치 및 사용Codex · 예제
git clone --depth 1 https://github.com/teramoby/ai.speedle.io.git
mkdir -p ~/.agents/skills
cp -R ai.speedle.io/skills/speedle-policy-modeler \
  ~/.agents/skills/

# Codex CLI 또는 IDE 확장 프로그램에서:
$speedle-policy-modeler ./employee-handbook.md

Speedle MCP프리뷰

Speedle MCP: 단일 패키지, 의도적으로 분리된 두 가지 모드

@speedle/mcp는 npm에 배포되어 있습니다. 로컬 stdio MCP 서버로 실행되는 speedle-mcp 바이너리가 포함된 단일 패키지입니다.

README 읽기
모드 01check

인가 확인

check 모드는 기본적으로 is_allowed만 등록하고 ADS 구성만 읽습니다. diagnose, all_granted_roles, all_granted_permissions는 --expose-diagnose, --expose-all-granted-roles, --expose-all-granted-permissions 플래그를 통해 선택적으로 활성화됩니다. diagnose는 자체 호스팅 Speedle에서만 작동하며 Speedle Cloud를 대상으로는 서버가 시작되지 않습니다. 인가 관련 질의에 응답할 뿐 호출 애플리케이션에서 직접 정책을 강제하지는 않습니다.

  • Speedle ADS REST API를 통한 읽기 전용 인가 확인.
  • 주체, 리소스, 작업 및 형식화된 속성을 입력으로 받습니다.
  • 환경 변수를 통한 ADS 기본 URL, 서비스 이름 및 선택적 베어러 토큰 제공.
check 모드 설정 읽기
모드 02manage

정책 설계 및 관리

manage 모드는 관리 도구만 등록하며 PMS REST API를 통해 Speedle 정책을 설계하고 관리하기 위한 PMS 구성만 읽습니다.

  • 서비스, 인가 정책 및 역할 정책.
  • SPDL 형식의 유효 정책. PMS는 생성 시 각 정책을 검증합니다.
  • 읽기 전용 옵션 제공. 파괴적 삭제에는 명시적인 대상 확인이 필요합니다.
manage 모드 설정 읽기

Node.js 22 이상이 필요합니다. 이 예제들은 공개된 패키지 README와 일치합니다. 위의 Claude Code 플러그인은 @speedle/mcp@0.2.1로 고정되어 있습니다.

설치npm · npx
npm install @speedle/mcp

npx @speedle/mcp check
npx @speedle/mcp manage
check 모드자체 호스팅
{
  "mcpServers": {
    "speedle-check": {
      "command": "npx",
      "args": ["-y", "@speedle/mcp", "check"],
      "env": {
        "SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
        "SPEEDLE_SERVICE_NAME": "books"
      }
    }
  }
}
check 모드 · 선택 활성화자체 호스팅
{
  "mcpServers": {
    "speedle-check": {
      "command": "npx",
      "args": [
        "-y",
        "@speedle/mcp",
        "check",
        "--expose-diagnose",
        "--expose-all-granted-roles",
        "--expose-all-granted-permissions"
      ],
      "env": {
        "SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
        "SPEEDLE_SERVICE_NAME": "books"
      }
    }
  }
}
manage 모드자체 호스팅
{
  "mcpServers": {
    "speedle-manage": {
      "command": "npx",
      "args": ["-y", "@speedle/mcp", "manage"],
      "env": {
        "SPEEDLE_PMS_ENDPOINT": "http://127.0.0.1:6733"
      }
    }
  }
}

AI 위험 탐지

계획됨

AI는 단일 규칙에서 파악하지 못하는 위험을 찾기 위해 더 많은 차원과 관계를 살펴볼 수 있습니다. 이는 Speedle이 탐색하고 구축 중인 방향이며 정식 출시된 기능이 아닙니다. 정책이 거부권을 유지합니다: 위험 신호는 조사나 보호를 강화할 수 있지만 거부를 허용으로 변경하지는 않습니다.

목표 흐름 보기

Control what AI can access

AI 구축 및 실행 시 접근 거버넌스

AI 시스템이 데이터, 모델, 도구 및 다른 에이전트와 접하는 모든 위치에 적용되는 Speedle의 정책 엔진: 모델 제공 전의 빌드 단계와 제공 및 동작 중인 실행 단계. 이는 솔루션 패턴이며 특정 ML 또는 에이전트 플랫폼과의 완성형 연동 기능이 아닙니다.

개념

AI 구축 및 실행을 위한 단일 결정 포인트

각 영역에는 애플리케이션 내의 집행 포인트가 있습니다. 동작하기 전에 Speedle에 확인하고 그 결정을 집행합니다.

개념: 개념: AI 구축 및 실행을 위한 결정 포인트로서의 Speedle An identity band at the top: your IdP and OAuth authenticate users and agents, MCP authorization builds on OAuth, and the principals flow into Speedle. On the left, the Build lane has two areas: data and training, asked by the data loader and job scheduler; and model release, asked by the model registry and release pipeline. On the right, the Run lane has four areas: inference and RAG, asked by the retriever per document and the API gateway; agents acting for users, asked by the agent runtime about the agent’s token scope and then the delegating user; tool calls over MCP, asked by the MCP host or gateway; and agent-to-agent calls, asked by the calling or receiving agent. Every area's enforcement point sends a request to Speedle's policy decision point in the centre and receives allow or deny. From Speedle, decisions and their explanations flow into the audit and explain band at the bottom: the diagnose API shows which policy matched and why, and applications 에이전트 및 위임 사용자와 함께 각 결정을 기록합니다. 신원 입력 공통 관심사 IdP와 OAuth가 사용자 및 에이전트를 인증합니다. MCP 인가는 OAuth를 기반으로 합니다. 애플리케이션은 이를 주체로 전달합니다. Speedle은 전달받은 주체에 따라 결정을 내립니다. 주체 빌드 모델 서비스 제공 전 실행 AI 서비스 제공 및 동작 중 01 데이터 및 훈련 데이터 로더, 작업 스케줄러 데이터셋, 훈련 작업, 체크포인트 내보내기 02 모델 배포 모델 레지스트리, 릴리스 파이프라인 등록, 승인, 승격, 롤백 03 추론 및 RAG 문서별 리트리버 · 게이트웨이 04 사용자를 대신하는 에이전트 에이전트 런타임 · 사용자 + 에이전트 05 도구 호출(MCP) MCP 호스트 또는 게이트웨이, 호출별 06 에이전트 간 호출(A2A) 호출 또는 수신 에이전트 SPEEDLE 정책 결정 포인트 각 영역의 요청에 대해 SPDL 정책을 평가 허용 | 거부 결정 + 이유 감사 및 설명 출력 공통 관심사 모든 결정은 Speedle의 diagnose API로 설명할 수 있습니다: 일치한 정책과 그 이유. 애플리케이션은 에이전트 및 위임한 사용자와 함께 각 결정을 기록합니다. 개념: 개념: AI 구축 및 실행을 위한 결정 포인트로서의 Speedle Stacked from top to bottom. Identity in: your IdP and OAuth authenticate users and agents, MCP authorization builds on OAuth, and the application passes the principals to Speedle. Speedle's policy decision point evaluates SPDL policy and answers allow or deny. Every area's enforcement point asks it. Build lane: data and training, asked by the data loader and job scheduler; model release, asked by the model registry and release pipeline. Run lane: inference and RAG, asked by the retriever per document and the API gateway; agents acting for users, asked by the agent runtime about the agent’s token scope and then the delegating user; tool calls over MCP, asked by the MCP host or gateway per call; agent-to-agent calls, asked by the calling or receiving agent. Audit and explain out: the diagnose API shows which policy matched and why, and applications 에이전트 및 위임 사용자와 함께 각 결정을 기록합니다. 신원 입력 공통 관심사 IdP와 OAuth가 사용자 및 에이전트를 인증합니다. MCP authorization builds on OAuth. Speedle은 전달받은 주체에 따라 결정을 내립니다. 주체 SPEEDLE 정책 결정 포인트 SPDL 정책을 평가 허용 | 거부 빌드 모델 서비스 제공 전 실행 AI 서비스 제공 및 동작 중 01 데이터 및 훈련 데이터 로더, 작업 스케줄러 02 모델 배포 모델 레지스트리, 릴리스 파이프라인 03 추론 및 RAG 문서별 리트리버 · 게이트웨이 04 사용자를 대신하는 에이전트 에이전트 런타임 · 사용자 + 에이전트 05 도구 호출(MCP) MCP 호스트 또는 게이트웨이, 호출별 06 에이전트 간 호출(A2A) 호출 또는 수신 에이전트 감사 및 설명 출력 모든 결정은 Speedle의 diagnose API로 설명할 수 있습니다. 일치한 정책과 이유. 앱은 에이전트 및 위임 사용자와 함께 각 결정을 기록합니다.
집행 포인트가 Speedle에 확인을 요청합니다: 주체, 작업, 리소스, 속성. Speedle이 허용 또는 거부를 응답하고, 애플리케이션이 이를 집행합니다.

솔루션 패턴

영역별 단일 정책 패턴

영역별 한 문장과 하나의 대표 규칙. 각 확인에 필요한 속성을 포함한 전체 SPDL 예제는 패턴 페이지에 있습니다.

빌드 · 01 데이터 및 훈련

데이터 및 훈련

훈련 작업은 데이터셋을 읽고 체크포인트를 작성합니다. 동의 및 리전은 데이터셋별로 확인되며 제한된 데이터는 훈련에 절대 포함되지 않습니다.

grant role training-pipeline read expr:^/datasets/ if consent == true && data_region == job_region

빌드 · 02 모델 배포

모델 배포

등록, 승인, 승격 및 롤백은 별도의 작업이며, 자신이 훈련한 모델을 직접 승인할 수 없습니다.

deny role release-manager approve expr:^/models/ if trained_by == request_user

실행 · 03 추론 및 RAG

추론 및 RAG

리트리버는 문서 내용이 프롬프트에 들어가기 전에 각 문서에 대해 확인하므로 모델은 사용자가 읽을 수 있는 권한이 있는 내용만 보게 됩니다.

grant role tenant-user retrieve expr:^/collections/ if doc_tenant == user_tenant && doc_label in user_clearances

실행 · 04 사용자를 대신하는 에이전트

사용자를 대신하는 에이전트

에이전트는 위임 토큰 범위 내에서 확인된 후 위임 사용자의 현재 권한으로 확인됩니다.

grant entity triage-agent in-time if request_time < token_expires

실행 · 05 도구 호출(MCP)

MCP를 통한 도구 호출

모든 도구 호출은 실행 전에 확인되며, 인수는 정책이 제한할 수 있는 속성이 됩니다.

grant role billing-agent call /tools/issue-refund if amount <= 100 && customer_verified == true

실행 · 06 에이전트 간 호출(A2A)

에이전트 간 호출

각 홉이 확인되며, 호출 수신자는 호출자가 이미 보유한 범위만 받을 수 있습니다.

grant role planner-agent call /agents/researcher if IsSubSet(requested_scopes, caller_scopes) && hops <= 2

실행 · 07 상시 권한 배제 · 자체 호스팅

상시 권한 배제(ZSP)

적절한 발급 및 통제가 이루어질 때, 즉시 발급되는 수명이 짧은 토큰은 상시 권한 배제 패턴을 지원할 수 있습니다. Speedle은 ZSP 전략을 정책으로 정의하고 모든 요청에 집행하는 공간입니다: SPDL에 작성된 시간 범위와 조건 내에서만 접근이 유효합니다.

grant role agent-runtime invoke /api/orders if expires_at > issued_at && expires_at - issued_at <= 600 && issued_at <= request_time + 60 && not_before <= request_time + 60 && request_time < expires_at && TokenUnused(token_id)

전체 패턴 및 SPDL 예제 보기

공통 관심사

모든 영역의 공통점

신원, 감사, 위험 매핑 및 경계는 빌드 및 실행의 모든 영역에 적용됩니다.

신원 통합

Speedle이 인가를 결정하고 IdP가 인증을 수행합니다

Speedle은 인가 결정 포인트입니다. 인증은 사용자와 에이전트 모두를 위해 IdP 또는 OAuth 인가 서버에서 제공되며, MCP 인가는 OAuth를 기반으로 구축됩니다. 애플리케이션은 검증된 신원을 주체(사용자, 그룹, 엔티티)에 매핑한 후 Speedle에 요청합니다.

감사 및 설명 가능성

진단 및 감사 로그

Speedle의 진단 API는 결정, 이유, 유효한 역할 및 일치한 정책과 이유를 포함하여 검사된 정책을 반환합니다. 애플리케이션은 에이전트 및 위임한 사용자와 함께 각 결정을 기록합니다. 진단은 정책 및 요청 세부 정보를 노출하므로 신뢰할 수 있는 운영자에게만 제한해야 합니다.

위험 매핑

OWASP LLM06:2025 과도한 에이전시 매핑

OWASP LLM 애플리케이션 10대 위험 2025에서는 과도한 에이전시(Excessive Agency)를 지목합니다: 작업에 필요한 것보다 더 많은 기능, 권한 또는 자율성을 가진 에이전트입니다. 에이전트별 역할, 도구별 확인, 작업 및 시간에 한정된 위임, 고위험 작업에 대한 사람의 승인을 통해 이 세 가지를 각각 좁힐 수 있습니다.

경계

Speedle의 경계

Speedle은 프롬프트 주입을 탐지하거나 모델 입력 및 출력을 필터링하거나 모델 및 데이터셋 공급망을 검증하지 않습니다. 이러한 작업에는 전용 제어 장치를 사용하세요. 손상되었거나 잘못 유도된 에이전트가 수행할 수 있는 작업을 제한합니다: 프롬프트 내용에 관계없이 정책 범위를 벗어난 모든 요청에 대해 Speedle은 거부를 반환합니다.

생태계

Speedle 기본 구성 요소로 시작하기

Python SDK · 결정 요청0.2.0
from speedle import Auth, Client

with Client(backend="speedle", endpoint="http://localhost:6734",
            auth=Auth.none(), service_name="docs") as speedle:
    allowed = speedle.is_allowed("alice", "get", "/docs/public")
    # docs 서비스가 alice에게 get /docs/public을 부여하면 True가 됩니다

간단한 예시입니다. SDK 문서에서 각 언어 클라이언트, 요청 모델 및 오류 처리를 다룹니다. Node.js 클라이언트는 npm에 배포되어 있습니다: npm install @speedle/sdk.

오픈 소스 · 열린 탐색

실제 AI 인가 시나리오를 공유해 주세요

다음 예제를 함께 만들어 가세요. 애플리케이션에서 보호해야 하는 데이터셋, 모델, 도구 또는 에이전트 워크플로를 공유해 주세요.

Speedle은 Oracle Speedle에서 시작되었으며 Universal Permissive License(UPL) 1.0에 따라 원 개발자들에 의해 지속적으로 유지 관리되고 있습니다. 프로젝트 스토리 읽기.