機械翻訳について

Amazonリソース名(ARN)を使用したAWSリソースへのアクセス

Amazonリソース名(ARN)を使用すると、Autonomous Databaseを使用してAWSリソースにアクセスできます。

AWSリソースにアクセスするためのAmazonリソース名(ARN)の使用について

Autonomous DatabaseでARNロール・ベースの認証を使用すると、長期AWS IAMアクセス・キーに基づいて資格証明を作成および保存することなく、AWSリソースに安全にアクセスできます。

たとえば、AWS S3バケットからAutonomous Databaseにデータをロードし、データに対してなんらかの操作を実行し、変更したデータをS3バケットに書き戻すことができます。 これは、S3バケットにアクセスするためのAWSユーザー資格証明がある場合、ARNを使用せずに実行できます。 ただし、ロールベースのARNを使用してAutonomous DatabaseからAWSリソースにアクセスすると、次の利点があります:

  • ロールベースのアクセスは、Autonomous DatabaseインスタンスからAWSリソースにアクセスする必要があるユーザーやスキーマごとに異なるポリシーを使用して作成できます。 これにより、ロールごとにAWSリソースへのアクセスを制限するポリシーを設定できます。 たとえば、ロール別の読取り専用アクセスに制限するポリシーをS3バケットに設定します。
  • AWSリソースにアクセスするためにコードに長期のAWSユーザー資格証明を指定する必要がないため、ARNベースの資格証明によりセキュリティが向上します。 Autonomous Databaseは、AWS引き受けロール操作から生成された一時資格証明を管理します。

Autonomous Databaseを使用してARNの使用を構成するステップ

AWSでAutonomous DatabaseのARNを使用して資格証明を作成する前に、アカウント管理者がS3バケットなどのAWSリソースにアクセスできるポリシーを定義する必要があります。 デフォルトでは、ARN資格証明サービスはAutonomous Databaseでは有効になっていません。 ADMINユーザーは、必要なユーザーのARN資格証明を有効にして、Autonomous DatabaseインスタンスでARN資格証明を作成および使用できるようにします。

AWSでは、ロールARNは提供されたアクセスの識別子であり、AWSコンソールで確認できます。 セキュリティを強化するために、AWS管理者がAWSアカウントのロール、ポリシーおよび信頼関係を構成するときに、ロールの信頼関係で外部IDを構成する必要もあります。

外部IDは、ロールを引き受けるための追加の保護を提供します。 AWS管理者は、Autonomous Databaseインスタンスに基づいて、外部IDを次のいずれかとして構成します:

  • コンパートメントOCID

  • データベースOCID

  • テナンシOCID

AWSでは、ロールは、リクエストURLに含まれる外部IDによって識別される信頼できるユーザーのみが想定でき、リクエスト内の指定された外部IDはロール信頼関係で構成された外部IDと一致します。

ノート:

セキュリティには外部IDの設定が必要です。

次の図は、構成ステップの概要を示しています:

adb_arn_config_steps.epsの説明は以下のとおりです
図adb_arn_config_steps.epsの説明

DBMS_CLOUDでARNを使用するステップ

各AWSリソースには独自のアイデンティティがあり、リソースは、ARNを識別するパラメータを使用して作成したDBMS_CLOUD資格証明を使用して、Autonomous Databaseインスタンスで認証します。 Autonomous Databaseは、AWSリソースへのアクセスに使用するプリンシパル資格証明を作成および保護します。

