Amazon Q로 JIT(Just-in-Time) 노드 액세스에 대한 승인 정책 생성
명령줄용 Amazon Q Developer를 사용하면 소프트웨어 개발의 다양한 측면에서 지침과 지원이 제공됩니다. JIT(Just-in-Time) 노드 액세스에 대해 Amazon Q를 사용하면 정책 코드를 생성 및 업데이트하고, 정책 설명을 분석하는 등 승인 정책을 생성할 수 있습니다. 다음 정보는 명령줄용 Amazon Q를 사용하여 승인 정책을 생성하는 방법을 설명합니다.
사용 사례 식별
승인 정책 생성의 첫 번째 단계는 사용 사례를 명확하게 정의하는 것입니다. 예를 들어 조직에서 Environment:Testing
태그가 있는 노드에 대한 액세스 요청을 자동으로 승인할 수 있습니다. 직원 ID가 TEMP
로 시작하는 경우 Environment:Production
태그가 있는 노드에 대한 자동 승인을 명시적으로 거부할 수도 있습니다. Tier:Database
태그가 있는 노드의 경우 두 가지 수준의 수동 승인이 필요할 수 있습니다.
주어진 시나리오에서 한 가지 정책이나 조건이 다른 것보다 우선할 수 있습니다. 따라서 사용 사례 및 선호도에 가장 적합한 문을 결정하려는 정책 동작을 명확하게 정의하는 것이 좋습니다.
개발 환경 설정
승인 정책을 개발하려는 명령줄용 Amazon Q를 설치합니다. 명령줄용 Amazon Q 설치에 대한 자세한 내용은 Amazon Q Developer 사용 설명서의 명령줄용 Amazon Q 설치를 참조하세요.
또한 AWS 설명서를 위해 MCP 서버를 설치하는 것이 좋습니다. 이 MCP 서버는 명령줄용 Amazon Q를 최신 설명서 리소스에 연결합니다. 명령줄용 Amazon Q에서 MCP를 사용하는 방법에 대한 자세한 내용은 Amazon Q Developer 사용 설명서의 Amazon Q Developer에서 MCP 사용을 참조하세요.
AWS 설명서 MCP 서버에 대한 자세한 내용은 AWS 설명서 MCP 서버
아직 하지 않은 경우 AWS CLI을 설치하고 구성합니다. 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.
승인 정책 콘텐츠 개발
사용 사례가 식별되고 환경이 설정되면 정책 콘텐츠를 개발할 준비가 된 것입니다. 사용 사례 및 기본 설정에 따라 사용하는 승인 정책 및 문의 유형이 주로 결정됩니다.
특정 정책을 사용하는 방법을 잘 모르거나 정책의 스키마에 대해 자세히 알아보려면 노드에 대한 승인 정책 생성 및 후속 주제를 참조하세요. 이 주제에서는 정책 평가 방법을 자세히 설명하고 실제 예제 문을 제공합니다.
다음 절차에서는 명령줄용 Amazon Q를 사용하여 승인 정책을 생성하는 방법을 설명합니다.
참고
Amazon Q Developer는 생성형 AI를 사용합니다. 응답을 확인해야 할 수 있습니다. AWS 책임 있는 AI 정책
명령줄용 Amazon Q를 사용하여 승인 정책 생성
-
터미널을 열고 Amazon Q로 세션을 시작합니다.
$ q chat
-
프롬프트를 입력하고 생성하려는 정책 문의 유형을 설명합니다. 예를 들어 앞서 승인 정책 시나리오를 사용하여 다음 프롬프트를 입력할 수 있습니다.
Create a Cedar policy statement that allows a principal to use the “getTokenForInstanceAccess" action for a resource that has a tag key “Environment” and tag value of “Testing”. Use the following example statement for reference to verify the syntax. permit ( principal in AWS::IdentityStore::Group::"e8c17310-e011-7089-d989-10da1EXAMPLE", action == AWS::SSM::Action::"getTokenForInstanceAccess", resource ) when { principal has organization && resource.hasTag("Engineering") && resource.hasTag("Production") && principal.organization == "Platform" }; The Cedar policy statement you create must be valid. Validate the Cedar statement using the AWS documentation provided for just-in-time node access policy statement structure and make sure you abide by the schema.
-
이 예제 프롬프트를 입력하고 다음과 같은 출력이 발생했습니다.
Based on the AWS documentation for Cedar policy statements and the examples provided, I'll create a valid Cedar policy statement that allows a principal to use the "getTokenForInstanceAccess" action for resources with the tag key "Environment" and tag value "Testing". Here's the Cedar policy statement: permit ( principal, action == AWS::SSM::Action::"getTokenForInstanceAccess", resource ) when { resource.hasTag("Environment") && resource.getTag("Environment") == "Testing" }; This policy statement: 1. Uses the permit effect to allow access 2. Applies to any principal (since no specific principal is defined) 3. Specifically targets the "getTokenForInstanceAccess" action 4. Applies to resources that have a tag with key "Environment" and value "Testing" 5. Uses the proper syntax for the condition clause with the hasTag() and getTag() operators The statement follows the Cedar policy language structure as documented in the AWS Systems Manager documentation for just-in-time node access policies.
-
정책 문을 새 Cedar 파일에 붙여 넣어 구문을 검증합니다. Cedar playground
를 사용하여 문을 검증할 수도 있습니다. -
문을 검증한 후 Cedar 파일을 저장합니다.
-
터미널에서 AWS CLI 명령을 실행하고 정책 콘텐츠를 사용하여 SSM 문서를 생성합니다. 프로덕션 환경에서 승인 정책을 사용하기 전에 AWS 계정 및 AWS 리전의 자격 증명 및 노드 하위 집합을 사용하여 승인 정책을 테스트합니다.
참고
자동 승인 정책의 경우 문서 이름은
SSM-JustInTimeAccessAutoApprovalPolicy
여야 합니다. AWS 계정 및 AWS 리전당 1개의 자동 승인 정책만 있을 수 있습니다. 액세스 거부 정책의 경우 문서 이름은SSM-JustInTimeAccessDenyAccessOrgPolicy
여야 합니다. AWS Organizations 조직당 1개의 거부 액세스 정책만 있을 수 있으며, 정책은 Systems Manager의 위임된 관리자 계정에서 생성되어야 합니다. 수동 승인 정책의 명명 제약 조건은 다른 SSM 문서와 동일합니다. 자세한 내용은 CreateDocument를 참조하세요.