Amazon Bedrock에서 Amazon Bedrock Flows에 대한 서비스 역할 생성 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Bedrock에서 Amazon Bedrock Flows에 대한 서비스 역할 생성

Amazon Bedrock에서 흐름을 생성하고 관리하려면이 페이지에 설명된 필수 권한이 있는 서비스 역할을 사용해야 합니다. Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하거나 직접 사용자 지정한 역할을 사용할 수 있습니다.

참고

Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하는 경우, 흐름에 노드를 추가하고 흐름을 저장하면 동적으로 권한이 연결됩니다. 그러나 노드를 제거하면 권한이 삭제되지 않으므로 더 이상 필요하지 않은 권한을 삭제해야 합니다. 사용자를 위해 생성된 역할에 대한 권한을 관리하려면 IAM 사용 설명서의 역할 수정 단계를 따르세요.

Amazon Bedrock Flows에 대한 사용자 지정 서비스 역할을 생성하려면 AWS 서비스에 권한을 위임하는 역할 생성의 단계에 따라 IAM 역할을 생성합니다. 그런 다음, 역할에 다음과 같은 권한을 연결합니다.

  • 신뢰 정책

  • ID 기반 권한:

    • 흐름에서 사용할 Amazon Bedrock 기본 모델에 대한 액세스입니다. 흐름에 사용되는 각 모델을 Resource 목록에 추가합니다.

    • 프로비저닝된 처리량을 사용하여 모델을 간접적으로 호출하는 경우, 프로비저닝된 모델에 액세스하고 간접적으로 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 Resource 목록에 추가합니다.

    • 사용자 지정 모델을 간접적으로 호출하는 경우, 사용자 지정 모델에 액세스하고 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 Resource 목록에 추가합니다.

    • 흐름에 추가하는 노드를 기반으로 하는 권한:

      • 프롬프트 관리의 프롬프트를 사용하는 프롬프트 노드를 포함하는 경우 프롬프트에 액세스하려면 권한이 필요합니다. 흐름에 사용되는 각 프롬프트를 Resource 목록에 추가합니다.

      • 지식 기반 노드를 포함하는 경우 지식 기반을 쿼리할 수 있는 권한이 필요합니다. 흐름에서 쿼리된 각 지식 기반을 Resource 목록에 추가합니다.

      • 에이전트 노드를 포함하는 경우 에이전트의 별칭을 호출할 권한이 필요합니다. 흐름에서 호출된 각 에이전트를 Resource 목록에 추가합니다.

      • S3 검색 노드를 포함하는 경우 데이터를 검색할 Amazon S3 버킷에 액세스할 수 있는 권한이 필요합니다. 데이터가 검색되는 각 버킷을 Resource 목록에 추가합니다.

      • S3 스토리지 노드를 포함하는 경우 출력 데이터가 저장될 Amazon S3 버킷에 쓸 수 있는 권한이 필요합니다. 데이터가 기록되는 각 버킷을 Resource 목록에 추가합니다.

      • 지식 기반 노드 또는 프롬프트 노드에 가드레일을 포함하는 경우 흐름에 가드레일을 적용할 권한이 필요합니다. 흐름에 사용되는 각 가드레일을 Resource 목록에 추가합니다.

      • Lambda 노드를 포함하는 경우 Lambda 함수를 호출할 권한이 필요합니다. 호출해야 하는 각 Lambda 함수를 Resource 목록에 추가합니다.

      • Amazon Lex 노드를 포함하는 경우 Amazon Lex 봇을 사용하려면 권한이 필요합니다. Resource 목록에 사용해야 하는 각 봇 별칭을 추가합니다.

      • 흐름에서 호출된 리소스를 암호화한 경우 키를 복호화할 수 있는 권한이 필요합니다. 각 키를 Resource 목록에 추가합니다.

  • 흐름을 암호화하는 경우 흐름을 암호화하는 데 사용하는 KMS 키에 키 정책도 연결해야 합니다.

참고

최근에 구현된 변경 사항은 다음과 같습니다.

  • 이전에 AWS Lambda 는 및 Amazon Lex 리소스가 Amazon Bedrock 서비스 보안 주체를 사용하여 호출되었습니다. 이 동작은 2024-11-22 이후에 생성된 흐름에 대해 변경되고 있으며 Amazon Bedrock Flows 서비스 역할은 AWS Lambda 및 Amazon Lex 리소스를 호출하는 데 사용됩니다. 2024-11-22 이전에 이러한 리소스 중 하나를 사용하는 흐름을 생성한 경우 AWS Lambda 및 Amazon Lex 권한으로 Amazon Bedrock Flows 서비스 역할을 업데이트해야 합니다.

  • 이전에는 bedrock:GetPrompt 작업을 사용하여 프롬프트 관리 리소스가 렌더링되었습니다. 이 동작은 2024-11-22 이후에 생성된 흐름에 대해 변경되며 bedrock:RenderPrompt 작업은 프롬프트 리소스를 렌더링하는 데 사용됩니다. 2024-11-22 이전에 프롬프트 리소스를 사용하는 흐름을 생성한 경우 Amazon Bedrock Flows 서비스 역할을 bedrock:RenderPrompt 권한으로 업데이트해야 합니다.

Amazon Bedrock이 콘솔에서 자동으로 생성한 서비스 역할을 사용하는 경우 흐름을 저장할 때 Amazon Bedrock이 수정된 권한을 동적으로 연결합니다.

신뢰 관계

Amazon Bedrock이이 역할을 수임하고 흐름을 관리할 수 있도록 다음 신뢰 정책을 흐름 실행 역할에 연결합니다. 필요에 따라 을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키(Amazon Bedrock의 조건 키AWS 전역 조건 컨텍스트 키 참조)가 Condition 필드에 포함되어 있습니다.

참고

*를 생성한 후 흐름 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 목록에 추가합니다.

    • Lambda 노드를 포함하는 경우 Lambda 함수를 호출할 권한이 필요합니다. 호출해야 하는 각 Lambda 함수를 Resource 목록에 추가합니다.

    • Amazon Lex 노드를 포함하는 경우 Amazon Lex 봇을 사용하려면 권한이 필요합니다. Resource 목록에 사용해야 하는 각 봇 별칭을 추가합니다.

    • 흐름에서 호출된 리소스를 암호화한 경우 키를 복호화할 수 있는 권한이 필요합니다. 각 키를 Resource 목록에 추가합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeModel", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}::foundation-model/${model-id}" ] }, { "Sid": "InvokeProvisionedThroughput", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:provisioned-model/${model-id}" ] }, { "Sid": "InvokeCustomModel", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:custom-model/${model-id}" ] }, { "Sid": "UsePromptFromPromptManagement", "Effect": "Allow", "Action": [ "bedrock:RenderPrompt" ], "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": "GuardrailPermissions", "Effect": "Allow", "Action": "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:${Partition}:bedrock:${Region}:${Account}:guardrail/${GuardrailId}" ] }, { "Sid": "LambdaPermissions", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:${region}:${account-id}:function:${function-name}" ] }, { "Sid": "AmazonLexPermissions", "Effect": "Allow", "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:${region}:${account-id}:bot-alias/${bot-id}/${bot-alias-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}" } } } ] }