From 8c09d91ae731f735c5c46a5820a55ebbb866c976 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 06:19:25 -0700 Subject: [PATCH] Creates new page detailing Bedrock connector setup (#5148) (#5162) * Creates new page detailing Bedrock connector setup * Update docs/assistant/connect-to-bedrock.asciidoc Co-authored-by: Joe Peeples * Update docs/assistant/connect-to-bedrock.asciidoc Co-authored-by: Joe Peeples * Update docs/assistant/connect-to-bedrock.asciidoc Co-authored-by: Joe Peeples * Update docs/assistant/connect-to-bedrock.asciidoc Co-authored-by: Joe Peeples * adds information about provisioned throughput * sentence edits * incorporates Charles' review * adds context to each section * adds video embeds * Update docs/assistant/connect-to-bedrock.asciidoc * Update docs/assistant/connect-to-bedrock.asciidoc * Update docs/assistant/connect-to-bedrock.asciidoc * Update docs/assistant/connect-to-bedrock.asciidoc * minor format fix * update heading * Update docs/assistant/connect-to-bedrock.asciidoc * Formatting fix --------- Co-authored-by: Joe Peeples (cherry picked from commit 61ee1ad3b20bb30b4da0d67ab36d9e93654747cf) Co-authored-by: Benjamin Ironside Goldstein <91905639+benironside@users.noreply.github.com> --- docs/assistant/connect-to-bedrock.asciidoc | 179 +++++++++++++++++++++ docs/assistant/security-assistant.asciidoc | 1 + 2 files changed, 180 insertions(+) create mode 100644 docs/assistant/connect-to-bedrock.asciidoc diff --git a/docs/assistant/connect-to-bedrock.asciidoc b/docs/assistant/connect-to-bedrock.asciidoc new file mode 100644 index 0000000000..39ac30180d --- /dev/null +++ b/docs/assistant/connect-to-bedrock.asciidoc @@ -0,0 +1,179 @@ +[[assistant-connect-to-bedrock]] += Connect to Amazon Bedrock + +This page provides step-by-step instructions for setting up an Amazon Bedrock connector for the first time. This connector type enables you to leverage large language models (LLMs) within {kib}. You'll first need to configure AWS, then configure the connector in {kib}. + +NOTE: Only Amazon Bedrock's `Anthropic` models are supported: `Claude` and `Claude instant`. + +[discrete] +== Configure AWS + +[discrete] +=== Configure an IAM policy + +First, configure an IAM policy with the necessary permissions: + +. Log into the AWS console and search for Identity and Access Management (IAM). +. From the **IAM** menu, select **Policies** → **Create policy**. +. To provide the necessary permissions, paste the following JSON into the **Specify permissions** menu. ++ +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "VisualEditor0", + "Effect": "Allow", + "Action": [ + "bedrock:InvokeModel", + "bedrock:InvokeModelWithResponseStream" + ], + "Resource": "*" + } + ] +} +``` ++ +NOTE: These are the minimum required permissions. IAM policies with additional permissions are also supported. ++ +. Click **Next**. Name your policy. + +The following video demonstrates these steps. + +======= +++++ + + +
+++++ +======= + + +[discrete] +=== Configure an IAM User + +Next, assign the policy you just created to a new user: + +. Return to the **IAM** menu. Select **Users** from the navigation menu, then click **Create User**. +. Name the user, then click **Next**. +. Select **Attach policies directly**. +. In the **Permissions policies** field, search for the policy you created earlier, select it, and click **Next**. +. Review the configuration then click **Create user**. + +The following video demonstrates these steps. + +======= +++++ + + +
+++++ +======= + +[discrete] +=== Create an access key + +Create the access keys that will authenticate your Elastic connector: + +. Return to the **IAM** menu. Select **Users** from the navigation menu. +. Search for the user you just created, and click its name. +. Go to the **Security credentials** tab. +. Under **Access keys**, click **Create access key**. +. Select **Third-party service**, check the box under **Confirmation**, click **Next**, then click **Create access key**. +. Click **Download .csv file** to download the key. Store it securely. + +The following video demonstrates these steps. + +======= +++++ + + +
+++++ +======= + +[discrete] +=== Enable model access + +Make sure the supported Amazon Bedrock LLMs are enabled: + +. Search the AWS console for Amazon Bedrock. +. From the Amazon Bedrock page, click **Get started**. +. Select **Model access** from the left navigation menu, then click **Manage model access**. +. Check the boxes for **Claude** and/or **Claude Instant**, depending which model or models you plan to use. +. Click **Save changes**. + +The following video demonstrates these steps. + +======= +++++ + + +
+++++ +======= + +[discrete] +== Configure the Amazon Bedrock connector + +Finally, configure the connector in {kib}: + +. Log in to {kib}. +. Go to **Stack Management → Connectors → Create connector → Amazon Bedrock**. +. Name your connector. +. (Optional) Configure the Amazon Bedrock connector to use a different AWS region where Anthropic models are supported by editing the **URL** field, for example by changing `us-east-1` to `eu-central-1`. +. (Optional) Add one of the following strings if you want to use a model other than the default: +.. For Haiku: `anthropic.claude-3-haiku-20240307-v1:0` +.. For Sonnet: `anthropic.claude-3-sonnet-20240229-v1:0` +.. For Opus: `anthropic.claude-3-opus-20240229-v1:0` +. Enter the **Access Key** and **Secret** that you generated earlier, then click **Save**. ++ +Your LLM connector is now configured. For more information on using Elastic AI Assistant, refer to <>. + +IMPORTANT: If you're using https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html[provisioned throughput], your ARN becomes the model ID, and the connector settings **URL** value must be https://www.urlencoder.org/[encoded] to work. For example, if the non-encoded ARN is `arn:aws:bedrock:us-east-2:123456789102:provisioned-model/3Ztr7hbzmkrqy1`, the encoded ARN would be `arn%3Aaws%3Abedrock%3Aus-east-2%3A123456789102%3Aprovisioned-model%2F3Ztr7hbzmkrqy1`. + + +The following video demonstrates these steps. + +======= +++++ + + +
+++++ +======= \ No newline at end of file diff --git a/docs/assistant/security-assistant.asciidoc b/docs/assistant/security-assistant.asciidoc index 3b5c562f6f..61697eb4a7 100644 --- a/docs/assistant/security-assistant.asciidoc +++ b/docs/assistant/security-assistant.asciidoc @@ -223,3 +223,4 @@ In addition to practical advice, AI Assistant can offer conceptual advice, tips, include::ai-alert-triage.asciidoc[leveloffset=+1] +include::connect-to-bedrock.asciidoc[leveloffset=+1] \ No newline at end of file