Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
policy_sentry — 리소스 ARN 및 액세스 수준을 기반으로 최소 권한 AWS IAM 정책을 생성하여 클라우드 인프라를 위한 보안 정책 생성을 자동화합니다. | Kitploit
도구/GitHubGitHub/salesforce/policy_sentry
Cloud Infrastructure SecurityConfiguration AuditingCloud SecurityDevSecOpsIdentity & Access Management (IAM)
GitHubsalesforce/policy_sentry

policy_sentry

리소스 ARN 및 액세스 수준을 기반으로 최소 권한 AWS IAM 정책을 생성하여 클라우드 인프라를 위한 보안 정책 생성을 자동화합니다.

저장소 보기
2.2k157121개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Policy Sentry

IAM 최소 권한 정책 생성기.

continuous-integration Documentation Status Join the chat at https://gitter.im/salesforce/policy_sentry Twitter PyPI Python Version Downloads

  • 튜토리얼
    • 설치
      • 패키지 관리자
      • 셸 완성
    • 1단계: 템플릿 만들기
    • 2단계: ARN 복사/붙여넣기
    • 3단계: write-policy 명령
  • 치트 시트
    • 정책 작성 치트 시트
    • IAM 데이터베이스 조회 치트 시트
    • 로컬 초기화 (선택 사항)
  • 기타 사용법
    • 명령어
    • Python 라이브러리 사용법
    • Docker
    • Terraform
  • 참고 자료

문서

연습 및 전체 문서는 ReadTheDocs 프로젝트를 방문하세요.

Policy Sentry에 대한 Salesforce Engineering 블로그 게시물을 참조하세요.

개요

IAM 정책을 수동으로 작성하는 일은 매우 지루하고 비효율적일 수 있습니다. 많은 Infrastructure as Code 개발자들은 다음과 같은 경험을 해보았을 것입니다.

  • 사용자와 역할에 최소한의 권한만 부여하려고 최선을 다하지만, AWS IAM 문서([Actions, Resources, and Condition Keys for AWS Services][1])를 뒤지는 데 너무 많은 시간을 소비합니다.
  • 팀 리더는 제품 품질을 위해 IAM 정책에 보안을 구축하도록 권장하지만, 결국 프로젝트 마감일 때문에 좌절감을 느낍니다.
  • 팀에 IAM 정책을 작성해줄 전담 보안 인력이 없고, 사용자가 수행하는 AWS API 호출을 자동으로 감지하여 리소스 ARN 제약 조건과 함께 정책을 작성해주는 자동화 도구도 없습니다.
  • 그런 자동화 수준을 상상한 후, 자선 활동처럼 최소 권한 IAM 정책을 작성하는 것이 프로젝트 마감일을 맞춰 코드를 완성하는 능력을 위태롭게 한다는 것을 깨닫습니다.
  • 관리형 정책을 사용하거나(어차피 왜 안 되겠어) API 호출 이름을 대충 보고 와일드카드를 사용하여 넘어갑니다.

이러한 과정은 보안이나 Infrastructure as Code 개발자 모두에게 이상적이지 않습니다. IAM 정책을 안전하게 작성하는 것을 더 쉽게 만들고 최소 권한 IAM 정책의 복잡성을 추상화해야 합니다. 그래서 이 도구를 만들었습니다.

Policy Sentry를 사용하면 수동으로 IAM 정책을 작성하는 대신 몇 초 만에 최소 권한 IAM 정책을 만들 수 있습니다. 이러한 정책은 액세스 수준과 리소스에 따라 범위가 좁혀집니다. 침해 사고 발생 시 손상된 자격 증명의 폭발 반경을 제한하여 IAM 주체가 필요한 것에만 액세스할 수 있도록 합니다.

이 도구 이전에는 리소스 ARN 제약 조건이 있는 IAM 정책을 작성하는 데 몇 시간이 걸렸지만, 이제는 몇 초면 됩니다. 이제 개발자는 액세스해야 할 리소스만 결정하면 되며, Policy Sentry가 IAM 정책의 복잡성을 개발 프로세스에서 추상화해 줍니다.

