AgentCore 런타임에 대한 IAM 권한
다음은 AgentCore 런타임에서 에이전트를 생성하는 데 필요한 IAM 권한과 에이전트가 AgentCore 런타임에서 실행하는 데 필요한 실행 역할 권한입니다. 리소스 기반 정책을 사용하여 런타임 리소스에 대한 액세스를 제어할 수도 있습니다.
리소스 기반 정책을 사용하여 AgentCore 런타임 리소스에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 Amazon Bedrock AgentCore에 대한 리소스 기반 정책을 참조하세요.
주제
Amazon Bedrock AgentCore 사용
Amazon Bedrock AgentCore를 사용하려면 BedrockAgentCoreFullAccess AWS 관리형 정책을 IAM 사용자 또는 IAM 역할에 연결할 수 있습니다. 이 AWS 관리형 정책은 IdP 토큰 확인 없이 호출자가 제공한 사용자 식별자 문자열을 사용하여 워크로드 액세스 토큰을 발급할 수 GetWorkloadAccessTokenForUserId있는를 포함한 광범위한 권한을 부여합니다. 관련 문을 복사하고 리소스를 특정 사용 사례로 제한하여 애플리케이션에 필요한 권한만 있는 사용자 지정 정책을 생성하는 것이 좋습니다. 애플리케이션에 JWT 토큰을 사용할 수 있는 프로덕션 배포의 경우 명시적으로 거부GetWorkloadAccessTokenForUserId하고 만 부여합니다GetWorkloadAccessTokenForJWT. 자세한 내용은 워크로드 액세스 토큰 가져오기를 참조하세요. AgentCore CLI를 사용하려면 추가 권한이 필요합니다.
AgentCore CLI 사용
AgentCore CLI를 사용하려면 다음 IAM 정책을 IAM 사용자 또는 역할에 연결합니다. IAM 권한을 변경하려면 IAM 사용자의 권한 변경을 참조하세요.
중요
AgentCore CLI에서 생성한 IAM 정책은 개발 및 테스트 목적으로 설계되었습니다. 이러한 권한은 신속한 프로토타이핑을 용이하게 하는 광범위한 액세스 권한을 부여하며 프로덕션 환경에는 적합하지 않습니다. 프로덕션 배포의 경우 최소 권한 원칙을 따르고 Amazon Bedrock AgentCore 애플리케이션에 필요한 특정 리소스 및 작업으로만 권한을 제한하는 사용자 지정 IAM 정책을 생성합니다. 전체 IAM 보안 지침은 AgentCore 런타임의 보안 모범 사례를 참조하세요.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IAMRoleManagement", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies" ], "Resource": [ "arn:aws:iam::*:role/*BedrockAgentCore*", "arn:aws:iam::*:role/service-role/*BedrockAgentCore*" ] }, { "Sid": "CodeBuildProjectAccess", "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject", "codebuild:CreateProject", "codebuild:UpdateProject", "codebuild:BatchGetProjects" ], "Resource": [ "arn:aws:codebuild:*:*:project/bedrock-agentcore-*", "arn:aws:codebuild:*:*:build/bedrock-agentcore-*" ] }, { "Sid": "CodeBuildListAccess", "Effect": "Allow", "Action": [ "codebuild:ListProjects" ], "Resource": "*" }, { "Sid": "IAMPassRoleAccess", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AmazonBedrockAgentCore*", "arn:aws:iam::*:role/service-role/AmazonBedrockAgentCore*" ] }, { "Sid": "CloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:GetLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/*", "arn:aws:logs:*:*:log-group:/aws/codebuild/*" ] }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::bedrock-agentcore-*", "arn:aws:s3:::bedrock-agentcore-*/*" ] }, { "Sid": "ECRRepositoryAccess", "Effect": "Allow", "Action": [ "ecr:CreateRepository", "ecr:DescribeRepositories", "ecr:GetRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:ListImages", "ecr:TagResource" ], "Resource": [ "arn:aws:ecr:*:*:repository/bedrock-agentcore-*" ] }, { "Sid": "ECRAuthorizationAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Amazon Bedrock AgentCore 콘솔에 대한 사용자 권한
BedrockAgentCoreFullAccess 정책을 콘솔 역할에 연결합니다. 또한 서비스 콘솔이 실행 역할을 자동으로 생성하도록 하려면 IAM에 대해 다음 권한을 추가합니다.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMRoleAccess", "Effect": "Allow", "Action": ["iam:CreateRole"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"] }, { "Sid": "IAMPolicyAccess", "Effect": "Allow", "Action": ["iam:CreatePolicy"], "Resource": ["arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*"] }, { "Sid": "IAMRolePolicyAccess", "Effect": "Allow", "Action": ["iam:AttachRolePolicy"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"], "Condition": { "ArnLike": { "iam:PolicyARN": "arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*" } } }] }
AgentCore 런타임에서 에이전트를 실행하기 위한 실행 역할
AgentCore 런타임에서 에이전트 또는 도구를 실행하려면 AWS Identity and Access Management 실행 역할이 필요합니다. IAM 역할 생성에 대한 자세한 내용은 IAM 역할 생성을 참조하세요.
Amazon Bedrock AgentCore 직접 배포 실행 역할은 Amazon Bedrock AgentCore가 에이전트를 실행하기 위해 수임하는 IAM 역할입니다. 다음을 바꿉니다.
-
us-east-1사용 중인 AWS 리전으로 -
123456789012AWS 계정 ID를 사용하여 -
에이전트 이름을 가진
agentName입니다. 역할 및 AgentCore 런타임을 생성하기 전에 에이전트 이름을 결정해야 합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": ["logs:DescribeLogGroups"], "Resource": ["arn:aws:logs:us-east-1:123456789012:log-group:*"] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": ["*"] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] }] }
AgentCore 런타임 실행 역할은 에이전트를 실행하기 위해 AgentCore 런타임이 수임하는 IAM 역할입니다. 다음을 바꿉니다.
-
us-east-1사용 중인 AWS 리전으로 -
123456789012AWS 계정 ID를 사용하여 -
에이전트 이름을 가진
agentName입니다. 역할 및 AgentCore 런타임을 생성하기 전에 에이전트 이름을 결정해야 합니다.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": [ "arn:aws:ecr:us-east-1:123456789012:repository/*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "GetAgentAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT", "bedrock-agentcore:GetWorkloadAccessTokenForUserId" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/agentName-*" ] }, {"Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] } ] }
AgentCore 런타임 신뢰 정책
AgentCore 런타임 실행 역할에는 AgentCore 런타임이 역할을 수임하도록 허용하는 다음 신뢰 정책이 포함되어야 합니다.
정책에서 다음을 바꿉니다.
-
us-east-1사용 중인 AWS 리전으로 -
123456789012AWS 계정 ID를 사용하여
AgentCore 런타임 실행 역할에 신뢰 정책을 추가하려면 AWS 관리 콘솔로 이동하여 역할로 이동하고 신뢰 관계 탭을 선택한 다음 신뢰 정책 편집을 선택합니다.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:*" } } } ] }