AWSリソースにアクセスするためのARNパラメータを使用して資格証明を作成するには:

  1. AWSアカウントでの前提条件ステップの実行: AWSアカウントで、AWS管理コンソールまたはCLIを使用して、Autonomous Databaseで使用するARNのロールおよびポリシーを作成し、ロールの信頼関係を更新します。 OracleユーザーARNは、ロールの信頼関係が更新されるときに構成されます。

    詳細については、「Amazonリソース名(ARN)を使用するためのAWS管理前提条件の実行」を参照してください。

  2. Autonomous Databaseでの前提条件ステップの実行: Autonomous Databaseでは、ADMINユーザーまたは別のユーザーが、ARNパラメータを使用して資格証明を使用してAWSリソースにアクセスできるようにする必要があります。

    詳細については、「Amazon ARNを使用するためのAutonomous Databaseの前提条件の実行」を参照してください。

  3. DBMS_CLOUD.CREATE_CREDENTIALで資格証明を作成し、AWSロールを識別するパラメータを指定します。 資格証明オブジェクトを使用すると、Autonomous DatabaseはAWSアカウントのロールに定義されているポリシーで指定されているAWSリソースにアクセスできます。

    これらのステップの詳細は、「AWSリソースにアクセスするためのARNパラメータによる資格証明の作成」を参照してください。

  4. DBMS_CLOUD.COPY_DATADBMS_CLOUD.LIST_OBJECTSなどの資格証明パラメータを取得するDBMS_CLOUDプロシージャまたはファンクションを使用して、前のステップで作成した資格証明オブジェクトを使用します。

Amazonリソース名(ARN)を使用するためのAWS管理前提条件の実行

AWS管理コンソールまたはAPIを使用して、AWSユーザー、ロール、ポリシーおよび信頼関係を作成します。 これらのステップは、DBMS_CLOUD.CREATE_CREDENTIALとともに使用して、Autonomous DatabaseのARNパラメータを使用して資格証明を作成する前に実行します。

ARNを使用してAWSリソースにアクセスするには、AWS管理者がAWSリソースにアクセスできるポリシーおよびプリンシパルを定義します。 たとえば、Autonomous Databaseの使用中に、S3バケットのデータにアクセスし、データに対してなんらかの操作を実行し、変更したデータをS3バケットに書き戻すことができます。

ノート:

既存のAWS構成および使用する外部IDによっては、Autonomous Databaseインスタンスごとに新しいロールおよびポリシーを作成する必要はありません。 リソースへのアクセスに必要なポリシーを含むAWSロールがすでにある場合(S3クラウド・ストレージへのアクセスなど)、ステップ3で詳細を含めるように信頼関係を変更できます。 同様に、必要な信頼関係を持つロールがすでにある場合、コンパートメントOCIDまたはテナンシOCIDを指定する外部IDを使用すると、そのロールを使用してOCIコンパートメントまたはテナンシ内のすべてのデータベースにアクセスできます。

