D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation GetKeyPolicy avec un AWS SDK ou une CLI
Les exemples de code suivants illustrent comment utiliser GetKeyPolicy.
Les exemples d’actions sont des extraits de code de programmes de plus grande envergure et doivent être exécutés en contexte. Vous pouvez voir cette action en contexte dans l’exemple de code suivant :
- CLI
-
- AWS CLI
-
Pour copier une stratégie de clé d’une clé KMS vers une autre clé KMS
L’exemple suivant get-key-policy obtient la stratégie de clé d’une clé KMS et l’enregistre dans un fichier texte. Il remplace ensuite la stratégie d’une autre clé KMS en utilisant le fichier texte comme entrée de stratégie.
Comme le paramètre --policy de put-key-policy nécessite une chaîne, vous devez utiliser l’option --output text pour renvoyer la sortie sous forme de chaîne de texte au lieu de JSON.
aws kms get-key-policy \
--policy-name default \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--query Policy \
--output text > policy.txt
aws kms put-key-policy \
--policy-name default \
--key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
--policy file://policy.txt
Cette commande ne produit aucune sortie.
Pour plus d'informations, consultez le PutKeyPolicymanuel de référence de l'API AWS KMS.
- Python
-
- Kit SDK for Python (Boto3)
-
class KeyPolicy:
def __init__(self, kms_client):
self.kms_client = kms_client
@classmethod
def from_client(cls) -> "KeyPolicy":
"""
Creates a KeyPolicy instance with a default KMS client.
:return: An instance of KeyPolicy initialized with the default KMS client.
"""
kms_client = boto3.client("kms")
return cls(kms_client)
def get_policy(self, key_id: str) -> dict[str, str]:
"""
Gets the policy of a key.
:param key_id: The ARN or ID of the key to query.
:return: The key policy as a dict.
"""
if key_id != "":
try:
response = self.kms_client.get_key_policy(
KeyId=key_id,
)
policy = json.loads(response["Policy"])
except ClientError as err:
logger.error(
"Couldn't get policy for key %s. Here's why: %s",
key_id,
err.response["Error"]["Message"],
)
raise
else:
pprint(policy)
return policy
else:
print("Skipping get policy demo.")