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.
Fedérate para Snowflake Catálogo Iceberg
AWS Glue Data Catalog se federa para Snowflake usar las credenciales de OAuth2 de un principal de servicio. Snowflake Puede usar esta federación para conectarse a los catálogos y conectarse a Snowflake Horizon ellos. Snowflake Polaris Este mecanismo de autenticación permite a Data Catalog acceder a los metadatos de varios objetos (como catálogos, bases de datos y tablas) de su catálogo, en función de los privilegios asociados al principal de servicio. Para garantizar el acceso a los objetos correctos, es esencial conceder al director de servicio los permisos necesarios para leer los metadatos de estos objetos. Snowflake
Requisitos previos
Antes de crear un catálogo federado en Data Catalog que esté gobernado por Lake Formation, asegúrese de tener los siguientes permisos:
Su principal de IAM (usuario o rol) debe tener los siguientes permisos:
-
Permisos de formación de lagos —,
lakeformation:RegisterResourcelakeformation:DescribeResource -
AWS Glue permisos —
glue:CreateConnection,glue:CreateCatalog,glue:GetConnection,glue:PassConnection -
Permisos de Secrets Manager —
secretsmanager:CreateSecret,secretsmanager:GetSecretValue -
Permisos de IAM —
iam:CreateRole,,iam:AttachRolePolicyiam:PassRole
Debe ser administrador de un lago de datos de Lake Formation o tener CREATE_CATALOG permiso para acceder al catálogo de datos
Cree un catálogo federado
Inicie sesión en la consola y abra la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/
. Elige la AWS región que prefieras en el selector de regiones.
En el panel de navegación izquierdo, elija Catálogos.
Seleccione Crear catálogo para abrir el flujo de trabajo de creación de catálogo.
En el paso Elegir fuente de datos, seleccione una Snowflake de las opciones disponibles.
En la etapa Establecer detalles del catálogo, proporciona tres datos: detalles del catálogo, detalles de conexión y detalles de registro.
En el contenedor de detalles del catálogo, proporcione un nombre único a su catálogo AWS Glue federado e introduzca el nombre del Snowflake catálogo existente.
En el contenedor de detalles de conexiones, puede elegir entre una conexión existente a la que tenga acceso o proporcionar la configuración para crear un conector nuevo.
Las nuevas configuraciones de conexión incluyen:
Nombre de conexión: nombre único del objeto de AWS Glue conexión.
URL de instancia: la URL de punto final de tu Snowflake cuenta actual.
Autenticación: especifique la configuración de autenticación que se AWS Glue utiliza para conectarse al servidor de catálogo remoto. AWS Glue admite tanto la autenticación OAuth2 como la personalizada.
URL del token: especifique la URL del proveedor de identidad del catálogo remoto.
ID de cliente de OAuth2: (opcional) especifique el ID de cliente de la credencial de OAuth2 asociada a su catálogo remoto. Si no proporcionas un ID de cliente, la solicitud del token se autentica utilizando únicamente el secreto de cliente almacenado en él. AWS Secrets Manager
Secreto: almacena y usa el secreto del cliente de OAuth2 usando AWS Secrets Manager o ingresando el valor secreto en el cuadro de texto. Cuando escribes el secreto manualmente en la consola, AWS Glue crea el secreto en tu nombre.
Ámbito de la URL del token: especifique el ámbito de autenticación de OAuth.
Filtro de carátulas de catálogo: elija si desea llevar objetos en minúscula o en mayúscula de su catálogo remoto a Data Catalog.
Cree un rol de IAM que los directores de servicio de Lake Formation AWS Glue y los directores de servicio de Lake Formation puedan usar para acceder a ubicaciones secretas en Amazon S3 de tablas AWS Secrets Manager remotas de Iceberg, respectivamente. Seleccione el rol de IAM en el menú desplegable de registro. Consulte los pasos 2 y 3 de la siguiente sección de la CLI para obtener más información sobre la política de IAM.
Seleccione Probar conexión para comprobar si las propiedades de conexión y el acceso al rol de IAM están configurados correctamente.
Selecciona Siguiente para revisar la configuración.
Selecciona Crear catálogo en la página de revisión.
-
Crea un AWS Secrets Manager secreto
El AWS Glue conector admite dos tipos de autenticación: OAuth2 y personalizada. Cuando utilice la opción OAuth2, utilícela AWS Secrets Manager para almacenar el secreto del cliente del principal de servicio. Snowflake Más adelante, utilizará este secreto al crear la AWS Glue conexión. Para la autenticación personalizada, AWS Secrets Manager utilícela para almacenar y recuperar el token de acceso.
En el siguiente ejemplo, sustituya
,your-snowflake-secret,client_secretpor su propia información.regionaws secretsmanager create-secret \ --nameyour-snowflake-secret\ --description "Snowflake secret" \ --secret-string '{ "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret" }' \ --regionregionnota
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRETes una palabra clave reservada que se AWS Glue utiliza para hacer referencia a un valor secreto del cliente incluido en el secreto. Usa también la misma palabra clave cuando crees el secreto en la consola de Lake Formation. -
Cree un rol de IAM que dé acceso al objeto de AWS Glue conexión al secreto creado en el paso anterior
El objeto de AWS Glue conexión requiere acceso al AWS Secrets Manager secreto cuando lo utilizas AWS Secrets Manager para almacenar, recuperar y actualizar tu token secreto de OAuth. El objeto de AWS Glue conexión también requiere acceso para crear, describir y usar las interfaces de red de Amazon VPC cuando utilizas un punto de enlace de Amazon VPC para restringir la conectividad a tu cuenta. Snowflake
Cree una política de IAM y adjúntela a un rol de IAM. Agregue el principal AWS Glue de servicio a la política de confianza.
En el siguiente ejemplo
your-secrets-manager-ARN, sustituya yyour-vpc-idpor su propia información.your-subnet-id1ejemplo Política de IAM
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue" ], "Resource": [ "your-secrets-manager-ARN" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Condition": { "ArnEquals": { "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id", "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"] } } } ] }ejemplo Política de confianza
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Cree una política de IAM que otorgue a Lake Formation acceso de lectura a la ubicación del catálogo en Amazon S3
Como propietario de un catálogo federado en Data Catalog, utiliza Lake Formation para conceder a sus equipos de datos acceso detallado a tablas, acceso detallado (a nivel de columnas, filas y celdas) y acceso basado en etiquetas. Lake Formation utiliza una función de IAM que le da acceso a las ubicaciones subyacentes de Amazon S3 de sus tablas Iceberg remotas. Este acceso permite a Lake Formation vender credenciales de acceso por ámbito específico a los motores de análisis que consultan tablas remotas.
Cree una política de IAM y asígnela a una función de IAM. Agregue al director de servicio de Lake Formation a la política de confianza de roles.
En el siguiente ejemplo, reemplace
yamzn-s3-demo-bucketNpor su propia información.your-kms-keyejemplo Política de IAM
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": [ "your-kms-key" ] } ] }ejemplo Política de confianza
{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" }] }nota
Cuando utiliza la consola de Lake Formation para crear un catálogo federado, la consola utiliza un único rol de IAM con ambas políticas asociadas para completar la configuración.
-
Cree un objeto de conexión AWS Glue
AWS Glue el conector admite los métodos de autenticación OAuth2 y personalizados. El objeto de conexión del catálogo de datos admite una
CATALOG_CASING_FILTERconfiguración que permite llevar objetos en minúscula o mayúscula del catálogo remoto a Data Catalog.El siguiente ejemplo usa la configuración de autenticación OAuth2 para crear una conexión. AWS Glue Modifique el
añadiendo su información.highlighted sectionsaws glue create-connection \ --connection-input '{ "Name": "your-glue-connection-to-snowflake-account", "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG", "ConnectionProperties": { "INSTANCE_URL": "your-snowflake-account-URL", "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access", "CATALOG_CASING_FILTER": "LOWERCASE_ONLY" }, "AuthenticationConfiguration": { "AuthenticationType": "OAUTH2", "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS", "TokenUrl": "your-internal-or-external-token-server-url", "OAuth2ClientApplication": { "UserManagedClientApplicationClientId": "our-client-id" }, "TokenUrlParametersMap": { "scope": "all-apis" } }, "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret" } }'nota
El campo
OAuth2ClientApplicationes opcional. Si la omites, la solicitud del token se autentica utilizando únicamente el secreto de cliente almacenado en ella AWS Secrets Manager, sin enviar un identificador de cliente. -
Registre AWS Glue la conexión como un recurso de Lake Formation
Con el objeto de AWS Glue conexión (creado en el paso 4) y el rol de IAM (creado en el paso 3), ahora puede registrar el objeto de AWS Glue conexión como un recurso administrado por Lake Formation.
Reemplace el
y elyour-glue-connector-arncon su información.your-IAM-role-ARN-having-LF-accessaws lakeformation register-resource \ --resource-arnyour-glue-connector-arn\ --role-arnyour-IAM-role-ARN-having-LF-access\ --with-federation \ --with-privileged-access -
Cree un catálogo federado en Data Catalog
Después de crear un objeto de AWS Glue conexión y registrarlo en Lake Formation, puede crear un catálogo federado en el catálogo de datos:
Proporcione al catálogo federado un nombre único en
, haga referencia al catálogo en Snowflake atyour-federated-catalog-namee introduzca el nombre de la conexión creado anteriormente en.catalog-name-in-Snowflakeyour-glue-connection-nameaws glue create-catalog \ --nameyour-federated-catalog-name\ --catalog-input '{ "FederatedCatalog": { "Identifier":catalog-name-in-Snowflake", "ConnectionName":your-glue-connection-name" }, "CreateTableDefaultPermissions": [], "CreateDatabaseDefaultPermissions": [] }'
Consideraciones a la hora de integrar con Snowflake
-
Cuando depositas recursos (como bases de datos y tablas)Snowflake, Lake Formation no revoca automáticamente los permisos concedidos a ese recurso federado. Para eliminar los permisos de acceso, debe revocar explícitamente los permisos que se otorgaron anteriormente al recurso federado mediante Lake Formation.
-
Al montar un catálogo remoto con la
CATALOG_CASING_FILTER='UPPERCASE_ONLY'configuración, las bases de datos y tablas con identificadores en mayúsculas se federan, pero los objetos con identificadores en minúscula no. -
Puede reutilizar la misma AWS Glue conexión para crear varios catálogos federados. Al eliminar un catálogo, no se eliminará la conexión asociada. Para eliminar una conexión, utilice el
aws glue delete-connectioncomando AWS CLI y asegúrese de eliminar primero todos los catálogos asociados. -
No se admiten los espacios de nombres anidados en el Polaris catálogo. Es decir, la federación de catálogos puede acceder a Iceberg tablas remotas que siguen una notación de 3 partes.
catalog.database.table