制限

インスタンス RAM ロールには、次の制限があります。

  • インスタンス RAM ロールは、VPC 接続インスタンスにのみ適用可能です。
  • ECS インスタンスは、一度に 1 つのインスタンス RAM ロールに対してのみ権限付与されます。
  • インスタンス RAM ロールを ECS インスタンスにバインドした後、ECS インスタンス内のアプリケーションから他のクラウドサービス (OSS、SLB、または ApsaraDB for RDS など) にアクセスする場合は、メタデータ を使ってインスタンス RAM ロールの権限付与の認証情報を取得する必要があります。 詳細は、「権限付与の認証情報を取得」をご参照ください。
  • RAM ユーザーアカウントでインスタンス RAM ロールを使用している場合は、プライマリユーザーアカウントを使用して、RAM ユーザーにインスタンス RAM ロールを使用する権限を付与する必要があります。

前提条件

RAM サービスを有効化しておく必要があります。 有効化の方法を参照して、RAM サービスを有効化します。

1. インスタンス RAM ロールの作成

  1. RAM コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[ロール] をクリックします。
  3. [ロールの作成] をクリックします。
  4. ダイアログボックスで、
    1. [ロールタイプ][サービスロール] を選択します。
    2. [タイプ][Elastic Compute Service (ECS)] を選択します。
    3. たとえば、「EcsRamRoleDocumentTesting」のように、ロール名と説明を入力します。

    4. [作成] をクリックします。

2. インスタンス RAM ロールの権限付与

  1. RAM コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[ポリシー] をクリックします。
  3. [権限付与ポリシーの作成] をクリックします。
  4. ダイアログボックスで、
    1. [権限付与ポリシーテンプレート][空白のテンプレート] を選択します。
    2. 権限付与ポリシー名ポリシーコンテンツを入力します。 この例では、" EcsRamRoleDocumentTestingPolicy " です。
      権限付与ポリシーを JSON 形式で記述する方法については、「ポリシー構文構造」をご参照ください。

    3. [権限付与ポリシーの作成] をクリックします。
  5. 左側のナビゲーションウィンドウで、[ロール] をクリックします。
  6. たとえば、EcsRamRoleDocumentTesting のロールを選択し、[権限付与] をクリックします。
  7. [権限付与ポリシー名] を入力して、ドロップダウンメニューから選択します。 この例では、EcsRamRoleDocumentTestingPolicy が選択されています。
  8. [>] アイコンからポリシー名を選択し、[OK] をクリックします。



3. インスタンス RAM ロールのバインド

  1. ECS コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
  3. 対象のリージョンを選択します。
  4. 対象の ECS インスタンスを検索し、[詳細] > [インスタンス設定] > [RAM ロールのバインド/バインド解除] の順に選択します。
  5. "操作" から [バインド] を選択し、ロール (たとえば、EcsRamRoleDocumentTesting) を選択して [OK] をクリックします。

4. (オプション) インスタンス RAM ロールのバインド解除

  1. ECS コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
  3. 対象のリージョンを選択します。
  4. 対象の ECS インスタンスを検索、[詳細] > [インスタンス設定] > [RAM ロールのバインド/バインド解除] の順に選択します。
  5. "操作" から [バインド解除] を選択し、[OK] をクリックします。

5. (オプション) インスタンス RAM のロールの置き換え

  1. ECS コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
  3. 対象のリージョンを選択します。
  4. 対象の ECS インスタンスを検索し、[詳細] > [インスタンス設定] > R[AM ロールのバインド/バインド解除] の順に選択します。
  5. "操作" から [バインド] を選択し、[RAM ロール] のリストで別のインスタンス RAM ロールを選択してから [OK] をクリックします。

6. (オプション) 権限付与の認証情報の取得

ECS インスタンスの内部アプリケーションにアクセスするには、(インスタンスのメタデータの一部である) インスタンス RAM ロールの STS 認証情報を取得して、ロールが権限付与されているアクセス許可とリソースにアクセスします。 認証情報は定期的に更新されます。 STS によってインスタンスにアクセスするには、次の手順を実行します。

  1. ターゲット ECS インスタンスに接続します。
  2. インスタンス RAM ロールの STS 資格情報を取得します。 この例では、EcsRamRoleDocumentTesting です。
    • Linux インスタンスの場合: curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting を実行します。
    • Windows インスタンスの場合: 「メタデータ」をご参照ください。
  3. 認証情報を取得します。 戻り値の例は次のとおりです。
    
    {
    "AccessKeyId" : "XXXXXXXXX",
    "AccessKeySecret" : "XXXXXXXXX",
    "Expiration" : "2017-11-01T05:20:01Z",
    "SecurityToken" : "XXXXXXXXX",
    "LastUpdated" : "2017-10-31T23:20:01Z",
    "Code" : "Success"
    }

7. (オプション) RAM ユーザーへのインスタンス RAM ロールの使用権限付与

インスタンス RAM ロール機能を使用するための PassRole 許可を RAM ユーザーに与える必要があります。 PassRole 許可がなければ、RAM ユーザーは、付加されている権限付与ポリシーの権限を実行できません。

RAM コンソールにログインし、RAM ユーザーへの権限付与によって対象の RAM ユーザーに権限を付与をします。 以下は権限付与ポリシーの例です。

{
        "Version": "2016-10-17",
        "Statement": [
            {
            "Effect": "Allow",
            "Action": [
                "ecs: [ECS RAM Action]",
                "ecs: CreateInstance",
                "ecs: AttachInstanceRamRole",
                "ecs: DetachInstanceRAMRole"
            ],
            "Resource": "*"
            },
            {
        "Effect": "Allow",
        "Action": "ram:PassRole",
        "Resource": "*"
            }
        ]
}

ECS RAM Action パラメーターは、RAM ユーザーの特定の操作が許可されていることを示します。 詳細は、「権限付与ルール」をご参照ください。

参照