AgentCore VPC 설정과 함께 IAM 조건 키 사용
VPC 설정에 Amazon Bedrock AgentCore별 조건 키를 사용하여 AgentCore 리소스에 대한 권한을 보다 정확하게 제어할 수 있습니다. 예를 들어 조직의 모든 런타임을 VPC에 연결하거나 게이트웨이 대상이 승인된 서브넷에 배포되도록 해야 합니다. 사용자가 사용할 수 있는 서브넷과 보안 그룹을 지정합니다.
AgentCore는 IAM 정책에서 다음과 같은 조건 키를 지원합니다.
-
bedrock-agentcore:subnets - 하나 이상의 서브넷을 허용하거나 거부합니다.
-
bedrock-agentcore:securityGroups – 하나 이상의 보안 그룹을 허용하거나 거부합니다.
다음 AgentCore 컨트롤 플레인 API 작업은 이러한 조건 키를 지원합니다.
-
AgentCore 런타임 및 내장 도구 -
CreateAgentRuntime,CreateCodeInterpreter,UpdateAgentRuntime및CreateBrowser -
AgentCore Gateway -
CreateGatewayTarget및UpdateGatewayTarget(대상에 대한 관리형 VPC 리소스를 구성하는 경우)
IAM 정책에서 조건 키를 사용하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 IAM JSON 정책 요소: 조건을 참조하세요. 게이트웨이 조건 키에 대한 자세한 내용은 Amazon Bedrock AgentCore Gateway에서 IAM 조건 키 사용을 참조하세요.
VPC 설정에 대한 조건 키가 있는 정책의 예제
다음 예제에서는 VPC 설정에 조건 키를 사용하는 방법을 보여줍니다. 원하는 제한이 있는 정책 설명을 생성한 다음 정책 설명을 대상 사용자 또는 역할에 연결합니다.
사용자가 VPC에 연결된 런타임 및 도구만 배포하도록 요구
모든 사용자가 VPC에 연결된 AgentCore 런타임 및 기본 제공 도구만 배포하도록 하려면 유효한 서브넷 및 보안 그룹이 포함되지 않은 런타임 및 도구 생성 및 업데이트 작업을 거부합니다.
{ "Sid": "EnforceVPCRuntime", "Action": [ "bedrock-agentcore:CreateAgentRuntime", "bedrock-agentcore:UpdateAgentRuntime", "bedrock-agentcore:CreateCodeInterpreter", "bedrock-agentcore:CreateBrowser" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "bedrock-agentcore:subnets": "true", "bedrock-agentcore:securityGroups": "true" } } }
사용자가 특정 서브넷 및 보안 그룹만 사용하도록 적용
사용자가 승인된 특정 서브넷 및 보안 그룹만 사용하도록 하려면 StringNotEquals에서 ForAnyValue 집합 연산자를 사용합니다. 요청의 컨텍스트 키 값 중 하나가 정책의 컨텍스트 키 값과 일치하지 않으면 조건이 true를 반환하여 승인되지 않은 값이 포함된 요청을 거부합니다. 다음 예제에서는 사용자가 서브넷subnet-0123456789abcdef1에 대해 subnet-0123456789abcdef0 및 , 보안 그룹에 sg-0123456789abcdef1 대해서만 sg-0123456789abcdef0 및를 사용할 수 있도록 적용합니다.
[ { "Sid": "DenyIfNotSpecificSubnets", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateAgentRuntime", "bedrock-agentcore:UpdateAgentRuntime", "bedrock-agentcore:CreateCodeInterpreter", "bedrock-agentcore:CreateBrowser" ], "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "bedrock-agentcore:subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"] } } }, { "Sid": "DenyIfNotSpecificSecurityGroups", "Effect": "Deny", "Action": [ "bedrock-agentcore:CreateAgentRuntime", "bedrock-agentcore:UpdateAgentRuntime", "bedrock-agentcore:CreateCodeInterpreter", "bedrock-agentcore:CreateBrowser" ], "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "bedrock-agentcore:securityGroups": ["sg-0123456789abcdef0", "sg-0123456789abcdef1"] } } } ]
특정 서브넷 또는 보안 그룹에 대한 사용자 액세스 거부
특정 서브넷 및 보안 그룹에 대한 사용자 액세스를 거부하려면 StringEquals에서 ForAnyValue 집합 연산자를 사용합니다. 요청의 컨텍스트 키 값 중 하나가 정책의 컨텍스트 키 값 중 하나와 일치하는 경우 조건은 true를 반환합니다. 다음 예시에서는 서브넷subnet-0123456789abcdef0에 subnet-0123456789abcdef1 대한 및 , 보안 그룹에 대한 sg-0123456789abcdef0 및 sg-0123456789abcdef1에 대한 사용자 액세스를 거부합니다.
[ { "Sid": "EnforceOutOfSubnet", "Action": [ "bedrock-agentcore:CreateAgentRuntime", "bedrock-agentcore:UpdateAgentRuntime", "bedrock-agentcore:CreateCodeInterpreter", "bedrock-agentcore:CreateBrowser" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "bedrock-agentcore:subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"] } } }, { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "bedrock-agentcore:CreateAgentRuntime", "bedrock-agentcore:UpdateAgentRuntime", "bedrock-agentcore:CreateCodeInterpreter", "bedrock-agentcore:CreateBrowser" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "bedrock-agentcore:securityGroups": ["sg-0123456789abcdef0", "sg-0123456789abcdef1"] } } } ]