View a markdown version of this page

AgentCore Gateway에 대한 권한 설정 - Amazon Bedrock AgentCore

AgentCore Gateway에 대한 권한 설정

Amazon Bedrock AgentCore Gateway 및 해당 기능을 사용하려면 다음 권한을 고려해야 합니다.

  1. 게이트웨이 빌더/사용자 권한 - 게이트웨이 빌더 또는 사용자에게 제공된 권한으로 AgentCore 게이트웨이를 생성, 관리 및 또는 사용할 수 있습니다.

  2. 게이트웨이 서비스 역할 권한 - 게이트웨이에 대해 생성할 서비스 역할에 제공되는 권한입니다. 이러한 권한을 통해 Amazon Bedrock AgentCore 서비스는 게이트웨이를 호출하는 자격 증명을 대신하여 작업을 수행할 수 있습니다.

  3. 리소스 기반 권한 - 게이트웨이 서비스 역할이 리소스에 액세스할 수 있도록 리소스에 연결된 권한입니다. 리소스 기반 정책에 게이트웨이 서비스 역할의 Amazon 리소스 이름(ARN)을 Principal 로 포함합니다.

  4. 게이트웨이 리소스 기반 정책 - 게이트웨이 리소스에 직접 연결된 정책을 통해 호출할 수 있는 보안 주체를 제어합니다. 자세한 내용은 Amazon Bedrock AgentCore에 대한 리소스 기반 정책을 참조하세요.

참고

사용자 지정 권한을 설정하지 않으려면 다음 옵션을 사용하여 쉽게 설정할 수 있습니다. * BedrockAgentCoreFullAccess를 IAM 자격 증명에 연결하여 게이트웨이를 생성, 관리 및 호출할 수 있습니다. * AWS Management Console 또는 AgentCore CLI를 사용하여 서비스 역할이 액세스하도록 허용하는 적절한 리소스 기반 정책을 사용하여 적절한 권한과 게이트웨이 대상이 있는 AgentCore 게이트웨이 서비스 역할을 생성합니다.

주제 영역을 선택하여 자세히 알아보세요.

게이트웨이 빌더 및 사용자 권한

자격 증명이 게이트웨이를 생성, 관리 또는 사용할 수 있으려면 Amazon Bedrock AgentCore 관련 작업을 수행할 수 있도록 자격 증명 기반 정책을 IAM 자격 증명에 연결해야 합니다. 포괄적인 권한을 위해 BedrockAgentCoreFullAccess 관리형 정책을 사용할 수 있습니다.

보안 및 제어를 강화하기 위해 전체 액세스 정책의 권한을 줄여 사용자 지정 정책을 생성할 수 있습니다. 예를 들어 다음 정책은 자격 증명이 AgentCore Gateway와 관련된 작업을 수행할 수 있도록 허용하지만 AgentCore 런타임 또는 AgentCore 브라우저와 같은 다른 AgentCore 서비스는 수행할 수 없습니다.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:*Gateway*", "bedrock-agentcore:*WorkloadIdentity", "bedrock-agentcore:*CredentialProvider", "bedrock-agentcore:*Token*", "bedrock-agentcore:*Access*" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
다음 사용자 지정 정책은 게이트웨이 및 게이트웨이 대상에 대한 읽기 액세스만 허용하는 보다 제한적인 정책입니다.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }

게이트웨이 액세스 권한(인바운드 권한 부여)

게이트웨이 관련 권한 외에도 호출 중에 자격 증명이 게이트웨이에 액세스할 수 있도록 권한을 구성해야 합니다. 인바운드 권한 부여를 설정할 때 이러한 권한을 구성합니다.

AgentCore Gateway 서비스 역할 권한

게이트웨이를 생성할 때는 IAM 역할을 수임하고 IAM 역할을 대신하여 AWS 리소스 및 외부 서비스에 액세스할 수 있는 권한이 있는 서비스 역할이 필요합니다. 다음과 같은 방법으로 서비스 역할을 생성할 수 있습니다.

  • AWS 관리 콘솔 또는 AgentCore CLI를 통해 게이트웨이를 생성하는 경우 AgentCore가 필요한 권한을 가진 서비스 역할을 자동으로 생성하도록 선택할 수 있습니다. 이 방법을 선호하는 경우이 사전 조건을 건너뛸 수 있습니다.

  • 사용자 지정 향상을 위해 자체 서비스 역할을 생성하려면이 주제에 설명된 권한으로 역할을 구성해야 합니다. 서비스 역할을 생성하고 여기에 권한을 연결하는 방법을 알아보려면 AWS 서비스에 권한을 위임하는 역할 생성을 참조하세요.