리소스 제약 조건 및 액세스 수준에 기반한 안전한 정책 작성

Policy Sentry의 핵심 기능은 리소스 ARN과 액세스 수준을 기반으로 IAM 정책을 생성할 수 있다는 점입니다. CRUD 기능은 IAC 개발자가 AWS IAM의 복잡성을 이해할 필요가 없다는 의견을 취합니다. 즉, 우리가 그들에게 복잡성을 추상화해야 합니다. 실제로 개발자는 다음과 같이 말할 수 있어야 합니다.

  • "arn:aws:s3:::example-org-sbx-vmimport에 대한 읽기/쓰기/목록 액세스가 필요합니다"
  • "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret에 대한 권한 관리 액세스가 필요합니다"
  • "arn:aws:ssm:us-east-1:123456789012:parameter/test에 대한 태깅 액세스가 필요합니다"

...그러면 우리의 자동화가 해당 액세스 수준에 맞는 정책을 생성해야 합니다.

어떻게 이를 달성할까요? Policy Sentry는 AWS 문서([Actions, Resources, and Condition Keys][1])를 활용하여 Actions, 액세스 수준, 리소스 유형을 조회하고 ARN 및 액세스 수준에 따라 정책을 생성합니다. 아래 표 조각을 살펴보세요.

Actions 액세스 수준 리소스 유형
ssm:GetParameter 읽기 parameter
ssm:DescribeParameters 목록 parameter
ssm:PutParameter 쓰기 parameter
secretsmanager:PutResourcePolicy 권한 관리 secret
secretsmanager:TagResource 태깅 secret

Policy Sentry는 모든 해당 문서를 단일 데이터베이스에 집계하고 이 데이터베이스를 사용하여 작업, 리소스 및 액세스 수준에 따라 정책을 생성합니다.

튜토리얼

설치

패키지 관리자

  • Homebrew
brew tap salesforce/policy_sentry https://github.com/salesforce/policy_sentry
brew install policy_sentry
  • Pip
pip3 install --user policy_sentry

셸 완성

Bash 완성을 활성화하려면 .bashrc에 다음을 추가하세요.

eval "$(_POLICY_SENTRY_COMPLETE=bash_source policy_sentry)"

ZSH 완성을 활성화하려면 .zshrc에 다음을 추가하세요.

eval "$(_POLICY_SENTRY_COMPLETE=zsh_source policy_sentry)"

1단계: 템플릿 만들기

  • 리소스 및 액세스 수준에 따라 정책을 생성하려면 먼저 다음 명령으로 템플릿을 만드세요. 그러면 ARN만 채우면 됩니다.
policy_sentry create-template --output-file crud.yml --template-type crud
  • 그러면 다음과 같은 파일이 생성됩니다.
mode: crud
name: ''
# Specify resource ARNs
read:
- ''
write:
- ''
list:
- ''
tagging:
- ''
permissions-management:
- ''
# Actions that do not support resource constraints
wildcard-only:
  single-actions: # standalone actions
  - ''
  # Service-wide - like 's3' or 'ec2'
  service-read:
  - ''
  service-write:
  - ''
  service-list:
  - ''
  service-tagging:
  - ''
  service-permissions-management:
  - ''
# Skip resource constraint requirements by listing actions here.
skip-resource-constraints:
- ''
# Exclude actions from the output by specifying them here. Accepts wildcards, like kms:Delete*
exclude-actions:
- ''
# If this policy needs to include an AssumeRole action
sts:
  assume-role:
    - ''
  assume-role-with-saml:
    - ''
  assume-role-with-web-identity:
    - ''

2단계: ARN 복사/붙여넣기

  • 정책에 포함할 ARN을 복사/붙여넣기 하세요. 사용하지 않는 줄은 삭제하거나 그대로 두어도 됩니다.
mode: crud
read:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
write:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
list:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
tagging:
- 'arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret'
permissions-management:
- 'arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret'

3단계: write-policy 명령

  • 그런 다음 이 명령을 실행하세요.
policy_sentry write-policy --input-file crud.yml
  • 그러면 다음과 같은 결과가 생성됩니다.
도구 다운로드