View a markdown version of this page

모델 추론 요청에서 특정 가드레일 사용 강제 적용 - Amazon Bedrock

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

모델 추론 요청에서 특정 가드레일 사용 강제 적용

IAM 정책에 bedrock:GuardrailIdentifier 조건 키를 포함하여 모델 추론에 특정 가드레일을 사용하도록 강제 적용할 수 있습니다. 이렇게 하면 IAM 정책에 구성된 가드레일이 포함되지 않은 추론 API 요청을 거부할 수 있습니다.

다음 추론 API에 강제 적용할 수 있습니다.

다음 예제는 bedrock:GuardrailIdentifier 조건 키를 사용할 수 있는 몇 가지 방법입니다.

예제 1: 특정 가드레일과 숫자 버전 사용 강제 적용

다음 정책을 사용하여 모델 추론 중에 특정 가드레일(guardrail-id) 및 해당 숫자 버전 1의 사용을 강제 적용합니다.

명시적 거부는 사용자에게 있을 수 있는 다른 권한에 관계없이 다른 GuardrailIdentifier 및 가드레일 버전으로 나열된 작업을 사용자 요청이 직접 호출하지 못하도록 합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
예제 2: 특정 가드레일과 해당 초안 버전 사용 강제 적용

다음 정책을 사용하여 모델 추론 중에 특정 가드레일(guardrail-id) 및 해당 초안 버전을 사용하도록 강제 적용합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
예제 3: 특정 가드레일 및 숫자 버전 사용 강제 적용

다음 정책을 사용하여 모델 추론 중에 특정 가드레일(guardrail-id) 및 해당 숫자 버전을 사용하도록 강제 적용합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
예제 4: 특정 가드레일 및 해당 버전 사용 강제 적용

다음 정책을 사용하여 모델 추론 중에 특정 가드레일(guardrail-id) 및 해당 숫자 버전(초안 버전 포함)의 사용을 강제 적용합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
예제 5: 특정 가드레일 및 버전 페어 사용 강제 적용

다음 정책을 사용하여 가드레일 세트와 해당 버전에 대해서만 모델 추론을 허용합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id:1", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id:2", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id:1", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id:2", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } ] }
제한 사항

사용자가 bedrock:GuardrailIdentifier 조건 키를 사용하여 구성된 특정 가드레일이 있는 IAM 역할을 수임하는 경우:

  • 사용자는 자신을 대신하여 InvokeModel을 직접 호출하는 RetrieveAndGenerateInvokeAgent와 같은 Bedrock API를 간접적으로 호출할 수 있는 추가 권한이 있는 동일한 역할을 사용해서는 안 됩니다. 사용하면 RetrieveAndGenerateInvokeAgent가 여러 번 InvokeModel을 직접 호출하고 이러한 직접 호출 중 일부에 가드레일이 포함되지 않기 때문에 요청에 가드레일이 지정된 경우에도 액세스 거부 오류가 발생할 수 있습니다.

  • 가드레일 입력 태그를 사용하면 프롬프트에 가드레일을 적용하는 것을 우회할 수 있습니다. 그러나 응답에서는 가드레일이 항상 적용됩니다.

  • Amazon Bedrock 가드레일은 현재 교차 계정 액세스를 위한 리소스 기반 정책을 지원하지 않으므로 가드레일이 요청을 수행하는 IAM 역할과 동일한 AWS 계정 에 있어야 합니다.