制限
インスタンス RAM ロールには、次の制限があります。
- インスタンス RAM ロールは、VPC 接続インスタンスにのみ適用可能です。
- ECS インスタンスは、一度に 1 つのインスタンス RAM ロールに対してのみ権限付与されます。
- インスタンス RAM ロールを ECS インスタンスにバインドした後、ECS インスタンス内のアプリケーションから他のクラウドサービス (OSS、SLB、または ApsaraDB for RDS など) にアクセスする場合は、メタデータ を使ってインスタンス RAM ロールの権限付与の認証情報を取得する必要があります。 詳細は、「権限付与の認証情報を取得」をご参照ください。
- RAM ユーザーアカウントでインスタンス RAM ロールを使用している場合は、プライマリユーザーアカウントを使用して、RAM ユーザーにインスタンス RAM ロールを使用する権限を付与する必要があります。
前提条件
RAM サービスを有効化しておく必要があります。 有効化の方法を参照して、RAM サービスを有効化します。
1. インスタンス RAM ロールの作成
- RAM コンソールにログインします。
- 左側のナビゲーションウィンドウで、[ロール] をクリックします。
- [ロールの作成] をクリックします。
- ダイアログボックスで、
- [ロールタイプ] で [サービスロール] を選択します。
- [タイプ] で [Elastic Compute Service (ECS)] を選択します。
- たとえば、「EcsRamRoleDocumentTesting」のように、ロール名と説明を入力します。
- [作成] をクリックします。
2. インスタンス RAM ロールの権限付与
- RAM コンソールにログインします。
- 左側のナビゲーションウィンドウで、[ポリシー] をクリックします。
- [権限付与ポリシーの作成] をクリックします。
- ダイアログボックスで、
- [権限付与ポリシーテンプレート] で [空白のテンプレート] を選択します。
- 権限付与ポリシー名とポリシーコンテンツを入力します。 この例では、" EcsRamRoleDocumentTestingPolicy " です。
- [権限付与ポリシーの作成] をクリックします。
- 左側のナビゲーションウィンドウで、[ロール] をクリックします。
- たとえば、EcsRamRoleDocumentTesting のロールを選択し、[権限付与] をクリックします。
- [権限付与ポリシー名] を入力して、ドロップダウンメニューから選択します。 この例では、EcsRamRoleDocumentTestingPolicy が選択されています。
-
[>] アイコンからポリシー名を選択し、[OK] をクリックします。
3. インスタンス RAM ロールのバインド
- ECS コンソールにログインします。
- 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
- 対象のリージョンを選択します。
- 対象の ECS インスタンスを検索し、 の順に選択します。
- "操作" から [バインド] を選択し、ロール (たとえば、EcsRamRoleDocumentTesting) を選択して [OK] をクリックします。
4. (オプション) インスタンス RAM ロールのバインド解除
- ECS コンソールにログインします。
- 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
- 対象のリージョンを選択します。
- 対象の ECS インスタンスを検索、 の順に選択します。
- "操作" から [バインド解除] を選択し、[OK] をクリックします。
5. (オプション) インスタンス RAM のロールの置き換え
- ECS コンソールにログインします。
- 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
- 対象のリージョンを選択します。
- 対象の ECS インスタンスを検索し、 の順に選択します。
- "操作" から [バインド] を選択し、[RAM ロール] のリストで別のインスタンス RAM ロールを選択してから [OK] をクリックします。
6. (オプション) 権限付与の認証情報の取得
ECS インスタンスの内部アプリケーションにアクセスするには、(インスタンスのメタデータの一部である) インスタンス RAM ロールの STS 認証情報を取得して、ロールが権限付与されているアクセス許可とリソースにアクセスします。 認証情報は定期的に更新されます。 STS によってインスタンスにアクセスするには、次の手順を実行します。
- ターゲット ECS インスタンスに接続します。
- インスタンス RAM ロールの STS 資格情報を取得します。 この例では、EcsRamRoleDocumentTesting です。
- Linux インスタンスの場合:
curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting
を実行します。 - Windows インスタンスの場合: 「メタデータ」をご参照ください。
- Linux インスタンスの場合:
- 認証情報を取得します。 戻り値の例は次のとおりです。
{ "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 ユーザーの特定の操作が許可されていることを示します。 詳細は、「権限付与ルール」をご参照ください。
参照
- 次のリンクをクリックして、API を呼び出してインスタンス RAM ロールを使用する方法を確認します。
- 次のリンクをクリックして、インスタンス RAM ロールを使用して、他のクラウドプロダクトにアクセスする方法を参照します。