Amazon Bedrock에서 Amazon Bedrock Prompt Flows에 대한 서비스 역할 생성
Amazon Bedrock에서 프롬프트 흐름을 만들고 관리하려면 이 페이지에 설명된 필수 권한이 있는 서비스 역할을 사용해야 합니다. Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하거나 직접 사용자 지정한 역할을 사용할 수 있습니다.
참고
Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하는 경우, 흐름에 노드를 추가하고 흐름을 저장하면 동적으로 권한이 연결됩니다. 그러나 노드를 제거하면 권한이 삭제되지 않으므로 더 이상 필요하지 않은 권한을 삭제해야 합니다. 사용자를 위해 생성된 역할에 대한 권한을 관리하려면 IAM 사용 설명서의 역할 수정 단계를 따르세요.
Amazon Bedrock Prompt Flows에 대한 사용자 지정 서비스 역할을 만들려면 AWS 서비스에 대한 권한을 위임할 역할 생성의 단계에 따라 IAM 역할을 만듭니다. 그런 다음, 역할에 다음과 같은 권한을 연결합니다.
-
신뢰 정책
-
ID 기반 권한:
-
프롬프트 흐름에서 사용할 Amazon Bedrock 기본 모델에 대한 액세스 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
프로비저닝된 처리량을 사용하여 모델을 간접적으로 호출하는 경우, 프로비저닝된 모델에 액세스하고 간접적으로 호출할 수 있는 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
사용자 지정 모델을 간접적으로 호출하는 경우, 사용자 지정 모델에 액세스하고 호출할 수 있는 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
흐름에 추가하는 노드를 기반으로 하는 권한:
-
프롬프트 관리의 프롬프트를 사용하는 프롬프트 노드를 포함하는 경우, 프롬프트에 액세스할 수 있는 권한. 프롬프트 흐름에 사용되는 각 프롬프트를
Resource
목록에 추가합니다. -
지식 기반 노드를 포함하는 경우, 지식 기반을 쿼리할 수 있는 권한. 프롬프트 흐름에서 쿼리된 각 지식 기반을
Resource
목록에 추가합니다. -
에이전트 노드를 포함하는 경우, 에이전트의 별칭을 간접적으로 호출할 수 있는 권한. 프롬프트 흐름에서 간접적으로 호출된 각 에이전트를
Resource
목록에 추가합니다. -
S3 검색 노드를 포함하는 경우, 데이터를 검색할 Amazon S3 버킷에 액세스할 수 있는 권한. 데이터가 검색되는 각 버킷을
Resource
목록에 추가합니다. -
S3 스토리지 노드를 포함하는 경우, 출력 데이터가 저장될 Amazon S3 버킷에 쓸 수 있는 권한. 데이터가 기록되는 각 버킷을
Resource
목록에 추가합니다. -
프롬프트 흐름에서 간접적으로 호출된 리소스를 암호화한 경우, 키를 복호화할 수 있는 권한. 각 키를
Resource
목록에 추가합니다.
-
-
또한 다음과 같은 리소스 기반 정책을 연결해야 할 수도 있습니다.
-
Lambda 함수 노드를 포함하는 경우, 프롬프트 흐름이 간접적으로 호출할 수 있는 Lambda 함수에 대한 리소스 기반 권한. 이를 통해 서비스 역할이 함수에 액세스할 수 있는 권한을 제공할 수 있습니다. 자세한 내용은 Amazon Bedrock이 작업 그룹 Lambda 함수를 간접적으로 호출하도록 허용하는 리소스 기반 정책 단원을 참조하십시오.
-
Amazon Lex 노드를 포함하는 경우, 프롬프트 흐름이 간접적으로 호출할 수 있는 Amazon Lex 봇에 대한 리소스 기반 권한. 이를 통해 서비스 역할이 Amazon Lex 봇에 액세스할 수 있는 권한을 제공할 수 있습니다. 자세한 내용은 Resource-based policy examples for Amazon Lex를 참조하세요.
-
프롬프트 흐름을 암호화하는 경우, 프롬프트 흐름을 암호화하는 데 사용할 KMS 키에 키 정책을 연결합니다.
신뢰 관계
Amazon Bedrock이 이 역할을 수임하고 프롬프트 흐름을 관리할 수 있도록 다음 신뢰 정책을 프롬프트 흐름 실행 역할에 연결합니다. 필요에 따라 값
을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키 및 AWS 전역 조건 컨텍스트 키 참조)가 Condition
필드에 포함되어 있습니다.
참고
프롬프트 흐름 ID를 생성한 후 *
를 프롬프트 흐름 ID로 바꾸는 것이 좋습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
FlowsTrustBedrock
", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${account-id}
" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/*
" } } } ] }
흐름 서비스 역할에 대한 ID 기반 권한입니다.
다음 정책을 연결하여 서비스 역할에 대한 권한을 제공하고 필요에 따라 값
을 바꿉니다. 정책에는 다음과 같은 설명이 포함되어 있습니다. 사용 사례에 해당되지 않는 설명은 생략합니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키 및 AWS 전역 조건 컨텍스트 키 참조)가 Condition
필드에 포함되어 있습니다.
-
프롬프트 흐름에서 사용할 Amazon Bedrock 기본 모델에 대한 액세스 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
프로비저닝된 처리량을 사용하여 모델을 간접적으로 호출하는 경우, 프로비저닝된 모델에 액세스하고 간접적으로 호출할 수 있는 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
사용자 지정 모델을 간접적으로 호출하는 경우, 사용자 지정 모델에 액세스하고 호출할 수 있는 권한. 프롬프트 흐름에 사용되는 각 모델을
Resource
목록에 추가합니다. -
흐름에 추가하는 노드를 기반으로 하는 권한:
-
프롬프트 관리의 프롬프트를 사용하는 프롬프트 노드를 포함하는 경우, 프롬프트에 액세스할 수 있는 권한. 프롬프트 흐름에 사용되는 각 프롬프트를
Resource
목록에 추가합니다. -
지식 기반 노드를 포함하는 경우, 지식 기반을 쿼리할 수 있는 권한. 프롬프트 흐름에서 쿼리된 각 지식 기반을
Resource
목록에 추가합니다. -
에이전트 노드를 포함하는 경우, 에이전트의 별칭을 간접적으로 호출할 수 있는 권한. 프롬프트 흐름에서 간접적으로 호출된 각 에이전트를
Resource
목록에 추가합니다. -
S3 검색 노드를 포함하는 경우, 데이터를 검색할 Amazon S3 버킷에 액세스할 수 있는 권한. 데이터가 검색되는 각 버킷을
Resource
목록에 추가합니다. -
S3 스토리지 노드를 포함하는 경우, 출력 데이터가 저장될 Amazon S3 버킷에 쓸 수 있는 권한. 데이터가 기록되는 각 버킷을
Resource
목록에 추가합니다. -
프롬프트 흐름에서 간접적으로 호출된 리소스를 암호화한 경우, 키를 복호화할 수 있는 권한. 각 키를
Resource
목록에 추가합니다.
-
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
InvokeModel
", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}
::foundation-model/${model-id}
" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:provisioned-model/${model-id}
" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:custom-model/${model-id}
" ] }, { "Sid": "UsePromptManagement
", "Effect": "Allow", "Action": [ "bedrock:GetPrompt" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:prompt/${prompt-id}
" ] }, { "Sid": "QueryKnowledgeBase
", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:knowledge-base/knowledge-base-id
" ] }, { "Sid": "InvokeAgent
", "Effect": "Allow", "Action": [ "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:${region}
:${account-id}
:agent-alias/${agent-alias-id}
" ] }, { "Sid": "AccessS3Bucket
", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}
/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } }, { "Sid": "WriteToS3Bucket
", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}
", "arn:aws:s3:::${bucket-name}
/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } }, { "Sid": "KMSPermissions
", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${region}
:${account-id}
:key/${key-id}
" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}
" } } } ] }
프롬프트 흐름에 대한 리소스 기반 정책
프롬프트 흐름에 Lambda 함수 노드 또는 Amazon Lex 노드를 포함하는 경우, 각 리소스에 다음 정책을 연결하여 Amazon Bedrock이 프롬프트 흐름을 간접적으로 호출할 때 흐름에 액세스할 수 있는 권한을 제공해야 합니다.
주제
프롬프트 흐름을 간접적으로 호출할 때 Amazon Bedrock이 Lambda 함수를 간접적으로 호출하도록 허용하는 리소스 기반 정책
Lambda에 리소스 기반 정책 사용의 단계에 따라, 다음 리소스 기반 정책을 Lambda 함수에 연결하여 Amazon Bedrock이 프롬프트 흐름을 위해 Lambda 함수에 액세스하도록 허용하고 필요에 따라 값
을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키 및 AWS 전역 조건 컨텍스트 키 참조)가 Condition
필드에 포함되어 있습니다.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowBedrockToAccessLambdaFunction", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:
${region}
:${account-id}
:function:${function-name}
", "Condition": { "StringEquals": { "AWS:SourceAccount": "${account-id}
" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/${flow-id}
" } } }] }
Amazon Bedrock이 Amazon Lex 봇을 직접적으로 호출하도록 허용하는 리소스 기반 정책
Resource-based policy examples for Amazon Lex의 단계에 따라, Amazon Lex 봇에 다음 리소스 기반 정책을 연결하여 Amazon Bedrock이 프롬프트 흐름에 정책을 직접 호출하도록 허용하고 필요에 따라 값
을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키 및 AWS 전역 조건 컨텍스트 키 참조)가 Condition
필드에 포함되어 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockToAccessLexBot", "Effect": "Allow", "Principal": { "Service": [ "bedrock.amazonaws.com" ] }, "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:
${region}
:${account-id}
:bot-alias/${bot-id}
/${bot-alias-id}
" ], "Condition": { "StringEquals": { "AWS:SourceAccount":${account-id}
}, "ArnEquals": { "AWS:SourceArn": "arn:aws:bedrock:${region}
:${account-id}
:flow/${flow-id}
" } } } ] }
Amazon Bedrock이 흐름을 암호화 및 복호화할 수 있도록 허용하는 키 정책
키 정책 생성의 단계에 따라, 다음 키 정책을 KMS 키에 연결하여 Amazon Bedrock이 키로 흐름을 암호화 및 복호화할 수 있도록 허용하고 필요에 따라 값
을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키 및 AWS 전역 조건 컨텍스트 키 참조)가 Condition
필드에 포함되어 있습니다.
{ "Sid": "EncryptFlowKMS", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:
${partition}
:bedrock:${region}
:${account-id}
:flow/${flow-id}
" } } }