서비스 역할에 필요한 권한은 다음 주제에 나와 있습니다.

신뢰 권한

서비스 역할에는 AgentCore 서비스가 IAM 자격 증명을 수임하고 이를 대신하여 작업을 수행할 수 있도록 허용하는 신뢰 정책이 연결되어 있어야 합니다.

다음은 사용할 수 있는 신뢰 정책의 예입니다.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "GatewayAssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-name-*" } } } ] }
참고

게이트웨이 ARN을 생성하기 전에 알 수 없으므로 서비스 역할을 처음 생성할 때 Condition 필드를 생략할 수 있습니다. 게이트웨이를 생성한 후 정책을 모범 보안 사례로 Condition 다시 추가하고 * aws:SourceAccount 조건 키 값을 게이트웨이가 속한 계정의 ID로 바꿉니다. * aws:SourceArn 조건 키를 게이트웨이의 ARN으로 바꿉니다.

아웃바운드 권한 부여 권한

게이트웨이 대상에 사용하는 아웃바운드 권한 부여 유형에 따라 서비스 역할에 대상을 호출할 수 있는 권한을 추가해야 합니다. 이러한 권한을 통해 게이트웨이 서비스 역할은 대상을 호출하기 위한 권한 부여 자격 증명을 검색할 수 있습니다. 아웃바운드 권한 부여를 설정하는 과정에서이 작업을 수행할 수 있습니다.

AWS 리소스에 액세스할 수 있는 권한

게이트웨이 설정 또는 게이트웨이에 추가하도록 선택한 대상에 따라 AWS 리소스에 액세스할 수 있도록 게이트웨이 서비스 역할에 권한을 추가해야 할 수 있습니다. 다음 주제에서는 게이트웨이 서비스 역할이 액세스해야 할 수 있는 일부 리소스를 다룹니다.

Lambda 대상을 게이트웨이에 연결하는 경우 다음을 수행하여 함수를 호출할 수 있도록 AgentCore Gateway 서비스 역할에 대한 권한을 추가해야 합니다.

  • Lambda 함수 리소스에 대한 lambda:InvokeFunction 작업을 허용하는 자격 증명 기반 정책을 AgentCore Gateway 서비스 역할에 연결합니다.

  • ( 함수가 게이트웨이 서비스 역할과 다른 계정에 있는 경우) 게이트웨이 서비스 역할 보안 주체가 Lambda 함수 리소스에 대한 lambda:InvokeFunction 작업을 수행할 수 있도록 허용하는 리소스 기반 정책을 Lambda 함수에 연결합니다.

주제를 선택하여 권한을 설정하는 방법을 알아봅니다.

