すべてのプロダクト
Search
ドキュメントセンター

Tablestore:RAMポリシーを使用してRAMユーザーに権限を付与する

最終更新日:Dec 28, 2024

RAMユーザーとしてTablestoreのリソースにアクセスするには、事前にRAMユーザーに権限を付与する必要があります。Tablestore このトピックでは、RAMポリシーを使用して、Tablestoreリソースに対する権限をRAMユーザーに付与する方法について説明します。

背景情報

Alibaba Cloudでは、RAMとSecurity Token Service (STS)を使用して権限を管理できます。Tablestoreに対するさまざまな権限をRAMユーザーに付与したり、Tablestoreへのアクセスに使用できる一時的なアクセストークンを作成したりできます。RAMとSTSにより、権限管理がより柔軟かつ安全になります。

  • デフォルトでは、Tablestoreの以下のシステムポリシーがRAMに作成されます:AliyunOTSFullAccess、AliyunOTSReadOnlyAccess、およびAliyunOTSWriteOnlyAccess。ビジネス要件に基づいて、これらのシステムポリシーをRAMユーザーにアタッチできます。

  • よりきめ細かい権限管理を実行する場合は、カスタムポリシーを作成し、そのポリシーをRAMユーザーにアタッチできます。

  • RAMユーザーに一時的なアクセス許可を付与する場合は、STSトークンを使用できます。

システムポリシーを使用する

  1. RAMユーザーがない場合は、RAMユーザーを作成します。詳細については、RAMユーザーの作成を参照してください。

  2. RAMユーザーに権限を付与します。詳細については、RAMユーザーへの権限の付与を参照してください。

    • インスタンスの作成権限など、Tablestoreに対するすべての権限をRAMユーザーに付与するには、AliyunOTSFullAccessポリシーをRAMユーザーにアタッチします。

    • テーブルからデータを読み取る権限など、Tablestoreに対する読み取り専用権限をRAMユーザーに付与するには、AliyunOTSReadOnlyAccessポリシーをRAMユーザーにアタッチします。

    • テーブルを作成する権限など、Tablestoreに対する書き込み専用権限をRAMユーザーに付与するには、AliyunOTSWriteOnlyAccessポリシーをRAMユーザーにアタッチします。

カスタムポリシーを使用する

  1. RAMユーザーがない場合は、RAMユーザーを作成します。詳細については、RAMユーザーの作成を参照してください。

  2. カスタムポリシーを作成します。詳細については、カスタムポリシーの作成を参照してください。

    カスタムポリシーの設定方法の詳細については、カスタムポリシーの設定を参照してください。

  3. カスタムポリシーをRAMユーザーにアタッチします。詳細については、RAMユーザーへの権限の付与を参照してください。

STSトークンを使用する

  1. 一時的なロールを作成し、そのロールに権限を付与します。

    1. 信頼できるAlibaba CloudアカウントのRAMロールを作成します。詳細については、信頼できるAlibaba CloudアカウントのRAMロールの作成を参照してください。

      この例では、ramtestappreadonlyramtestappwriteという2つのロールが作成されます。ramtestappreadonlyはデータの読み取りに使用され、ramtestappwriteはファイルのアップロードに使用されます。

    2. カスタムポリシーを作成します。詳細については、カスタムポリシーの作成を参照してください。

      カスタムポリシーの設定方法の詳細については、カスタムポリシーの設定を参照してください。

      この例では、ram-test-app-readonlyram-test-app-writeという2つのポリシーが作成されます。

      • ram-test-app-readonly

        {
            "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                  "ots:BatchGet*", // バッチ取得を許可
                  "ots:Describe*", // 記述を許可
                  "ots:Get*",      // 取得を許可
                  "ots:List*"      // 一覧表示を許可
                ],
                "Resource": [
                  "acs:ots:*:*:instance/ram-test-app",
                  "acs:ots:*:*:instance/ram-test-app/table*"
                ]
            }
            ],
            "Version": "1"
        }                       
      • ram-test-app-write

        {
            "Statement": [
            {
                 "Effect": "Allow",
                 "Action": [
                    "ots:Create*",    // 作成を許可
                    "ots:Insert*",    // 挿入を許可
                    "ots:Put*",       // 配置を許可
                    "ots:Update*",    // 更新を許可
                    "ots:Delete*",    // 削除を許可
                    "ots:BatchWrite*" // バッチ書き込みを許可
                 ],
                 "Resource": [
                    "acs:ots:*:*:instance/ram-test-app",
                    "acs:ots:*:*:instance/ram-test-app/table*"
                 ]
            }
            ],
            "Version": "1"
        }                        
    3. 一時的なロールに権限を付与します。詳細については、RAMロールへの権限の付与を参照してください。

      この例では、ram-test-app-readonlyポリシーをramtestappreadonlyロールにアタッチして、Tablestoreに対する読み取り専用権限を付与し、ram-test-app-writeポリシーをramtestappwriteロールにアタッチして、Tablestoreに対する書き込み専用権限を付与します。

      権限を付与した後、次の図に示すように、ロールのARNを記録します。RAMユーザーは、ARNに基づいてロールを引き受けます。fig_arn

  2. 一時的なアクセス許可を付与します。

    1. RAMユーザーがない場合は、RAMユーザーを作成します。詳細については、RAMユーザーの作成を参照してください。

    2. カスタムポリシーを作成します。詳細については、カスタムポリシーの作成を参照してください。

      カスタムポリシーの設定方法の詳細については、カスタムポリシーの設定を参照してください。

      この例では、AliyunSTSAssumeRolePolicy2016011401AliyunSTSAssumeRolePolicy2016011402という2つのポリシーが作成されます。Resourceは一時的なロールのARNを示します。

      • AliyunSTSAssumeRolePolicy2016011401

        {
            "Version": "1",
            "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole", // ロール引き受けを許可
                "Resource": "acs:ram:198***237:role/ramtestappreadonly"
            }
            ]
        }                               
      • AliyunSTSAssumeRolePolicy2016011402

        {
            "Version": "1",
            "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole", // ロール引き受けを許可
                "Resource": "acs:ram:198***237:role/ramtestappwrite"
            }
            ]
        }                                
    3. RAMユーザーが一時的なロールを引き受けることを許可することで、RAMユーザーに権限を付与します。詳細については、RAMユーザーへの権限の付与を参照してください。

      この例では、AliyunSTSAssumeRolePolicy2016011401ポリシーとAliyunSTSAssumeRolePolicy2016011402ポリシーが、ram_test_appという名前のRAMユーザーにアタッチされます。

  3. RAMロールを引き受けるためのSTSトークンを取得します。詳細については、AssumeRoleを参照してください。

  4. 一時的な権限を使用してデータの読み取りと書き込みを行います。

    一時的な権限を使用して、さまざまなプログラミング言語のTablestore SDKを呼び出し、Tablestoreにアクセスできます。次の例は、Tablestore SDK for Javaを使用してOTSClientオブジェクトを作成し、STSから取得したパラメーター(AccessKey ID、AccessKeyシークレット、STSトークンなど)を渡す方法を示しています。

    OTSClient client = new OTSClient(otsEndpoint, stsAccessKeyId, stsAccessKeySecret, instanceName, stsToken);           // STSから取得したパラメータを使用してOTSClientオブジェクトを作成