Utilisation des noms de ressource Amazon pour accéder aux ressources AWS

Vous pouvez utiliser les noms de ressource Amazon pour accéder aux ressources AWS avec Autonomous Database.

A propos de l'utilisation des noms de ressource Amazon pour accéder aux ressources AWS

Lorsque vous utilisez l'authentification basée sur le rôle ARN avec Autonomous Database, vous pouvez accéder en toute sécurité aux ressources AWS sans créer et 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 à partir d'un bucket AWS S3 vers votre instance Autonomous Database, 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 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 Autonomous Database. Vous pouvez ainsi définir une stratégie pour limiter l'accès aux ressources AWS par rôle. Par exemple, vous pouvez définir 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 Database gère les informations d'identification temporaires générées à partir de l'opération de prise de rôle AWS.

Etapes de configuration de l'utilisation d'ARN avec Autonomous Database

Avant de créer des informations d'identification à l'aide d'un numéro ARN dans Autonomous Database, 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 Autonomous Database. 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 Autonomous Database.

Dans AWS, le rôle ARN est l'identificateur de l'accès fourni et peut être consulté sur la console AWS. Pour renforcer la sécurité, lorsque l'administrateur AWS configure le rôle, les stratégies et la relation d'approbation du compte AWS, il doit également configurer un ID externe dans la relation d'approbation du rôle.

L'ID externe offre 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 Autonomous Database :

  • OCID de compartiment

  • OCID de base de données

  • OCID de la location

Sur AWS, le rôle ne peut être pris que par des utilisateurs sécurisés et 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 d'approbation du rôle.

Remarque

La définition de l'ID externe est requise pour la sécurité.

La figure suivante décrit les étapes de configuration :

Description de adb_arn_config_steps.eps
Description de l'image adb_arn_config_steps.eps

Etapes d'utilisation des noms de ressource avec DBMS_CLOUD

Chaque ressource AWS a sa propre identité et la ressource s'authentifie auprès de l'instance Autonomous Database à l'aide d'informations d'identification DBMS_CLOUD que vous créez avec des paramètres qui identifient l'ARN. Autonomous Database crée et sécurise les informations d'identification de principal que vous utilisez pour accéder aux ressources AWS.

Pour créer des informations d'identification avec des paramètres ARN pour accéder aux ressources AWS, procédez comme suit :

  1. 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 stratégies pour l'ARN que vous utilisez avec Autonomous Database et mettez à jour la relation d'approbation pour le rôle. L'ARN de l'utilisateur Oracle est configuré lorsque la relation d'approbation pour le rôle est mise à jour.

    Pour plus d'informations, reportez-vous à Exécution des prérequis de gestion AWS pour utiliser les noms de ressource Amazon.

  2. Suivez les étapes prérequises sur Autonomous Database : sur Autonomous Database, vous devez activer l'utilisateur ADMIN ou un autre utilisateur afin qu'il utilise les informations d'identification avec les paramètres ARN pour accéder aux ressources AWS.

    Pour plus d'informations, reportez-vous à Exécution des prérequis Autonomous Database pour utiliser les noms de ressource Amazon.

  3. Créez des informations d'identification à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL et fournissez les paramètres qui identifient un rôle AWS. A l'aide de l'objet d'identification, Autonomous 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 des paramètres ARN pour accéder aux ressources AWS.

  4. Utilisez l'objet d'informations d'identification créé à l'étape précédente à l'aide d'une fonction ou d'une procédure DBMS_CLOUD qui utilise un paramètre d'informations d'identification, tel que DBMS_CLOUD.COPY_DATA ou DBMS_CLOUD.LIST_OBJECTS.

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 d'approbation AWS. Effectuez ces étapes avant d'utiliser DBMS_CLOUD.CREATE_CREDENTIAL pour créer des informations d'identification avec un paramètre ARN sur Autonomous Database.

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, lorsque vous utilisez Autonomous Database, vous pouvez accéder aux données d'un bucket S3, effectuer une opération sur les données, puis réécrire les données modifiées dans le bucket S3.

Remarque