주제

    ===== 자격 증명 기반 정책을 게이트웨이 서비스 역할에 연결

    게이트웨이 서비스 역할이 Lambda 대상에 액세스하도록 허용하려면 사용 사례와 관련된 IAM 자격 증명 권한 추가 및 제거의 주제를 선택하고 단계에 따라 AgentCore Gateway 서비스 역할에 다음 자격 증명 기반 정책을 연결합니다. https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html

    { "Version": "2012-10-17", "Statement": [{ "Sid": "AmazonBedrockAgentCoreGatewayLambdaProd", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:FunctionName" ] }] }

    Resource 필드의 ARN을 Lambda 함수 게이트웨이 대상의 ARN으로 바꿉니다. 게이트웨이에 Lambda 대상이 여러 개 있는 경우 각 함수의 ARN을 Resource 목록에 추가할 수 있습니다.

    ===== (함수가 다른 계정에 있는 경우) Lambda 함수에 리소스 기반 정책 연결

    Lambda 함수 대상이 게이트웨이 서비스 역할과 다른 계정에 있는 경우 게이트웨이 서비스 역할이 액세스할 수 있도록 리소스 기반 정책을 연결해야 합니다. 다음은 사용할 수 있는 정책 예제입니다.

    { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAllowGatewayServiceRoleMyFunction", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyGatewayExecutionRole" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" } ] }

    다음 필드의 값을 바꿉니다.

    • AWS - 게이트웨이 서비스 역할의 ARN을 사용합니다.

    • Resource - Lambda 함수의 ARN을 사용합니다.

      게이트웨이 서비스 역할이 함수에 액세스할 수 있도록 허용하는 리소스 기반 정책을 Lambda 함수에 연결하는 방법을 알아보려면 다음 방법 중 하나를 선택합니다.
    Console
    1. ====== AWS 관리 콘솔에서 Lambda 함수에 리소스 기반 정책을 연결하려면

    2. Lambda에서 리소스 기반 IAM 정책 보기의 콘솔 탭에 있는 단계를 따릅니다. https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html

    3. 리소스 기반 정책 설명 섹션에서 권한 추가를 선택합니다.

    4. AWS 계정을 선택하고 다음 필드를 작성합니다.

      • 문 ID - 게이트웨이 서비스 역할이 함수에 액세스할 수 있는 권한을 제공하는 문에 대한 고유 식별자입니다.

      • 보안 주체 - 게이트웨이 서비스 역할의 ARN을 지정합니다.

      • 작업 -를 선택합니다lambda:InvokeFunction.

    CLI
    1. AWS CLI를 사용하여 Lambda 함수에 리소스 기반 정책을 연결하려면 AWS 서비스에 대한 Lambda 함수 액세스 권한 부여의 단계를 따르고 게이트웨이 서비스 역할을 로 지정합니다principal.

      터미널에서 다음 코드를 실행하여 게이트웨이 서비스 역할이 us-east-1의 함수에 액세스할 수 있는 권한을 추가할 수 있습니다.

      aws lambda add-permission \ --function-name "MyFunction" \ --statement-id "GatewayInvoke" \ --action "lambda:InvokeFunction" \ --principal "arn:aws:iam::123456789012:role/MyGatewayServiceRole" --region us-east-1

    Amazon S3 URI의 게이트웨이 대상 도구 정의를 포함하려는 경우 게이트웨이 서비스 역할이 버킷에 액세스할 수 있는 권한을 포함해야 합니다. AmazonS3ReadOnlyAccess 정책은 서비스 역할에 연결할 수 있는 정책의 예입니다. 보안을 강화Resource하기 위해의 범위를 S3 위치로 지정할 수 있습니다.

    Smithy 대상을 추가하려는 경우 게이트웨이 서비스 역할에 대한 권한을 추가하여 Smithy 모델이 참조하는 AWS 서비스에 액세스해야 합니다. 서비스 역할에 연결해야 하는 권한을 확인하려면 해당 서비스의 설명서를 참조하세요.

    사용 사례와 관련된 IAM 자격 증명 권한 추가 및 제거에서 주제를 선택하고 단계에 따라 서비스 역할에 권한을 추가할 수 있습니다.

    예를 들어 Smithy 모델 대상이 DynamoDB 테이블에 액세스하는 경우 다음 정책을 연결하여 서비스 역할이 테이블에서 DynamoDB 작업을 수행하도록 허용할 수 있습니다.

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:*:*:table/*" } ] }

    게이트웨이 권한 모범 사례

    최소 권한 원칙을 따릅니다.
    • 게이트웨이가 작동하는 데 필요한 권한만 부여

    • 가능하면 와일드카드 대신 특정 리소스 ARNs 사용

    • 정기적으로 권한 검토 및 감사

    함수별로 역할 구분
    • 관리 및 실행에 다른 역할 사용

    • 용도가 다른 서로 다른 게이트웨이에 대해 별도의 역할 생성

    보안 자격 증명 스토리지
    • AWS Secrets Manager에 API 키 및 OAuth 자격 증명 저장

    • 자격 증명을 정기적으로 교체

    모니터링 및 감사
    • 게이트웨이 작업에 대한 CloudTrail 로깅 활성화

    • 액세스 패턴 및 권한 사용량을 정기적으로 검토

    정책의 사용 조건
    • 권한을 사용할 수 있는 시기와 방법을 제한하는 조건 추가

    • 관리 작업에 소스 IP 제한 사용 고려