Crear un usuario y una política de IAM
Las prácticas recomendadas de seguridad de AWS imponen el uso de permisos específicos para controlar el acceso a diferentes recursos. AWS Identity and Access Management (IAM) le permite administrar usuarios y permisos de usuario en AWS. Una política de IAM enumera de forma explícita las acciones que se pueden realizar y los recursos a los que se pueden aplicar dichas acciones.
A continuación se indican los permisos mínimos que suelen requerirse para los productores y consumidores de Kinesis Data Streams.
| Acciones | Recurso | Finalidad |
|---|---|---|
DescribeStream, DescribeStreamSummary,
DescribeStreamConsumer |
Flujo de datos de Kinesis | Antes de intentar leer registros, el consumidor comprueba si la secuencia de datos existe y si está activa, y si los fragmentos se encuentran en la secuencia de datos. |
SubscribeToShard,
RegisterStreamConsumer |
Flujo de datos de Kinesis | Suscribe y registra a los consumidores en un fragmento. |
PutRecord, PutRecords |
Flujo de datos de Kinesis | Escribe registros en Kinesis Data Streams. |
| Acciones | Recurso | Finalidad |
|---|---|---|
DescribeStream |
Flujo de datos de Kinesis | Antes de intentar leer registros, el consumidor comprueba si la secuencia de datos existe y si está activa, y si los fragmentos se encuentran en la secuencia de datos. |
GetRecords, GetShardIterator
|
Flujo de datos de Kinesis | Lee registros de un fragmento. |
CreateTable, DescribeTable,
GetItem, PutItem, Scan,
UpdateItem |
Tabla de Amazon DynamoDB | Si el consumidor se desarrolla con Kinesis Client Library (KCL) (versión 1.x o 2.x), necesita permisos en una tabla de DynamoDB para realizar un seguimiento del estado de procesamiento de la aplicación. |
DeleteItem |
Tabla de Amazon DynamoDB | Para cuando el consumidor realiza operaciones de división y fusión en particiones de Kinesis Data Streams. |
PutMetricData |
Registros de Amazon CloudWatch | KCL también carga métricas a CloudWatch, que son útiles para supervisar la aplicación. |
Para este tutorial, creará una única política de IAM que otorgue todos los permisos precedentes. En producción, es posible que desee crear dos políticas, una para los productores y otra para los consumidores.
Para crear una política de IAM
-
Busque el nombre de recurso de Amazon (ARN) del nuevo flujo de datos que creó en el paso anterior. Puede encontrar este ARN como Stream ARN (ARN de la secuencia) en la parte superior de la pestaña Details (Detalles). El formato del ARN es el siguiente:
arn:aws:kinesis:region:account:stream/name- region
-
El código de la región de AWS, por ejemplo,
us-west-2. Para obtener más información, consulte Conceptos de región y zona de disponibilidad. - inscrita
-
El ID de la cuenta de AWS, como se muestra en Configuración de cuenta
. - nombre
-
El nombre del flujo de datos que creó en el paso anterior, que es
StockTradeStream.
-
Determine el ARN de la tabla de DynamoDB que utilizará el consumidor (y que creará la primera instancia de consumidor). Debe tener el siguiente formato:
arn:aws:dynamodb:region:account:table/nameLa región y el ID de cuenta son idénticos a los valores del ARN del flujo de datos que se utiliza para este tutorial, pero el nombre es el nombre de la tabla de DynamoDB creada y utilizada por la aplicación del consumidor. KCL utiliza el nombre de la aplicación como nombre de tabla. En este paso, utilice
StockTradesProcessorpara el nombre de la tabla DynamoDB, ya que ese es el nombre de la aplicación utilizado en los pasos posteriores de este tutorial. -
En la consola de IAM, en Políticas (https://console.aws.amazon.com/iam/home#policies
), elija Crear política. Si es la primera vez que trabaja con políticas de IAM, elija Introducción, Crear política. -
Elija Seleccionar junto a Generador de políticas.
-
Elija Amazon Kinesis como servicio AWS.
-
Seleccione
DescribeStream,GetShardIterator,GetRecords,PutRecordyPutRecordscomo acciones permitidas. -
Introduzca el ARN del flujo de datos que está utilizando en este tutorial.
-
Utilice Add Statement (Añadir instrucción) para cada uno de los siguientes:
AWSServicio de Acciones ARN Amazon DynamoDB CreateTable,DeleteItem,DescribeTable,GetItem,PutItem,Scan,UpdateItemEl ARN de la tabla de DynamoDB creada en el paso 2 de este procedimiento. Amazon CloudWatch PutMetricData*El asterisco (
*) que se utiliza cuando no es necesario especificar un ARN. En este caso, se debe a que no existe ningún recurso específico en CloudWatch para el que se invoque la acciónPutMetricData. -
Elija Paso siguiente.
-
Cambie Policy Name (Nombre de política) a
StockTradeStreamPolicy, revise el código y elija Create Policy (Crear política).
El documento de política resultante debería tener el siguiente aspecto:
Para crear un usuario de IAM
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En la página Users (Usuarios), elija Add user (Añadir usuario).
-
En User name, escriba
StockTradeStreamUser. -
En Access type (Tipo de acceso), elija Programmatic access (Acceso por programa) y, a continuación, elija Next: Permissions (Siguiente: Permisos).
-
Elija Asociar políticas existentes directamente.
-
Busque la política que creó en el procedimiento precedente por su nombre (
StockTradeStreamPolicy. Seleccione la casilla situada a la izquierda del nombre de la política y, a continuación, elija Next: Review (Siguiente: Revisión). -
Revise los detalles y el resumen y, a continuación, elija Create user (Crear usuario).
-
Copie el valor de Access key ID (ID de clave de acceso) y guárdelo de modo confidencial. En Secret access key (Clave de acceso secreta), elija Show (Mostrar) y guarde también esa clave de forma confidencial.
-
Pegue las claves de acceso y secreta en un archivo local en una ubicación segura a la que solo pueda obtener acceso usted. Para esta aplicación, cree un archivo denominado
~/.aws/credentials(con permisos estrictos). El archivo debe tener el siguiente formato:[default] aws_access_key_id=access keyaws_secret_access_key=secret access key
Asociar una política de IAM a un usuario
-
En la consola de IAM, abra Políticas
y elija Acciones de política. -
Elija
StockTradeStreamPolicyy Asociar. -
Elija
StockTradeStreamUsery Asociar política.
Pasos a seguir a continuación
Descargar y compilar el código