Cómo configurar Parameter Store
Antes de configurar parámetros en el Parameter Store, configure las políticas de AWS Identity and Access Management (IAM) que proporcionan a las entidades de su cuenta permiso para llevar a cabo las acciones que especifique.
En esta sección, aprenderá a configurar manualmente estas políticas mediante la consola de IAM y asignarlas a los usuarios y los grupos de usuarios. También puede crear y asignar políticas para controlar las acciones de parámetro que se pueden ejecutar en un nodo administrado.
En esta sección, también se explica cómo crear reglas de Amazon EventBridge que le permitan recibir notificaciones sobre los cambios en los parámetros de Systems Manager. Puede utilizar reglas de EventBridge para invocar otras acciones en AWS en función de los cambios en el Parameter Store.
Contenido
Administración del acceso a los parámetros del Parameter Store mediante políticas de IAM
La entidad principal de IAM que accede a los parámetros de AWS Systems Manager debe tener permisos para ejecutar las acciones de SSM requeridas. La entidad principal puede ser un usuario de IAM, un rol de IAM, un perfil de instancia de Amazon EC2, un rol de ejecución de Lambda, un rol de tarea de Amazon ECS, un rol de servicio de CodeBuild u otro rol de servicio de AWS.
En la siguiente tabla, se describen los permisos de IAM necesarios para las diferentes acciones del Parameter Store.
| Action | Privilegio de IAM necesario | Información de referencia |
|---|---|---|
| Creación o actualización de un parámetro | ssm:PutParameter |
PutParameter |
| Recuperación de un parámetro | ssm:GetParameter |
GetParameter |
| Recuperación de varios parámetros con nombre | ssm:GetParameters |
GetParameters |
| Recuperación de parámetros de una ruta | ssm:GetParametersByPath |
GetParametersByPath |
| Visualización de metadatos de parámetros | ssm:DescribeParameters |
DescribeParameters |
| Visualización del historial de versiones de parámetros | ssm:GetParameterHistory |
GetParameterHistory |
| Eliminación de un parámetro | ssm:DeleteParameter |
DeleteParameter |
| Eliminación de varios parámetros | ssm:DeleteParameters |
DeleteParameters |
Si utiliza políticas de IAM para conceder acceso a parámetros de Systems Manager, le recomendamos que cree y utilice políticas de IAM restrictivas. Por ejemplo, la siguiente política permite a una entidad principal llamar a las operaciones de la API DescribeParameters y GetParameters para un conjunto limitado de recursos. La entidad principal puede obtener información sobre todos los parámetros que comiencen por prod-* y utilizarlos.
importante
Si un usuario tiene acceso a una ruta, puede obtener acceso a todos los niveles de esa ruta. Por ejemplo, si un usuario tiene permiso para obtener acceso a la ruta /a, el usuario también puede obtener acceso a /a/b. Incluso si a una entidad principal se le ha denegado explícitamente el acceso en IAM al parámetro /a/b, puede llamar igualmente a la operación de la API GetParametersByPath recursivamente para /a y ver /a/b.
En el caso de los administradores de confianza, puede proporcionar acceso a todas las operaciones de la API de parámetros de Systems Manager mediante el uso de una política similar a la del siguiente ejemplo. Esta política concede al usuario acceso completo a todos los parámetros de producción que empiecen por dbserver-prod-*.
Denegar permisos
Cada API es única y tiene operaciones y permisos distintos que puede permitir o denegar individualmente. Una denegación explícita en cualquier política invalida el permiso concedido.
nota
La clave predeterminada AWS Key Management Service (AWS KMS) tiene permiso Decrypt para todos los principales de IAM dentro de la Cuenta de AWS. Si desea diferentes niveles de acceso a parámetros SecureString en su cuenta, no le recomendamos que utilice la clave predeterminada.
Si desea que todas las operaciones de API que recuperen valores de parámetros tengan el mismo comportamiento, puede utilizar un patrón como GetParameter* en una política. En el siguiente ejemplo se muestra cómo denegar GetParameter, GetParameters, GetParameterHistory, y GetParametersByPathpara todos los parámetros que comiencen con prod-*.
En el siguiente ejemplo se muestra cómo denegar algunos comandos mientras se permite al usuario realizar otros comandos en todos los parámetros que comienzan con prod-*.
nota
El historial de parámetros incluye todas las versiones de parámetros, incluida la actual. Por lo tanto, si se deniega a un usuario el permiso para GetParameter, GetParameters, y GetParameterByPath pero se le permite el permiso para GetParameterHistory, pueden ver el parámetro actual, incluyendo los parámetros SecureString, mediante GetParameterHistory.
Cifrado y descifrado de parámetros mediante claves de AWS KMS
Los parámetros del Parameter Store SecureString utilizan claves de AWS KMS para el cifrado. AWS KMS cifra el valor mediante una Clave administrada de AWS o una clave administrada por el cliente. Para obtener más información acerca de AWS KMS y AWS KMS key, consulte Guía para desarrolladores de AWS Key Management Service.
Todos los usuarios de la cuenta de cliente tienen acceso a la clave administrada de AWS predeterminada. Puede localizar el Nombre de recurso de Amazon (ARN) de la clave predeterminada en la consola de AWS KMS de la página de claves administradas de AWSaws/ssm en la columna Alias. Es posible que desee utilizar la clave predeterminada para cifrar los parámetros SecureString mientras impide que los usuarios trabajen con los parámetros SecureString. En este caso, las políticas de IAM deben denegar explícitamente el acceso a la clave predeterminada, como se muestra en el siguiente ejemplo de política.
Cuando se utiliza una clave administrada por el cliente, la política de IAM que concede a una entidad principal acceso a un parámetro o una ruta de parámetro debe proporcionar permisos kms:Encrypt explícitos para la clave. Por ejemplo, la siguiente política permite a una entidad principal crear, actualizar y ver parámetros SecureString que comienzan por prod- en la Región de AWS y la Cuenta de AWS especificadas.
nota
El permiso kms:GenerateDataKey es necesario para crear parámetros avanzados cifrados utilizando la clave administrada por el cliente especificada.
Si necesita un control de acceso detallado sobre los parámetros SecureString de su cuenta, utilice una clave administrada por el cliente para proteger y restringir el acceso a estos parámetros. También se recomienda utilizar AWS CloudTrail para monitorear las actividades de los parámetros SecureString.
Para obtener más información, consulte los temas siguientes:
-
Policy evaluation logic (Lógica de evaluación de políticas) en la Guía del usuario de IAM
-
Uso de las políticas de claves en AWS KMS en la Guía para desarrolladores de AWS Key Management Service
-
Visualización de eventos con el historial de eventos de CloudTrail en la Guía del usuario de AWS CloudTrail
Permiso para que los nodos administrados accedan a parámetros específicos
Para controlar qué parámetros del Parameter Store puede recuperar un nodo administrado, puede adjuntar una política de IAM al rol de la instancia. Si elige el tipo de parámetro SecureString cuando crea el parámetro, Systems Manager utiliza AWS KMS para cifrar el valor del parámetro. Puede ver la Clave administrada de AWS ejecutando el siguiente comando desde la AWS CLI.
aws kms describe-key --key-id alias/aws/ssm
El siguiente ejemplo permite que los nodos obtengan un valor de parámetro solo para los parámetros que comienzan con prod-. Si el parámetro es un parámetro de SecureString, el nodo descifra la cadena mediante AWS KMS.
nota
Las políticas de instancia, como las del ejemplo siguiente, se asignan a el rol de la instancia en IAM. Para obtener más información acerca de cómo configurar el acceso a las características de Systems Manager, incluido el modo de asignar políticas a los usuarios y las instancias, consulte Administrar instancias de EC2 con Systems Manager.