OpenAI

Instructions d'intégration OpenAI / AWS EKM

Instructions étape par étape pour provisionner AWS et activer EKM

Dernière mise à jour : 4 days ago

Présentation

La gestion des clés d'entreprise (EKM) permet à OpenAI de chiffrer les données à l'aide d'une clé principale que vous contrôlez. Ce document explique comment configurer votre compte AWS afin d'accorder à OpenAI des autorisations limitées sur votre KMS.

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

Étapes

1. Créez une nouvelle clé KMS

  1. Allez sur KMS -> Clés gérées par le client, puis cliquez sur Créer une clé

  2. Sélectionnez un algorithme de chiffrement symétrique

  3. Une fois votre clé créée, notez son ARN. Les formats pris en charge incluent arn :aws :kms :<region> :<account_number> :key/<uuid>, ... :key/mrk-*, ou ... :alias/<alias_name>

    AWS KMS customer managed key details page with key ID and ARN for test-kms

2. Créez une politique personnalisée pour un accès limité à la clé KMS

  1. Allez à IAM -> Stratégies, puis cliquez sur Créer une stratégie

  2. À l'étape Spécifier les autorisations, sélectionnez JSON et saisissez ce qui suit pour accorder à la politique les actions d'accès KMS. Assurez-vous de remplacer YOUR_KMS_ARN par l'ARN de la clé que vous avez créée.

    AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
    {
        "Version" : "2012-10-17",
        "Statement" : [
            {
                "Sid" : "AllowEncryptDecrypt",
                "Effect" : "Allow",
                "Action" : [

                    "kms :Decrypt",
                    "kms :Encrypt"

                ],
                "Resource" : <YOUR_KMS_ARN>
            }
        ]
    }

3. Créez un rôle IAM qu'OpenAI pourra assumer, puis associez-le à la politique qui accorde un accès limité à votre KMS

OpenAI appellera AssumeRole depuis un compte AWS appartenant à OpenAI. Cette étape reconnaît que le principal AWS d'OpenAI peut endosser le rôle limité pour accéder à votre KMS.

  1. Allez à IAM -> Rôles, puis cliquez sur Créer un rôle

  2. À l'étape Sélectionner une entité de confiance, sélectionnez Politique de confiance personnalisée

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Saisissez ce qui suit dans la stratégie d'approbation personnalisée pour autoriser l'accès au principal AWS d'OpenAI.

    1. Le principal est le principal AWS d'OpenAI - arn :aws :iam : :790389265272 :role/EnterpriseKeyManagement

    2. Indiquez quel ExternalId OpenAI doit transmettre lors du processus AssumeRole.

      1. Pour ChatGPT ou l'API, vous pouvez utiliser l'identifiant d'organisation (org-xxx) associé à votre espace de travail - https://platform.api.openai.org/settings/organization/general

      2. Pour l'API, vous pouvez indiquer un ID de projet API spécifique pour plus de granularité

        {
            "Version" : "2012-10-17",
            "Statement" : [
                {
                    "Effect" : "Allow",
                    "Principal" : {
                        "AWS" : "arn :aws :iam : :790389265272 :role/EnterpriseKeyManagement"
                    },
                    "Action" : "sts :AssumeRole",
                    "Condition" : {
                        "StringEquals" : {
                            "sts :ExternalId" : [
                                 <YOUR_OPENAI_ORGANIZATION_ID>
                             ]
                        }
                    }
                }
            ]
        }
  4. À l'étape Ajouter des autorisations, recherchez le nom de la stratégie IAM que vous avez créée à l'étape précédente. Cliquez sur la case à cocher à côté du nom de la stratégie, puis cliquez sur Suivant.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. Dans la section Nommer, vérifier et créer, sélectionnez n'importe quel nom de rôle.

4. Appliquez toute restriction supplémentaire conformément à vos propres pratiques de sécurité

Ci-dessus figurent les informations minimales requises dont OpenAI a besoin pour mettre en place EKM. Vous êtes libre d'appliquer des stratégies ou restrictions supplémentaires relatives aux clés, conformément à vos propres pratiques internes de sécurité, à condition qu'OpenAI puisse appeler les opérations de chiffrement et de déchiffrement sur votre KMS. Lorsque vous appelez l'endpoint d'enregistrement de clé avec OpenAI décrit ci-dessous, nous validerons votre configuration.

Après avoir suivi les étapes ci-dessus

ChatGPT Enterprise

Veuillez contacter votre contact OpenAI et partager les éléments suivants :

  • "role_arn" : "arn :aws :iam : :<YOUR_AWS_ACCOUNT_NUMBER> :role/<YOUR_ROLE>",

    • L'ARN du rôle qu'OpenAI endossera dans votre cloud

  • "kms_arn" : "arn :aws :kms :<REGION> :<YOUR_AWS_ACCOUNT_NUMBER> :key/<UUID>"

    • L'ARN du système de gestion des clés (KMS) pour la clé principale que vous gérez

Nous activerons EKM pour votre organisation/espace de travail ChatGPT.

API

Enregistrez votre clé externe auprès d'OpenAI

Suivez les instructions de cette référence d'API Clés externes dans l'API de gestion

  1. Tout d'abord, enregistrez votre clé externe au niveau de l'organisation OpenAI, ce qui générera un identifiant de clé externe.

  2. À cette étape, nous allons vérifier que votre saisie est valide et que nous pouvons nous authentifier auprès de votre KMS.

  3. Ceci n'ajoutera pas encore EKM à votre projet OpenAI.

    curl -X POST \
    -H "Content-type : application/json" \
    -H "Authorization : Bearer $TOKEN" \

    "https://api.openai.com/v1/organization/external_keys" \
    -d '{
      "type" : "aws",
      "name" : "AWS EKM Config",
      "role_arn" : "arn :aws :iam : :<YOUR_AWS_ACCOUNT_NUMBER> :role/<YOUR_ROLE>",
      "kms_arn" : "arn :aws :kms :<REGION> :<YOUR_AWS_ACCOUNT_NUMBER> :key/<UUID>",
      "external_id" : <your org id or project id>
    }'
  4. Ensuite, créez un projet OpenAI associé à la clé externe. Après ça, EKM est activé sur votre projet.

  5. Le corps de la réponse de cet appel d'API vous donnera l'ID du projet (proj_xxx)

    curl -X POST \
    -H "Content-type : application/json" \
    -H "Authorization : Bearer $TOKEN" \
    "https://api.openai.com/v1/organization/projects" \
    -d '{
       "name" : "Some Project",

       "external_key_id" : "extkey_xxxx"
    }'

Cet article vous a-t-il été utile ?