Aperçu
Enterprise Key Management (EKM) permet à OpenAI de chiffrer les données à l’aide d’une clé maîtresse que vous contrôlez. Ce document explique comment configurer votre compte AWS pour accorder à OpenAI des autorisations limitées sur votre KMS.

Étapes
1. Créez une nouvelle clé KMS
Allez à KMS -> Customer managed keys, puis cliquez sur Create Key
Sélectionnez un algorithme de chiffrement symétrique
Une fois votre clé créée, notez son ARN. Les formats pris en charge comprennent arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, ou ...:alias/<alias_name>

2. Créez une politique personnalisée pour un accès limité à la clé KMS
Allez à IAM -> Policies, puis cliquez sur Create Policy
À l’étape Specify permissions, sélectionnez JSON et saisissez ce qui suit pour donner à 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.

{
"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 que OpenAI pourra assumer et attribuez-lui la politique avec accès limité à votre KMS
OpenAI appellera AssumeRole à partir d’un compte AWS appartenant à OpenAI. Cette étape reconnaît que le principal AWS d’OpenAI peut assumer le rôle limité pour accéder à votre KMS.
Allez à IAM -> Roles, puis cliquez sur Create Role
À l’étape Select trusted entity, sélectionnez Custom trust policy

Saisissez ce qui suit dans la custom trust policy pour autoriser l’accès au principal AWS d’OpenAI.
Le principal est le principal AWS d’OpenAI - arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Indiquez quel Externald OpenAI doit transmettre pendant le processus AssumeRole.
Pour ChatGPT ou l’API, vous pouvez utiliser l’ID d’organisation (org-xxx) associé à votre espace de travail - https://platform.api.openai.org/settings/organization/general
Pour l’API, vous pouvez indiquer un ID de projet API précis pour une granularité accrue
{
"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>,
]
}
}
}
]
}
À l’étape Add permissions, recherchez le nom de la politique IAM que vous avez créée à l’étape précédente. Cliquez sur la case à cocher à côté du nom de la politique, puis cliquez sur Next.

Dans la section Name, review, and create, choisissez n’importe quel nom de rôle.
4. Appliquez toute restriction additionnelle conforme à vos propres pratiques de sécurité
Ci-dessus se trouve l’information minimale requise dont OpenAI a besoin pour configurer EKM. Vous êtes libre d’appliquer des politiques de clé ou des restrictions supplémentaires conformes à vos propres pratiques de sécurité internes, tant qu’OpenAI peut appeler les opérations de chiffrement et de déchiffrement sur votre KMS. Lorsque vous appelez avec OpenAI l’endpoint d’enregistrement de clé décrit ci-dessous, nous validerons votre configuration.
Après avoir terminé les étapes ci-dessus
ChatGPT Enterprise
Veuillez communiquer avec votre contact OpenAI et lui transmettre ce qui suit :
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
L’ARN du rôle que OpenAI assumera dans votre nuage
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
L’ARN du Key Management System pour la clé maîtresse 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
Tout d’abord, enregistrez votre clé externe au niveau de l’organisation OpenAI, ce qui générera un ID de clé externe.
À cette étape, nous validerons que votre entrée est valide et que nous pouvons nous authentifier auprès de votre KMS.
Cela 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": "Config AWS EKM",
"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": <votre ID d’organisation ou ID de projet>
}'Ensuite, créez un projet OpenAI associé à la clé externe. Après cela, EKM est activé sur votre projet.
Le corps de 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": "Un projet",
"external_key_id": "extkey_xxxx"
}'