AWS管理コンソールまたはAPIを使用すると、AWS管理者は次のステップを実行します:

  1. ポリシーを作成します。 ポリシーで、S3バケットなどのAWSリソースにアクセスするための権限を指定します。

    詳細については、「Amazon S3リソースにアクセスするためのIAMポリシーの作成」を参照してください。

  2. ロールを作成し、そのロールにポリシーをアタッチします。
    1. AWS管理コンソールにアクセスし、Identity and Access Management (IAM)を選択します。
    2. 「Create role」をクリックします。
    3. 「別のAWSアカウント」を選択します。
    4. 「アカウントID」を入力します。
      これは一時的な値として使用します。 後でこれをAWSリソースへのアクセスに使用するアカウントIDに置き換えます。
    5. 「オプション」領域で「外部IDが必要」を選択し、一時外部ID (0000など)を入力します。 後で、この外部IDを有効な値に置き換えます。
    6. 「次の権限」をクリックして、ステップ1で作成したポリシーまたはロールに適用する他のポリシーをアタッチします。
    7. 「次のタグ」をクリックし、ロールに必要なタグを適用または作成します。
    8. 「次回レビュー」をクリックし、「ロール名」および「ロールの説明」を追加します。
    9. 「Create Role」をクリックします。

    ロールARNをDBMS_CLOUD.CREATE_CREDENTIALとともに使用して、ARNパラメータを使用して資格証明オブジェクトを作成し、AWSリソースにアクセスします。

    詳細については、「IAMユーザーに権限を委任するロールの作成」を参照してください。

  3. ロールの信頼関係を指定します。
    1. ロール・リストの「ロール名」で、作成したロールを選択します。
    2. 選択したロールのロール・サマリー・ページで、「信頼関係」タブを選択します。
    3. 信頼関係で、「信頼関係を編集」をクリックします。
    4. 信頼関係を編集して、プリンシパル・パラメータAWSを指定します。

      このAWSユーザーARNは、CLOUD_INTEGRATIONSビューで使用できます。 詳細については、「Amazon ARNを使用するためのAutonomous Databaseの前提条件の実行」を参照してください。

    5. 信頼関係を編集して、外部IDを指定します。

      Autonomous Databaseで、DBMS_CLOUD.CREATE_CREDENTIALを使用してAWS ARN資格証明を作成する場合、またはDBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHを使用してAWS ARNを有効にする場合、デフォルトではexternal_id_typeパラメータ値はdatabase_ocidです。 オプションで、external_id_type値をサポートされている値のいずれかに設定できます: database_ocidcompartment_ocidまたはtenant_ocid

      データベースOCIDを外部IDとして使用する場合、ポリシー信頼関係はOCIDで指定されたAutonomous Databaseインスタンスのみを信頼します。 コンパートメントOCIDを使用する場合、ポリシー信頼関係はコンパートメント内のすべてのAutonomous Databaseインスタンスを信頼し、同じロールARNを使用して、指定されたコンパートメント内の任意のAutonomous DatabaseにAWSリソースへのアクセス権を付与できます。 同様に、テナンシOCIDを使用する場合、同じロールARNを使用して、指定したテナンシの任意のAutonomous DatabaseにAWSリソースへのアクセス権を付与できます。

      ステップ2では、以前は、信頼関係の外部IDを一時的な値0000に設定します。

      AWSでは、次のいずれかに一致するように信頼関係の外部ID値を構成します:

      • external_id_typeタイプがdatabase_ocidの場合、AWSで、ロール信頼関係の外部IDをデータベースOCIDとして構成します。

        データベースOCIDは、次の問合せを実行して使用できます:

        SELECT cloud_identity FROM v$pdbs;

        詳細については、「テナンシ詳細の取得」を参照してください。

      • external_id_typeタイプがcompartment_ocidの場合、AWSでロールの信頼関係外部IDをコンパートメントOCIDとして構成します。

        コンパートメントOCIDは、Oracle Cloud Infrastructureコンソールのコンパートメントの詳細ページで使用できます。 コンパートメントの詳細ページを検索するには、Oracle Cloud Infrastructure左側のナビゲーション・メニューから「アイデンティティの&とセキュリティ」をクリックし、「コンパートメント」を選択します。 コンパートメントIDを表示するには、Autonomous Databaseインスタンスを含むコンパートメントを選択します。

      • external_id_typeタイプがtenant_ocidの場合、AWSで、ロール信頼関係外部IDをテナンシOCIDとして構成します。

        テナンシOCIDは、Oracle Cloud Infrastructureコンソールのテナンシ詳細ページで使用できます。 テナンシ詳細ページを検索するには、Oracle Cloud Infrastructure左側のナビゲーション・メニューからGovernance & Administrationをクリックし、「テナンシ詳細」を選択します。 「テナンシ情報」タブには、テナンシOCIDが表示されます。

      • ExternalIDの値を設定する場合、デフォルトではOCID値が大文字である必要があります。 小文字でOCIDを指定する場合、信頼関係を編集するときに、JSONで" StringEquals "のかわりに条件" StringEqualsIgnoreCase "を設定します。

      arn_aws_create_role_aws_trust_final.pngの説明は以下のとおりです
      「図arn_aws_create_role_aws_trust_final.pngの説明」

ARNロールの構成が終了したら、インスタンスでARNを有効にできます。 詳細については、「Amazon ARNを使用するためのAutonomous Databaseの前提条件の実行」を参照してください。

Amazon ARNを使用するためのAutonomous Databaseの前提条件の実行

DBMS_CLOUD.CREATE_CREDENTIALでARNパラメータを指定してAWSリソースを使用する前に、ADMINユーザーがAutonomous DatabaseインスタンスでARNを有効にする必要があります。

