Utilisation des noms de ressource Amazon pour accéder aux ressources AWS
Vous pouvez utiliser des noms de ressource Amazon (ARN) pour avoir accès à des ressources AWS avec la base de données Autonomous AI.
A propos de l'utilisation des noms de ressource Amazon pour accéder aux ressources AWS
Lorsque vous utilisez l'authentification basée sur les rôles ARN avec Autonomous AI Database, vous pouvez accéder en toute sécurité aux ressources AWS sans créer ni enregistrer d'informations d'identification basées sur des clés d'accès AWS IAM à long terme.
Par exemple, vous pouvez charger des données d'un bucket AWS S3 dans votre base de données Autonomous AI, effectuer une opération sur les données, puis réécrire les données modifiées dans le bucket S3. Vous pouvez le faire sans utiliser d'ARN si vous disposez d'informations d'identification utilisateur AWS pour accéder au bucket S3. Cependant, l'utilisation d'ARN basés sur les rôles pour accéder aux ressources AWS à partir d'Autonomous AI Database présente les avantages suivants :
-
Vous pouvez créer un accès basé sur les rôles, avec différentes stratégies pour différents utilisateurs ou schémas qui ont besoin d'accéder aux ressources AWS à partir d'une instance de base de données Autonomous AI. Vous pouvez ainsi définir une stratégie pour limiter l'accès aux ressources AWS par rôle. Par exemple, définition d'une stratégie limitant l'accès en lecture seule, par rôle, à un bucket S3.
-
Les informations d'identification basées sur ARN offrent une meilleure sécurité car vous n'avez pas besoin de fournir des informations d'identification utilisateur AWS à long terme dans le code pour accéder aux ressources AWS. Autonomous AI Database gère les informations d'identification temporaires générées à partir de l'opération AWS Assume Role.
Etapes de configuration de l'utilisation d'ARN avec Autonomous AI Database
Avant de créer des informations d'identification à l'aide d'un ARN dans la base de données Autonomous AI, dans AWS, l'administrateur de compte doit définir une stratégie qui vous permet d'accéder aux ressources AWS, telles qu'un bucket S3. Par défaut, les services d'informations d'identification ARN ne sont pas activés sur la base de données Autonomous AI. L'utilisateur ADMIN active les informations d'identification ARN pour l'utilisateur nécessaire, ce qui lui permet de créer et d'utiliser des informations d'identification ARN sur l'instance de base de données Autonomous AI.
Dans AWS, le rôle ARN est l'identificateur de l'accès fourni et peut être consulté sur la console AWS. Pour plus de sécurité, lorsque l'administrateur AWS configure le rôle, les stratégies et la relation de confiance pour le compte AWS, il doit également configurer un ID externe dans la relation de confiance du rôle.
L'ID externe fournit une protection supplémentaire pour la prise de rôles. L'administrateur AWS configure l'ID externe comme l'un des éléments suivants, en fonction de l'instance de base de données Autonomous AI :
-
OCID de compartiment
-
OCID de base de données
-
OCID de location
Sur AWS, le rôle ne peut être assumé que par des utilisateurs de confiance identifiés par l'ID externe inclus dans l'URL de demande, où l'ID externe fourni dans la demande correspond à l'ID externe configuré dans la relation de confiance du rôle.
Remarque
Remarque : Pour des raisons de sécurité, vous devez définir l'ID externe.
La figure suivante décrit les étapes de configuration :

