制限

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

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

前提条件

RAM ユーザーアカウントを使用している場合は、インスタンス RAM ロールの権限を付与する必要があります。 「有効化の方法」を参照し、RAM サービスを有効化します。

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

  1. CreateRole ロールの作成 (CreateRole) を呼び出し、インスタンス RAM ロールを作成します。
  2. RoleName パラメーターを設定します。たとえば、EcsRamRoleDocumentTesting です。
  3. AssumeRolePolicyDocument を以下のように設定します。
    "Statement": [
    
    "Action": "sts:AssumeRole",
    "Effect": "Allow",
    "Principal": {
    "Service": [
    "ecs.aliyuncs.com"
    
    }
    
    
    "Version": "1"

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

  1. CreatePolicy を呼び出して 権限付与ポリシーの作成(CreatePolicy) 権限付与ポリシーを作成します。
  2. RoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTestingPolicy" に設定します。
  3. 次のように PolicyDocument を設定します。
    "Statement": [
    
    "Action": [
    "oss:Get*",
    "oss:List*"
    
    "Effect": "Allow",
    "Resource": "*"
    
    
    "Version": "1"
  4. AttachPolicyToRole を呼び出し、ロールポリシーを承認します。
  5. PolicyType をカスタムに設定します。
  6. PolicyName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTestingPolicy" です。
  7. RoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。

インスタンス RAM ロールのアタッチ

  1. AttachInstanceRamRole を呼び出し、インスタンス RAM ロールを ECS インスタンスにアタッチします。
  2. RegionId パラメーターと InstanceIds パラメーターを設定して ECS インスタンスを 指定します。
  3. RamRoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。

4. (オプション) インスタンス RAM ロールのデタッチ

  1. DetachInstanceRamRole を呼び出し、インスタンス RAM ロールをデタッチします。
  2. RegionId パラメーターと InstanceIds パラメーターを設定して ECS インスタンスを指定します。
  3. RamRoleName パラメーターを設定します。たとえば、"EcsRamRoleDocumentTesting" です。

5. (オプション) オンデマンド権限付与認証情報の取得

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

  1. たとえば、EcsRamRoleDocumentTesting など、インスタンス RAM ロールの STS 認証情報を取得します。
    • Linux インスタンス: curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting を実行します。
    • Windows インスタンス: メタデータを参照します。
  2. 認証情報トークンを取得します。 リターン例
    "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 ユーザーが特定のアクションの権限を付与されていることを示します。 「権限付与ルール」をご参照ください。

参照