デフォルトでは、ARN資格証明サービスはAutonomous Databaseでは有効になっていません。 ADMINユーザーは、プロシージャDBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHを実行して、ADMINユーザーまたはその他のユーザーがARNパラメータを使用して資格証明を作成できるようにします。

  1. Autonomous DatabaseインスタンスでARN資格証明の使用を有効にします。
    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;
    /
    

    指定したユーザーに、他のユーザーのARN資格証明を有効にする権限を付与する場合は、paramsパラメータgrant_optionTRUEに設定します。

    たとえば:

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

    このコマンドを実行すると、adb_userには他のユーザーのARN資格証明を有効にする権限があります。

    たとえば、adb_userとして接続する場合、次のコマンドを実行できます:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user2'); 
    END;
    /
    

    詳細については、「ENABLE_PRINCIPAL_AUTHプロシージャ」を参照してください。

  2. CLOUD_INTEGRATIONSビューを問い合せて、Oracle AWSユーザーARNを取得します。
    SELECT param_value FROM CLOUD_INTEGRATIONS
            WHERE param_name = 'aws_user_arn';
    
    PARAM_VALUE
    --------------------------------------------  
    arn:aws:iam::account-ID:user/username

    ビューCLOUD_INTEGRATIONSは、ADMINユーザーまたはDWROLE権限を持つユーザーが使用できます。

    AWS管理者は、AWSシステムのロールおよびポリシーとのAWSロール信頼関係を構成する際に、aws_user_arn値を使用します。 この値を指定すると、DBMS_CLOUDでAWSリソースにアクセスするための権限がAWS側に付与されます。

DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTHを実行してAutonomous DatabaseインスタンスでARNを有効にした後、AWS$ARNという名前の資格証明は、資格証明を入力として使用するDBMS_CLOUD APIで使用できます。 AWS$ARNという名前の資格証明を除き、ARNパラメータを使用して追加の資格証明を作成し、AWSリソースにアクセスすることもできます。 詳細については、「AWSリソースにアクセスするためのARNパラメータによる資格証明の作成」を参照してください。

AWSリソースにアクセスするためのARNパラメータによる資格証明の作成

Autonomous Databaseインスタンスに対してARNの使用が有効になり、AWS管理者によってARNが構成されると、Autonomous Databaseで、ARNパラメータを使用して資格証明オブジェクトを作成できます。

Autonomous Databaseは、DBMS_CLOUDプロシージャおよびファンクションで資格証明オブジェクトを指定するときに、Amazonリソースへのアクセスに使用するプリンシパル資格証明を作成して保護します。

Autonomous DatabaseでAmazonリソースを使用するには、次の手順を実行します:

  1. paramsパラメータを指定したプロシージャDBMS_CLOUD.CREATE_CREDENTIALを使用して資格証明を作成し、ARN値を指定します。 たとえば:
    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;
    /

    この操作は、暗号化された形式でデータベースに資格証明を作成します。 資格証明名には任意の名前を使用できます。

    パラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  2. ARN資格証明を使用してAmazonリソースにアクセスするには、DBMS_CLOUDプロシージャを使用します。

    たとえば、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/');

AWSリソースのARNパラメータによる資格証明の更新

Autonomous Databaseで使用するARN資格証明はAWSトークン・サービスと連携し、一時ロール・ベースの資格証明を使用してAutonomous DatabaseからAWSリソースにアクセスできます。

AWS管理者がポリシー、ロールまたは信頼関係を取り消す場合、資格証明を更新するか、新しい資格証明を作成してAWSリソースにアクセスする必要があります。

資格証明を更新するには、次のステップを実行します:

  1. ARNベースの資格証明を更新して新しいARN値を指定するには、DBMS_CLOUD.UPDATE_CREDENTIALを使用します。
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    これにより、aws_role_arn属性がDEF_CRED_ARNという名前の資格証明の新しい値new_ARN_valueに更新されます。

  2. DBMS_CLOUD.UPDATE_CREDENTIALを使用して、ARNベースの資格証明を更新して属性external_id_type値を更新します。
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    これにより、external_id_type属性値が値compartment_ocidに更新されます。

詳細については、「UPDATE_CREDENTIALプロシージャ」「CREATE_CREDENTIALプロシージャ」を参照してください。