制限
インスタンス RAM ロールには、次の制限があります。
- インスタンス RAM ロールは、VPC に接続されたインスタンスにのみ適用可能です。
- ECS インスタンスは、一度に 1 つのRAM ロールに対してのみ権限付与されます。
- インスタンス RAM ロールが ECS インスタンスにアタッチされた後、ECS インスタンス内のアプリケーションから他のクラウドサービス (OSS、SLB、または ApsaraDB for RDS など) にアクセスする場合は、ECSインスタンスメタデータの概要を使用してインスタンス RAM ロールの権限付与認証情報を取得する必要があります。 詳細は、「オンデマンド権限付与の認証情報の取得」をご参照ください。
- RAM ユーザーアカウントでインスタンス RAM ロールを使用している場合は、プライマリユーザーアカウントを使用して、RAM ユーザーにインスタンス RAM ロールの使用権限を付与する必要があります。
前提条件
RAM ユーザーアカウントを使用している場合は、インスタンス RAM ロールの権限を付与する必要があります。 「有効化の方法」を参照し、RAM サービスを有効化します。
1. インスタンス RAM ロールの作成
- CreateRole ロールの作成 (CreateRole) を呼び出し、インスタンス RAM ロールを作成します。
- RoleName パラメーターを設定します。たとえば、EcsRamRoleDocumentTesting です。
- AssumeRolePolicyDocument を以下のように設定します。
"Statement": [ "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" } "Version": "1"
2. インスタンス RAM ロールの権限付与
- CreatePolicy を呼び出して 権限付与ポリシーの作成(CreatePolicy) 権限付与ポリシーを作成します。
- RoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTestingPolicy" に設定します。
- 次のように PolicyDocument を設定します。
"Statement": [ "Action": [ "oss:Get*", "oss:List*" "Effect": "Allow", "Resource": "*" "Version": "1"
- AttachPolicyToRole を呼び出し、ロールポリシーを承認します。
- PolicyType をカスタムに設定します。
- PolicyName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTestingPolicy" です。
- RoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。
インスタンス RAM ロールのアタッチ
- AttachInstanceRamRole を呼び出し、インスタンス RAM ロールを ECS インスタンスにアタッチします。
- RegionId パラメーターと InstanceIds パラメーターを設定して ECS インスタンスを 指定します。
- RamRoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。
4. (オプション) インスタンス RAM ロールのデタッチ
- DetachInstanceRamRole を呼び出し、インスタンス RAM ロールをデタッチします。
- RegionId パラメーターと InstanceIds パラメーターを設定して ECS インスタンスを指定します。
- RamRoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。
5. (オプション) オンデマンド権限付与認証情報の取得
ECS インスタンスの内部アプリケーションの場合は、インスタンスのメタデータであるインスタンス RAM ロールの STS 認証情報を取得して、ロールが権限付与されているアクセス許可とリソースにアクセスします。 認証情報は定期的に更新されます。 例
- たとえば、EcsRamRoleDocumentTesting など、インスタンス RAM ロールの STS 認証情報を取得します。
- Linux インスタンス:
curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting を実行します。
- Windows インスタンス: ECSインスタンスメタデータの概要を参照します。
- Linux インスタンス:
- 認証情報トークンを取得します。 リターン例
"AccessKeyId" : "XXXXXXXXX", "AccessKeySecret" : "XXXXXXXXX", "Expiration" : "2017-11-01T05:20:01Z", "SecurityToken" : "XXXXXXXXX", "LastUpdated" : "2017-10-31T23:20:01Z", "Code" : "Success"
6. (オプション) インスタンス RAM ロールを使用するための RAM ユーザーへの権限付与
注 インスタンス RAM ロール機能を使用するには RAMユーザーに PassRole 許可を付与する必要があります。
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 ユーザーが特定のアクションの権限を付与されていることを示します。 「権限付与ルール」をご参照ください。
参照
- 次のリンクをクリックして、コンソールでインスタンス RAM ロールを使用する方法を参照します。
- 他のクラウドサービスにアクセスする方法については、「インスタンス RAM ロールによる他のクラウドプロダクト API へのアクセス」をご参照ください。
- インスタンス RAM ロールに関連する API は以下が含まれます。
- CreateRole: インスタンス RAM ロールの作成
- ListRoles: インスタンス RAM ロールのリストの照会
- CreatePolicy: インスタンス RAM ロールポリシーの作成
- AttachPolicyToRole: インスタンス RAM ロールポリシーの権限付与
- AttachInstanceRamRole: インスタンスRAMロールのアタッチ
- DetachInstanceRamRole: インスタンスRAMロールのデタッチ
- DescribeInstanceRamRole: インスタンス RAM ロールの照会