Description de l'image adb_arn_config_steps.png
Etapes d'utilisation des ARN avec DBMS_CLOUD
Chaque ressource AWS dispose de sa propre identité et la ressource s'authentifie auprès de l'instance de base de données Autonomous AI à l'aide d'informations d'identification DBMS_CLOUD que vous créez avec des paramètres qui identifient le numéro ARN. Autonomous AI Database crée et sécurise les informations d'identification principales que vous utilisez pour accéder aux ressources AWS.
Lorsque vous appelez une procédure ou une fonction DBMS_CLOUD qui utilise des informations d'identification basées sur ARN, la base de données Autonomous AI lance un appel sts:AssumeRole dans votre compte AWS. Cette action invite le service de jeton de sécurité AWS (STS) à émettre des informations d'identification de sécurité temporaires pour l'opération.
L'appel sts:AssumeRole est déclenché par un principal de service AWS contrôlé par Oracle spécifiquement désigné à cette fin. Il n'existe aucun compte AWS intermédiaire appartenant à Oracle dans lequel les données sont stockées ou via lequel les données sont transférées.
Toutes les autorisations d'accès à vos ressources AWS sont évaluées directement par AWS au moment où les informations d'identification temporaires sont utilisées, en fonction des stratégies IAM et des relations de confiance que vous configurez pour le rôle dans votre compte AWS. Pour cela, vous devez créer des informations d'identification dans Autonomous AI Database qui incluent l'ARN du rôle AWS IAM. Ces informations d'identification permettent à Autonomous AI Database de prendre le rôle indiqué et d'obtenir des informations d'identification temporaires auprès d'AWS STS.
En configurant ces informations d'identification, Autonomous AI Database peut accéder en toute sécurité aux ressources AWS à l'aide des informations d'identification temporaires obtenues via le processus sts:AssumeRole.
Pour obtenir des étapes détaillées sur la configuration des rôles IAM et des relations de confiance pour accéder en toute sécurité aux ressources AWS à partir de votre base de données Autonomous AI, reportez-vous à Utilisation des noms de ressource Amazon (ARN) de rôle pour accéder en toute sécurité aux ressources AWS à partir de votre base de données Autonomous AI.
Pour créer des informations d'identification avec des paramètres ARN pour accéder aux ressources AWS, procédez comme suit :
-
Effectuez les étapes prérequises dans le compte AWS : dans votre compte AWS, à partir de la console de gestion AWS ou à l'aide de l'interface de ligne de commande, créez les rôles et les stratégies pour l'ARN que vous utilisez avec la base de données Autonomous AI et mettez à jour la relation de confiance pour le rôle. Le numéro ARN de l'utilisateur Oracle est configuré lorsque la relation d'approbation du rôle est mise à jour.
Pour plus d'informations, reportez-vous à Exécution des prérequis de gestion AWS pour utiliser des noms de ressource Amazon (ARN).
-
Effectuez les étapes prérequises sur la base de données Autonomous AI : sur la base de données Autonomous AI, vous devez autoriser l'utilisateur ADMIN ou un autre utilisateur à utiliser des informations d'identification avec des paramètres ARN pour accéder aux ressources AWS.
Pour plus d'informations, reportez-vous à Exécution des prérequis de base de données d'IA autonome pour utiliser les ARN Amazon.
-
Créez des informations d'identification avec
DBMS_CLOUD.CREATE_CREDENTIALet fournissez les paramètres qui identifient un rôle AWS. A l'aide de l'objet d'informations d'identification, Autonomous AI Database peut accéder aux ressources AWS comme indiqué dans les stratégies définies pour le rôle dans le compte AWS.Pour plus d'informations sur ces étapes, reportez-vous à Création d'informations d'identification avec les paramètres ARN pour accéder aux ressources AWS.
-
Utilisez l'objet d'informations d'identification créé à l'étape précédente avec une procédure ou une fonction
DBMS_CLOUDqui accepte un paramètre d'informations d'identification, tel queDBMS_CLOUD.COPY_DATAouDBMS_CLOUD.LIST_OBJECTS.
La figure suivante décrit les étapes d'utilisation des noms ARN avec DBMS_CLOUD :