En fonction de votre configuration AWS existante et de l'ID externe que vous utilisez, vous n'avez pas besoin de créer un rôle et une stratégie pour chaque instance Autonomous Database. Si vous disposez déjà d'un rôle AWS contenant la stratégie nécessaire pour accéder à une ressource, par exemple afin d'accéder au stockage cloud S3, vous pouvez modifier la relation d'approbation afin d'inclure les détails décrits à l'étape 3. De même, si vous disposez déjà d'un rôle doté de la relation d'approbation nécessaire, vous pouvez l'utiliser 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.

Dans la console de gestion AWS ou à l'aide des API, un administrateur AWS peut effectuer les opérations suivantes :

  1. Création d'une stratégie. Dans la stratégie, indiquez les droits d'accès aux ressources AWS telles que les buckets S3.
  2. Créez un rôle et associez-lui la stratégie.
    1. Accédez à la console de gestion AWS et sélectionnez Identity and Access Management (IAM).
    2. Cliquez sur Créer un rôle.
    3. Sélectionnez autre compte AWS.
    4. Saisissez votre ID de compte.
      Vous l'utilisez comme valeur temporaire. Vous la remplacerez ultérieurement par l'ID de compte que vous utilisez pour accéder aux ressources AWS.
    5. Dans la zone Options, sélectionnez Exiger un ID externe et saisissez un ID externe temporaire, tel que 0000. Vous remplacerez cet ID externe ultérieurement par une valeur valide.
    6. Cliquez sur Droits d'accès suivants pour attacher les stratégies que vous avez créées à l'étape 1 ou d'autres stratégies à appliquer au rôle.
    7. Cliquez sur Balises suivantes, et appliquez ou créez des balises selon vos besoins pour le rôle.
    8. Cliquez sur Vérification suivante, et ajoutez un nom de rôle et une description de rôle.
    9. Cliquez sur Créer un rôle.

    Vous utilisez l'ARN du rôle avec DBMS_CLOUD.CREATE_CREDENTIAL pour 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 la délégation de droits d'accès à un utilisateur IAM.

  3. Indiquez la relation d'approbation du rôle.
    1. Dans la liste Rôles, sous Nom de rôle, sélectionnez le rôle que vous avez créé.
    2. Sur la page Récapitulatif des rôles, pour le rôle sélectionné, sélectionnez l'onglet Relations de confiance.
    3. Dans la relation d'approbation, cliquez sur Modifier la relation d'approbation.
    4. Modifiez la relation d'approbation pour indiquer le paramètre Principal AWS.

      Le nom ARN de cet utilisateur AWS est disponible dans la vue CLOUD_INTEGRATIONS. Pour plus d'informations, reportez-vous à Exécution des prérequis Autonomous Database pour utiliser les noms de ressource Amazon.

    5. Modifiez la relation d'approbation pour indiquer l'ID externe.

      Sur Autonomous Database, lorsque vous créez des informations d'identification AWS ARN avec DBMS_CLOUD.CREATE_CREDENTIAL ou lorsque vous activez AWS ARN avec DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la valeur de paramètre external_id_type est par défaut database_ocid. Vous pouvez éventuellement définir la valeur external_id_type sur l'une des valeurs prises en charge : database_ocid, compartment_ocid ou tenant_ocid.

      Lorsque vous utilisez l'OCID de base de données en tant qu'ID externe, la relation d'approbation de la stratégie n'accepte que l'instance Autonomous Database 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 Autonomous Database du compartiment. Vous pouvez utiliser le même rôle ARN pour accorder l'accès aux ressources AWS à n'importe quelle instance Autonomous Database 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 instance Autonomous Database de la location indiquée.

      Précédemment, à l'étape 2, vous avez défini l'ID externe de la relation d'approbation sur la valeur temporaire 0000.

      Sur AWS, configurez la valeur de l'ID externe de la relation d'approbation pour qu'elle correspond à l'un des éléments suivants :

      • Lorsque le type external_id_type est database_ocid, sur AWS, configurez l'ID externe de la relation d'approbation du rôle en tant qu'OCID de base de données.

        L'OCID de base de données est disponible à l'aide de la requête suivante :

        SELECT cloud_identity FROM v$pdbs;

        Pour plus d'informations sur l'obtention des détails de location.

      • Lorsque le type external_id_type est compartment_ocid, sur AWS, configurez l'ID externe de la relation d'approbation du rôle en tant qu'OCID de compartiment.

        L'OCID de compartiment est disponible sur la page de détails du compartiment dans 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 sur Compartiments. Sélectionnez le compartiment contenant l'instance Autonomous Database pour voir l'ID du compartiment.

      • Lorsque le type external_id_type est tenant_ocid, sur AWS, configurez l'ID externe de la relation d'approbation du rôle en tant qu'OCID de location.

        L'OCID de location est disponible sur la page de détails de la location dans la console Oracle Cloud Infrastructure. Pour rechercher la page de détails de la location, dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Administration et gouvernance, puis sélectionnez Détails de location. L'OCID de la location est affiché dans l'onglet Informations sur la location.

      • Lorsque vous définissez la valeur pour ExternalID, la valeur de l'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 fichier JSON lorsque vous modifiez la relation d'approbation.

      Description de arn_aws_create_role_aws_trust_final.png
      Description de l'image arn_aws_create_role_aws_trust_final.png

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 Autonomous Database pour utiliser les noms de ressource Amazon.

