Overzicht
Met Enterprise Key Management (EKM) kan OpenAI gegevens versleutelen met een hoofdsleutel die jij beheert. Dit document laat zien hoe je je AWS-account instelt om OpenAI beperkte machtigingen op je KMS te geven.

Stappen
1. Maak een nieuwe KMS-sleutel
Ga naar KMS -> Customer managed keys en klik daarna op Create Key
Selecteer een symmetrisch versleutelingsalgoritme
Nadat je sleutel is gemaakt, noteer je de ARN. Ondersteunde formaten zijn onder meer arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, of ...:alias/<alias_name>

2. Maak een aangepast beleid voor beperkte toegang tot de KMS-sleutel
Ga naar IAM -> Policies en klik daarna op Create Policy
Selecteer in de stap Specify permissions JSON en voer het volgende in om het beleid KMS-toegangsacties te geven. Zorg ervoor dat je YOUR_KMS_ARN vervangt door de ARN van de sleutel die je hebt gemaakt.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}
3. Maak een IAM-rol die OpenAI kan aannemen, en koppel die aan het beleid met beperkte toegang tot je KMS
OpenAI roept AssumeRole aan vanuit een AWS-account van OpenAI. In deze stap wordt vastgelegd dat de AWS-principal van OpenAI de beperkte rol mag aannemen voor toegang tot je KMS.
Ga naar IAM -> Roles en klik daarna op Create Role
Selecteer in de stap Select trusted entity Custom trust policy

Voer het volgende in bij de Custom trust policy om toegang toe te staan aan de AWS-principal van OpenAI.
De principal is de AWS-principal van OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Geef aan welke ExternalId OpenAI moet meesturen tijdens het AssumeRole-proces.
Voor ChatGPT of API kun je de organisatie-id (org-xxx) gebruiken die aan je werkruimte is gekoppeld - https://platform.api.openai.org/settings/organization/general
Voor API kun je voor meer granulariteit een specifieke API-project-ID invoeren
{
"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>,
]
}
}
}
]
}
Zoek in de stap Add permissions naar de beleidsnaam van het IAM-beleid dat je in de vorige stap hebt gemaakt. Klik op het selectievakje naast de beleidsnaam en klik daarna op Next.

Selecteer in het gedeelte Name, review, and create een willekeurige rolnaam.
4. Pas eventuele extra beperkingen toe in lijn met je eigen beveiligingspraktijken
Hierboven staat de minimaal vereiste informatie die OpenAI nodig heeft om EKM in te stellen. Je kunt extra sleutelbeleidsregels of beperkingen toepassen in lijn met je eigen interne beveiligingspraktijken, zolang OpenAI encrypt- en decrypt-bewerkingen op je KMS kan aanroepen. Wanneer je het hieronder beschreven endpoint voor sleutelregistratie bij OpenAI aanroept, valideren we je configuratie.
Na het voltooien van de bovenstaande stappen
ChatGPT Enterprise
Neem contact op met je OpenAI-contactpersoon en deel het volgende:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
De Role ARN die OpenAI in je cloud zal aannemen
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
De Key Management System ARN voor de hoofdsleutel die je beheert
We schakelen EKM in voor je ChatGPT-organisatie/werkruimte.
API
Registreer je externe sleutel bij OpenAI
Volg de instructies in deze API-referentie Externe sleutels in de Management API
Registreer eerst je externe sleutel op het niveau van de OpenAI-organisatie; hierdoor wordt een externe sleutel-id gegenereerd.
In deze stap valideren we dat je invoer geldig is en dat we ons kunnen authenticeren bij je KMS.
Hiermee wordt EKM nog niet toegevoegd aan je OpenAI-project.
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-configuratie",
"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": <uw organisatie-id of project-id>
}'Maak vervolgens een OpenAI-project dat is gekoppeld aan de externe sleutel. Daarna is EKM geactiveerd voor je project.
De response body van deze API-aanroep geeft je de project-ID (proj_xxx)
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Een project",
"external_key_id": "extkey_xxxx"
}'