Description de l'illustration aws-arn-authentication-dbms-cloud.png
Exécution des prérequis de gestion AWS pour utiliser les noms de ressource Amazon
A l'aide de la console de gestion AWS ou des API, créez un utilisateur, un rôle, des stratégies et une relation de confiance AWS. Vous devez effectuer ces étapes avant d'utiliser DBMS_CLOUD.CREATE_CREDENTIAL pour créer des informations d'identification avec un paramètre ARN sur la base de données Autonomous AI.
Pour utiliser un ARN pour accéder aux ressources AWS, votre administrateur AWS définit les stratégies et un principal qui vous permet d'accéder aux ressources AWS. Par exemple, lors de l'utilisation d'une base de données Autonomous AI, vous pouvez avoir besoin d'accéder aux données à partir d'un bucket S3, d'effectuer une opération sur les données, puis de réécrire les données modifiées dans le bucket S3.
Remarque
Remarque : en fonction de votre configuration AWS existante et de l'ID externe que vous utilisez, vous n'avez pas besoin de créer de rôle et de stratégie pour chaque instance de base de données Autonomous AI. Si vous disposez déjà d'un rôle AWS contenant la stratégie nécessaire pour accéder à une ressource, par exemple pour accéder au stockage cloud S3, vous pouvez modifier la relation de confiance afin d'inclure les détails à l'étape 3. De même, si vous disposez déjà d'un rôle avec la relation de confiance nécessaire, vous pouvez utiliser ce rôle pour accéder à toutes vos bases de données dans un compartiment ou une location OCI si vous utilisez un ID externe qui indique l'OCID de compartiment ou l'OCID de location.
A partir de la console de gestion AWS ou à l'aide des API, un administrateur AWS effectue les opérations suivantes :
-
Créer une stratégie. Dans la stratégie, vous indiquez les droits d'accès aux ressources AWS telles que les buckets S3.
Pour plus d'informations, reportez-vous à Création d'une stratégie IAM pour accéder aux ressources Amazon S3.
-
Créez un rôle et associez la stratégie au rôle.
-
Accédez à la console AWS Management Console et choisissez Identity and Access Management (IAM).
-
Cliquez sur Créer un rôle.
-
Sélectionnez Autre compte AWS.
-
Saisissez votre ID de compte.
Vous l'utilisez comme valeur temporaire. Ensuite, remplacez-le par l'ID de compte que vous utilisez pour accéder aux ressources AWS.
-
Dans la zone Options, sélectionnez Exiger un ID externe et entrez un ID externe temporaire, tel que
0000. Vous remplacerez ensuite cet ID externe par une valeur valide. -
Cliquez sur Droits d'accès suivants pour attacher les stratégies que vous avez créées à l'étape 1 ou les autres stratégies à appliquer au rôle.
-
Cliquez sur Balises suivantes et appliquez ou créez des balises selon vos besoins pour le rôle.
-
Cliquez sur Vérification suivante et ajoutez un nom de rôle et une description de rôle.
-
Cliquez sur Créer un rôle.
Utilisez le numéro ARN du rôle avec
DBMS_CLOUD.CREATE_CREDENTIALpour créer des objets d'informations d'identification avec des paramètres ARN afin d'accéder aux ressources AWS.Pour plus d'informations, reportez-vous à Création d'un rôle pour déléguer des droits d'accès à un utilisateur IAM.
-
-
Indiquez une relation de confiance pour le rôle.
-
Dans la liste Rôles, sous Nom du rôle, sélectionnez le rôle que vous avez créé.
-
Sur la page Récapitulatif des rôles pour le rôle sélectionné, sélectionnez l'onglet Relations de confiance.
-
Dans la relation de confiance, cliquez sur Modifier la relation de confiance.
-
Modifiez la relation de confiance pour indiquer le paramètre Principal AWS.
Cet ARN utilisateur AWS est disponible dans la vue CLOUD_INTEGRATIONS. Pour plus d'informations, reportez-vous à Exécution des prérequis de base de données d'IA autonome pour utiliser les ARN Amazon.
-
Modifiez la relation de confiance pour indiquer l'ID externe.
Sur la base de données Autonomous AI lorsque vous créez des informations d'identification AWS ARN avec
DBMS_CLOUD.CREATE_CREDENTIALou lorsque vous activez AWS ARN avecDBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la valeur du paramètreexternal_id_typeest par défautdatabase_ocid. Vous pouvez éventuellement définir la valeurexternal_id_typesur l'une des valeurs prises en charge :database_ocid,compartment_ocidoutenant_ocid.Lorsque vous utilisez l'OCID de base de données comme ID externe, la relation de confiance de la stratégie ne fait confiance qu'à l'instance de base de données Autonomous AI indiquée avec l'OCID. Si vous utilisez un OCID de compartiment, la relation de confiance de la stratégie fait confiance à toutes les instances de base de données d'IA autonome du compartiment et vous pouvez utiliser le même rôle ARN pour accorder l'accès aux ressources AWS à n'importe quelle base de données d'IA autonome du compartiment indiqué. De même, si vous utilisez l'OCID de location, vous pouvez utiliser le même rôle ARN pour accorder l'accès aux ressources AWS à n'importe quelle base de données Autonomous AI dans la location indiquée.
Auparavant, à l'étape 2, vous définissez l'ID externe de la relation de confiance sur la valeur temporaire
0000.Sur AWS, vous configurez la valeur d'ID externe de relation de confiance pour qu'elle corresponde à l'un des éléments suivants :
-
Lorsque le type
external_id_typeestdatabase_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de base de données.L'OCID de base de données est disponible en exécutant l'interrogation suivante :
SELECT cloud_identity FROM v$pdbs;Pour plus d'informations, reportez-vous à Obtention des détails de location.
-
Lorsque le type
external_id_typeestcompartment_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de compartiment.L'OCID de compartiment est disponible sur la page de détails du compartiment à partir de la console Oracle Cloud Infrastructure. Pour rechercher la page de détails du compartiment, dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Identité et sécurité, puis sélectionnez Compartiments. Sélectionnez le compartiment qui contient l'instance de base de données Autonomous AI pour visualiser l'ID de compartiment.
-
Lorsque le type
external_id_typeesttenant_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de location.L'OCID de location est disponible sur la page de détails de la location à partir de la console Oracle Cloud Infrastructure. Pour rechercher la page de détails de location, dans le menu de navigation de gauche Oracle Cloud Infrastructure, cliquez sur Gouvernance et administration, puis sélectionnez Détails de location. L'onglet Informations sur la location affiche l'OCID de location.
-
Lorsque vous définissez la valeur pour ExternalID, la valeur d'OCID doit être en majuscules par défaut. Si vous voulez fournir l'OCID en minuscules, définissez la condition "
StringEqualsIgnoreCase" au lieu de "StringEquals" dans le JSON lorsque vous modifiez la relation de confiance.
-
Pour plus d'informations, reportez-vous à Utilisation de stratégies d'approbation avec le rôle IAM et à Utilisation d'un ID externe lors de l'octroi de l'accès à vos ressources AWS à un tiers.
-
Une fois la configuration du rôle ARN terminée, vous pouvez activer ARN sur l'instance. Pour plus d'informations, reportez-vous à Exécution des prérequis de base de données d'IA autonome pour utiliser les ARN Amazon.
Exécution des prérequis de base de données Autonomous AI pour utiliser les ARN Amazon
Avant d'utiliser une ressource AWS avec DBMS_CLOUD.CREATE_CREDENTIAL avec un paramètre ARN, l'utilisateur ADMIN doit activer ARN sur l'instance de base de données Autonomous AI.
Par défaut, les services d'informations d'identification ARN ne sont pas activés sur la base de données Autonomous AI. L'utilisateur ADMIN exécute la procédure DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH pour permettre à l'utilisateur ADMIN ou à d'autres utilisateurs de créer des informations d'identification avec des paramètres ARN.
-
Activez l'utilisation des informations d'identification ARN sur l'instance de base de données Autonomous AI.
BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( username => 'adb_user', params => JSON_OBJECT( 'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN')); END; /Si vous souhaitez que l'utilisateur indiqué dispose de privilèges permettant d'activer les informations d'identification ARN pour d'autres utilisateurs, définissez le paramètre
paramsgrant_optionsurTRUE.Par exemple :
BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( username => 'adb_user', params => JSON_OBJECT( 'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN', 'grant_option' value TRUE )); END; /Après avoir exécuté cette commande,
adb_userdispose de privilèges permettant d'activer les informations d'identification ARN pour d'autres utilisateurs.Par exemple, si vous connectez-vous en tant que
adb_user, vous pouvez exécuter la commande suivante :BEGIN DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH( username => 'adb_user2'); END; /Pour plus d'informations, reportez-vous à Procédure ENABLE_PRINCIPAL_AUTH.
-
Interrogez la vue
CLOUD_INTEGRATIONSpour obtenir le nom ARN de l'utilisateur AWS d'Oracle.SELECT param_value FROM CLOUD_INTEGRATIONS WHERE param_name = 'aws_user_arn';PARAM_VALUE -------------------------------------------- arn:aws:iam::account-ID:user/usernameLa vue
CLOUD_INTEGRATIONSest disponible pour l'utilisateur ADMIN ou pour un utilisateur disposant des privilègesDWROLE.L'administrateur AWS utilise la valeur
aws_user_arnlors de la configuration de la relation de confiance du rôle AWS avec le rôle et les stratégies sur le système AWS. La fourniture de cette valeur permet àDBMS_CLOUDd'accéder aux ressources AWS côté AWS.
Une fois que vous avez activé ARN sur l'instance de base de données Autonomous AI en exécutant DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, les informations d'identification nommées AWS$ARN sont disponibles pour utilisation avec toute API DBMS_CLOUD qui prend des informations d'identification en tant qu'entrée. A l'exception des informations d'identification nommées AWS$ARN, vous pouvez également créer des informations d'identification supplémentaires avec des paramètres ARN pour accéder aux ressources AWS. Pour plus d'informations, reportez-vous à Création d'informations d'identification avec les paramètres ARN pour accéder aux ressources AWS.
Création des informations d'identification avec les paramètres de nom de ressource Amazon pour accéder aux ressources AWS
Une fois que l'utilisation d'ARN est activée pour l'instance de base de données Autonomous AI et que l'ARN est configuré par l'administrateur AWS, vous pouvez créer un objet d'informations d'identification avec des paramètres ARN sur la base de données Autonomous AI.
Autonomous AI Database crée et sécurise les informations d'identification principales que vous utilisez pour accéder aux ressources Amazon lorsque vous fournissez l'objet d'informations d'identification avec des procédures et des fonctions DBMS_CLOUD.
Pour utiliser les ressources Amazon avec Autonomous AI Database, procédez comme suit :
-
Créez des informations d'identification à l'aide de la procédure
DBMS_CLOUD.CREATE_CREDENTIALavec le paramètreparamspour indiquer la valeur ARN. Par exemple :BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_ARN', params => JSON_OBJECT('aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN', 'external_id_type' value 'database_ocid') ); END; /Cette opération crée les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom d'informations d'identification.
Pour obtenir des informations détaillées sur les paramètres, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Utilisez une procédure
DBMS_CLOUDpour accéder à une ressource Amazon avec les informations d'identification ARN.Par exemple, utilisez
DBMS_CLOUD.LIST_OBJECTS.SELECT object_name FROM DBMS_CLOUD.LIST_OBJECTS( credential_name => 'DEF_CRED_ARN', location_uri => 'https://my-bucket.s3.us-west-2.amazonaws.com/');
Mise à jour des informations d'identification avec les paramètres de nom de ressource Amazon pour les ressources AWS
Les informations d'identification ARN que vous utilisez sur la base de données Autonomous AI fonctionnent avec le service de jeton AWS qui vous permet d'utiliser des informations d'identification temporaires basées sur des rôles pour accéder aux ressources AWS à partir de la base de données Autonomous AI.
Les jetons de courte durée émis par AWS STS pour ces opérations n'existent que dans la mémoire pendant la durée de l'opération et ne sont pas stockés en tant qu'informations d'identification à long terme.
Lorsqu'un administrateur AWS révoque les stratégies, les rôles ou la relation d'approbation, vous devez mettre à jour les informations d'identification ou créer de nouvelles informations d'identification pour accéder aux ressources AWS.
Pour mettre à jour les informations d'identification, procédez comme suit :
-
Utilisez
DBMS_CLOUD.UPDATE_CREDENTIALpour mettre à jour des informations d'identification basées sur ARN afin de fournir une nouvelle valeur ARN.BEGIN DBMS_CLOUD.UPDATE_CREDENTIAL( credential_name => 'DEF_CRED_ARN', attribute => 'aws_role_arn', value => 'new_ARN_value'); END; /L'attribut
aws_role_arnest ainsi mis à jour avec la nouvelle valeur new_ARN_value pour les informations d'identification nommées DEF_CRED_ARN. -
Utilisez
DBMS_CLOUD.UPDATE_CREDENTIALpour mettre à jour des informations d'identification basées sur ARN afin de mettre à jour la valeur d'attributexternal_id_type.BEGIN DBMS_CLOUD.UPDATE_CREDENTIAL( credential_name => 'DEF_CRED_ARN', attribute => 'external_id_type', value => 'compartment_ocid'); END; /La valeur de l'attribut
external_id_typeest ainsi mise à jour avec la valeurcompartment_ocid.
Pour plus d'informations, reportez-vous à Procédure UPDATE_CREDENTIAL et Procédure CREATE_CREDENTIAL.