Comment puis-je autoriser tous les comptes d'une organisation AWS à utiliser une clé AWS KMS dans mon compte ?

Date de la dernière mise à jour : 05/08/2021

Je souhaite restreindre l'accès aux clés AWS Key Management Service (AWS KMS) uniquement aux principaux appartenant à mon organisation AWS.

Brève description

La clé de condition globale aws:PrincipalOrgID peut être utilisée avec l'élément Principal dans une politique basée sur les ressources avec AWS KMS. Au lieu de répertorier tous les ID de compte AWS d'une organisation, vous pouvez spécifier l'ID d'organisation dans l'élément Condition.

Solution

Créez une politique de clé AWS KMS pour permettre à tous les comptes d'une organisation AWS d'effectuer des actions AWS KMS à l'aide de la clé de contexte de condition globale AWS aws:PrincipalOrgID.

Important : il est recommandé d'accorder des autorisations de moindre privilège avec les politiques AWS Identity and Access Management (IAM).

Spécifiez votre ID d'organisation AWS dans l'élément condition de l'instruction pour vous assurer que seuls les principaux des comptes de votre organisation peuvent accéder à la clé AWS KMS. Pour obtenir l'ID de l'organisation, procédez comme suit :

  1. Ouvrez la console AWS Organizations.
  2. Sélectionnez Settings (Paramètres).
  3. Dans Organization details (Détails de l'organisation), copiez l'ID de l'organisation.

L'énoncé de politique clé AWS KMS suivant permet aux identités de tout compte AWS appartenant à l'organisation AWS avec l'ID o-xxxxxxxxxxx d'utiliser la clé KMS :

{
  "Sid": "Allow use of the KMS key for organization",
  "Effect": "Allow",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GetKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:PrincipalOrgID": "o-xxxxxxxxxxx"
    }
  }
}

Remarque : la clé de contexte de condition globale aws:PrincipalOrgID ne peut pas être utilisée pour restreindre l'accès à un principal de service AWS. Les services AWS qui invoquent un appel d'API sont lancés à partir d'un compte AWS interne qui ne fait pas partie de l'organisation AWS.