Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Encadenando IAM roles en Amazon Neptune
importante
La nueva función multicuenta de carga masiva introducida en la versión 1.2.1.0.R3 del motor, que aprovecha las IAM funciones encadenadas, puede provocar, en algunos casos, que se observe una degradación del rendimiento de la carga masiva. En consecuencia, las actualizaciones de las versiones del motor que admiten esta característica se han suspendido temporalmente hasta que se resuelva el problema.
Cuando asocia un rol a su clúster, este puede asumir dicho rol para obtener acceso a los datos almacenados en Amazon S3. A partir de la versión 1.2.1.0.R3 del motor, si ese rol no tiene acceso a todos los recursos que necesita, puede encadenar uno o más roles adicionales que el clúster puede asumir para acceder a otros recursos. Cada rol de la cadena asume el siguiente rol de la cadena, hasta que su clúster haya asumido el rol al final de la cadena.
Para encadenar roles, debe establecer una relación de confianza entre ellos. Por ejemplo, para encadenar RoleB
a RoleA
, RoleA
debe tener una política de permisos que le permita asumir RoleB
y RoleB
debe tener una política de confianza que le permita volver a transferir sus permisos a RoleA
. Para obtener más información, consulte Uso de roles. IAM
El primer rol de una cadena debe estar asociado al clúster que está cargando los datos.
El primer rol, y cada rol subsiguiente que asuma el siguiente rol en la cadena, debe tener:
Una política que incluye una instrucción específica con el efecto
Allow
sobre la acciónsts:AssumeRole
.El nombre del recurso de Amazon (ARN) del siguiente rol de un
Resource
elemento.
nota
El bucket de Amazon S3 de destino debe estar en la misma AWS región que el clúster.
Acceso entre cuentas mediante roles encadenados
Puede conceder el acceso entre cuentas encadenando un rol o roles que pertenezcan a otra cuenta. Cuando su clúster asuma temporalmente un rol que pertenece a otra cuenta, puede acceder a los recursos de esa cuenta.
Por ejemplo, imagine que la cuenta A desea obtener acceso a los datos de un bucket de Amazon S3 que pertenece a la cuenta B:
La cuenta A crea un rol de AWS servicio para Neptune denominado
RoleA
y lo adjunta a un clúster.La cuenta B crea un rol denominado
RoleB
que está autorizado para obtener acceso a los datos de un bucket de la cuenta B.La cuenta A asocia una política de permisos a
RoleA
que le permite asumirRoleB
.La cuenta B asocia una política de confianza a
RoleB
, que le permite transferir sus permisos aRoleA
.Para obtener acceso a los datos del bucket de la cuenta B, la cuenta A ejecuta un comando del programa de carga utilizando un parámetro
iamRoleArn
que encadenaRoleA
yRoleB
. Durante la operación del programa de carga,RoleA
asume de forma temporal elRoleB
para obtener acceso al bucket de Amazon S3 en la cuenta B.
Por ejemplo, RoleA
tendría una política de confianza que establece una relación de confianza con Neptune:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
RoleA
también tendría una política de permisos que le permitiría asumir el RoleB
, que es propiedad de la cuenta B:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::
(Account B ID)
:role/RoleB" } ] }
Por el contrario, RoleB
tendría una política de confianza para establecer una relación de confianza conRoleA
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::
(Account A ID)
:role/RoleA" } } ] }
RoleB
también necesitaría permiso para acceder a los datos del bucket de Amazon S3 ubicado en la cuenta B.
Crear un punto final AWS Security Token Service () STS VPC
El cargador de Neptune requiere un VPC punto final para AWS STS encadenar IAM funciones para acceder de forma privada a AWS STS APIs través de direcciones IP privadas. Puede conectarse directamente desde Amazon VPC a AWS STS través de un VPC Endpoint de forma segura y escalable. Cuando se utiliza un VPC punto final de interfaz, se mejora la seguridad, ya que no es necesario abrir firewalls para el tráfico saliente. También proporciona las demás ventajas de utilizar los VPC puntos de enlace de Amazon.
Cuando se utiliza un VPC Endpoint, el tráfico AWS STS no se transmite por Internet y nunca sale de la red de Amazon. VPCEstá conectado de forma segura AWS STS sin riesgos de disponibilidad ni restricciones de ancho de banda en el tráfico de su red. Para obtener más información, consulte Uso de VPC puntos finales AWS STS de interfaz.
Para configurar el acceso para AWS Security Token Service () STS
Inicia sesión en la VPC consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/vpc/
. En el panel de navegación, elija Puntos de conexión.
Elija Crear punto de conexión.
Elija el Nombre del servicio:
com.amazonaws.region.sts
para el punto de conexión de tipo Interfaz.Elija la VPCque contenga la instancia y EC2 la instancia de base de datos de Neptune.
Seleccione la casilla de verificación situada junto a la subred en la que se encuentra la EC2 instancia. No puede seleccionar varias subredes de la misma zona de disponibilidad.
-
En Tipo de dirección IP, elija entre las siguientes opciones:
IPv4— Asigne IPv4 direcciones a las interfaces de red de sus puntos finales. Esta opción solo se admite si todas las subredes seleccionadas tienen rangos de IPv4 direcciones.
IPv6— Asigne IPv6 direcciones a las interfaces de red de sus puntos finales. Esta opción solo se admite si todas las subredes seleccionadas son subredes IPv6 exclusivas.
Dualstack: asigne ambas IPv6 direcciones a las interfaces de red IPv4 de sus puntos finales. Esta opción solo se admite si todas las subredes seleccionadas tienen ambos IPv4 rangos de direcciones. IPv6
En el caso de los grupos de seguridad, seleccione los grupos de seguridad que desee asociar a las interfaces de red del VPC punto final. Debería seleccionar todos los grupos de seguridad que están conectados a la instancia y EC2 la instancia de base de datos de Neptune.
En Política, seleccione Acceso total para permitir que todos los directores realicen todas las operaciones en todos los recursos del VPC punto final. De lo contrario, seleccione Personalizado para adjuntar una política de VPC punto final que controle los permisos que tienen los directores para realizar acciones en los recursos a través del VPC punto final. Esta opción solo está disponible si el servicio admite políticas de VPC puntos finales. Para obtener más información, consulte Políticas de puntos de conexión.
(Opcional) Para añadir una etiqueta, elija Agregar etiqueta nueva e introduzca la clave y el valor de la etiqueta.
Elija Crear punto de conexión.
Para obtener información sobre la creación del punto de conexión, consulte VPCEndpoints en la Guía del VPC usuario de Amazon. Tenga en cuenta que Amazon STS VPC Endpoint es un requisito previo obligatorio para el encadenamiento de IAM roles.
Ahora que ha concedido el acceso al AWS STS punto final, puede prepararse para cargar los datos. Para obtener más información acerca de los formatos admitidos, consulte Load Data Formats.
Encadenamiento de roles en un comando del programa de carga
Puede especificar el encadenamiento de roles al ejecutar un comando de carga incluyendo una lista de roles separados por comas ARNs en el parámetro. iamRoleArn
Aunque la mayoría de las veces solo necesitará tener dos roles en una cadena, es posible encadenar tres o más. Por ejemplo, este comando del programa de carga encadena tres roles:
curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://
(the target bucket name)
/(the target date file name)
", "iamRoleArn" : "arn:aws:iam::(Account A ID)
:role/(RoleA)
,arn:aws:iam::(Account B ID)
:role/(RoleB)
,arn:aws:iam::(Account C ID)
:role/(RoleC)
", "format" : "csv", "region" : "us-east-1" }'