Exécution des prérequis Autonomous Database pour utiliser les noms de ressource 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 Autonomous Database.

Par défaut, les services d'informations d'identification ARN ne sont pas activés sur Autonomous Database. 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 les paramètres ARN.

  1. Activez l'utilisation des informations d'identification ARN sur l'instance Autonomous Database.
    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 voulez 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 params grant_option sur TRUE.

    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;
    /

    Une fois cette commande exécutée, adb_user dispose des privilèges permettant d'activer les informations d'identification ARN pour les autres utilisateurs.

    Par exemple, si vous êtes connecté 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.

  2. Interrogez la vue CLOUD_INTEGRATIONS pour obtenir le numéro 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/username

    La vue CLOUD_INTEGRATIONS est disponible pour l'utilisateur ADMIN ou pour un utilisateur disposant des privilèges DWROLE.

    L'administrateur AWS utilise la valeur aws_user_arn lors de la configuration de la relation d'approbation du rôle AWS avec le rôle et les stratégies sur le système AWS. La saisie de cette valeur accorde à DBMS_CLOUD les droits d'accès aux ressources AWS côté AWS.

Une fois que vous avez activé ARN sur l'instance Autonomous Database en exécutant DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, les informations d'identification nommées AWS$ARN peuvent être utilisées avec n'importe quelle API DBMS_CLOUD qui prend des informations d'identification comme 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 d'informations d'identification avec les paramètres ARN pour accéder aux ressources AWS

Une fois que l'utilisation d'ARN est activée pour l'instance Autonomous Database et que l'ARN est configuré par l'administrateur AWS, sur Autonomous Database, vous pouvez créer un objet d'informations d'identification avec des paramètres d'ARN.

Autonomous Database crée et sécurise les informations d'identification de principal que vous utilisez pour accéder aux ressources Amazon lorsque vous fournissez l'objet d'identification avec les procédures et fonctions DBMS_CLOUD.

Pour utiliser des ressources Amazon avec Autonomous Database, procédez comme suit :

  1. Créez des informations d'identification à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL avec le paramètre params pour indiquer la valeur ARN. Exemples :
    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.

  2. Utilisez une procédure DBMS_CLOUD pour 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 ARN pour les ressources AWS

Les informations d'identification ARN que vous utilisez sur Autonomous Database fonctionnent avec le service de jeton AWS qui vous permet d'utiliser des informations d'identification temporaires basées sur un rôle pour accéder aux ressources AWS à partir d'Autonomous Database.

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 en créer d'autres pour accéder aux ressources AWS.

Pour mettre à jour les informations d'identification, procédez comme suit :

  1. Utilisez DBMS_CLOUD.UPDATE_CREDENTIAL pour mettre à jour les informations d'identification basées sur ARN afin d'indiquer une nouvelle valeur ARN.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    Cela permet de mettre à jour l'attribut aws_role_arn avec la nouvelle valeur new_ARN_value pour les informations d'identification nommées DEF_CRED_ARN.

  2. Utilisez DBMS_CLOUD.UPDATE_CREDENTIAL pour mettre à jour des informations d'identification basées sur ARN afin de mettre à jour la valeur d'attribut external_id_type.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    Cette opération met à jour la valeur de l'attribut external_id_type avec la valeur compartment_ocid.

Pour plus d'informations, reportez-vous à UPDATE_CREDENTIAL Procédure et à CREATE_CREDENTIAL Procédure.