AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModelWithResponseStream operation: You don't have access to the model with the specified model ID.

0

I've been calling Claude via bedrock through the following steps and commands:

!ada credentials update --account=xxxxxxxxxxx --role=IibsAdminAccess-DO-NOT-DELETE --provider=conduit --once

import boto3
print(boto3.__version__)
import json

#Create the connection to Bedrock
bedrock = boto3.client(
    service_name='bedrock',
    region_name='us-west-2', 
    
)

bedrock_runtime = boto3.client(
    service_name='bedrock-runtime',
    region_name='us-west-2', 
    
)
def run_bedrock (prompt_data):
    body = {"prompt": "Human: " + prompt_data + " \\nAssistant:",
        "max_tokens_to_sample": 300, 
        "temperature": 0,
        "stop_sequences": ["\\n\\nHuman:"],
        "anthropic_version": "bedrock-2023-05-31"}

    body = json.dumps(body) # Encode body as JSON string

    modelId = 'anthropic.claude-v2' 
    accept = 'application/json'
    contentType = 'application/json'

    response = bedrock_runtime.invoke_model_with_response_stream(body=body.encode('utf-8'), # Encode to bytes
                                 modelId=modelId, 
                                 accept=accept, 
                                 contentType=contentType)
    r = []
    for event in response['body']:
        data = json.loads(event['chunk']['bytes'])
        r.append(data['completion'])
    return r    

It has been working fine so far. Today, I changed the AWS account number in the ada command. Now, when I try to get Claude response on an input, I'm facing the following error. AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModelWithResponseStream operation: You don't have access to the model with the specified model ID.

It only happens when I use that specific AWS account to call bedrock. Does anyone know why?

1 Antwort
1
Akzeptierte Antwort

Hello.

Is the model enabled in the "us-west-2" region of the target AWS account?
In the case of claude, it cannot be used unless model access is enabled.
https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html

profile picture
EXPERTE
beantwortet vor einem Monat
profile picture
EXPERTE
überprüft vor 5 Tagen
profile pictureAWS
EXPERTE
überprüft vor einem Monat
  • Thanks for your response. How can I check if the model is enabled in the "us-west-2" region of the target AWS account? If not, how can I enable it?

  • To check, on AWS Console: Bedrock > Model Access and then request access if you don't have it. Usually granted instantly

  • You can do it by following the steps mentioned by @Didier_Durand. Here are the steps from the AWS documentation. https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#model-access-add
    You can check the actual screen by accessing the Bedrock console and clicking "Model access" at the bottom left of the screen. a

  • If the model is not enabled, click "Manage model access" and check the model you want to enable. a
    a
    Once checked, click "Request model access" to enable it. a

  • The issue is now resolved. The issue was that I requested access for the models in us-east-1 region but calling those from us-west-2 region. It worked after the region-mismatch was fixed. Thanks for all your help.

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen