SLR とは
サービスリンクロール (SLR) は、Alibaba Cloud サービスに直接リンクされた、特殊なタイプの Resource Access Management (RAM) ロールです。このロールを Alibaba Cloud サービスが引き受ける (assume) ことで、ユーザーに代わって他のサービスで操作を実行できます。
SLR の信頼ポリシーは事前定義されており、リンクされたクラウドサービスのみがそのロールを引き受けることを許可します。RAM ユーザーや他のロールなど、他のプリンシパルは SLR を引き受けることはできません。
SLR のアクセスポリシーもクラウドサービスによって事前定義されています。ポリシーを変更したり、追加のポリシーをアタッチしたりすることはできません。これにより、サービスが機能するために必要な権限のみを持つことが保証されます (最小権限の原則 (PoLP))。
SLR を使用する理由
SLR は、Alibaba Cloud サービスに権限を付与するプロセスを簡素化します。手動で RAM ロールを作成・管理する必要はありません。SLR には、いくつかの利点があります:
セットアップの簡素化: SLR を使用するサービスは、RAM ロールの作成と権限設定を代行します。例えば、Cloud Config を有効にすると、Elastic Compute Service (ECS) インスタンスや ApsaraDB RDS データベースなどのリソースへの必要な読み取りアクセス権を付与する SLR が自動的に作成されます。手動で RAM ロールを作成したり、ポリシーを作成したりする必要はありません。
セキュリティの向上: SLR のアクセスポリシーは事前定義されており変更できないため、クラウドサービスは意図された目的を超えた操作を実行できません。また、ロックされた信頼ポリシーにより、他のプリンシパルによる SLR の不正使用も防止されます。
仕組み
次の例は、Cloud Config が SLR を使用する方法を示しています:
Cloud Config を有効化すると、サービスはお客様のアカウントにその SLR である
AliyunServiceRoleForConfigを作成します。信頼ポリシー:
config.aliyuncs.comのみがロールを引き受けることを許可し、Cloud Config のみが使用できるようにします。アクセスポリシー: ECS や ApsaraDB RDS などの Alibaba Cloud サービスのリソースにアクセスする権限を付与します。
サービスが SLR を引き受けます。 Cloud Config (サービスプリンシパル
config.aliyuncs.comとして機能) は、この SLR を引き受けて一時的な認証情報を取得します。サービスが操作を実行します。 SLR の認証情報を使用して、Cloud Config は ECS や ApsaraDB RDS などのサービスに対して読み取り専用の API 呼び出しを行い、構成データを取得してコンプライアンスレポートを生成します。
このようにして、Cloud Config は、複雑なアクセスポリシーを手動で設定することなく、安全かつ簡単に他のサービスにアクセスできます。
サービスロールとの比較
SLR とサービスロールはどちらもクラウドサービスによって引き受けられますが、作成、管理、カスタマイズの方法が異なります。
項目 | SLR | サービスロール |
作成 | ほとんどの場合、リンクされたサービスによって自動的に作成されます。 | 通常、管理者によって手動で作成されます。 |
メンテナンス | リンクされたサービスによって管理されます。ロールやそのポリシーを変更することはできません。 | 管理者によって管理されます。ロールとそのポリシーを変更できます。 |
削除 | リンクされたサービス内のすべての依存リソースが削除された後にのみ削除できます。 | 管理者によっていつでも削除できます。 |
アクセスポリシー | サービスによって事前定義されており、変更することはできません。 | ユーザー定義です。必要に応じてポリシーをアタッチおよびデタッチできます。 |
信頼ポリシー | リンクされたサービスのみを信頼するように事前定義されており、変更することはできません。 | ユーザー定義です。どのプリンシパル (サービスを含む) がロールを引き受けることができるかを指定できます。 |
多くの Alibaba Cloud サービスは、SLR を使用してユーザーに代わって他のサービスと対話します。SLR と連携するサービスの完全なリストについては、「サービスリンクロールと連携するサービス」をご参照ください。
SLR の管理
このセクションでは、SLR の管理に必要な権限と、SLR の作成および削除の手順について説明します。
SLR の作成または削除のみが可能です。SLR の名前、アクセスポリシー、または信頼ポリシーを変更することはできません。
RAM ユーザーが SLR を作成および削除するには、それぞれ ram:CreateServiceLinkedRole および ram:DeleteServiceLinkedRole 権限が必要です。これらの権限は通常、対応するサービスのフルアクセスシステムポリシー (例:AliyunResourceDirectoryFullAccess) に含まれています。
または、カスタムポリシーを作成して、特定のサービスの SLR を管理する権限を付与することもできます。次のポリシーでは、RAM ユーザーが Resource Management サービスの SLR のみを作成および削除できます。ram:ServiceName の値については、「サービスリンクロールと連携するサービス」の「サービス識別子」列をご参照ください。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceLinkedRole",
"ram:DeleteServiceLinkedRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "resourcemanager.aliyuncs.com"
}
}
}
]
}SLR の作成
自動作成: ほとんどの場合、リンクされたサービスは、それを必要とする機能を初めて使用するときに、自動的に SLR を作成します。これは、サービスを有効にしたり、リソースを作成したり、サービスのコンソールで別のアクションを実行したりするときに発生する可能性があります。
手動作成: SLR が自動的に作成されなかった場合は、RAM コンソール、API、または CLI を通じて手動で作成できます。手順については、「SLR の作成」をご参照ください。
SLR はアカウントのロールクォータにカウントされますが、クォータに達してもその作成はブロックされません。ただし、既存のロールが削除されるまで、他のすべてのロールタイプの作成はブロックされます。詳細については、「制限事項」をご参照ください。
SLR の削除
自動削除: 一部のサービスでは、サービスを無効にしたり、関連するすべてのリソースを削除したりすると、SLR が自動的に削除される場合があります。
手動削除: RAM コンソール、API、または CLI を使用して、SLR を手動で削除できます。SLR を削除しようとすると、RAM はそれがまだ使用中であるかどうかを確認します。
ロールが使用中でない場合、削除は成功します。
ロールが使用中の場合、削除は失敗し、どのリソースがまだロールを使用しているかを示すエラーメッセージが表示されます。SLR を削除する前に、これらの依存リソースを削除する必要があります。各サービスの具体的なクリーンアップ手順については、そのサービスのドキュメントをご参照ください。
SLR を削除すると、リンクされたサービスが正しく機能しなくなる可能性があります。SLR を削除する前に、そのサービスが提供する機能が不要であることを確認してください。
SLRの仮定
リンクされたクラウドサービスのみがその SLR を引き受けることができます。 ユーザーや他のロールとして、コンソールから、または AssumeRole を呼び出して SLR を直接引き受けることはできません。
信頼できるサービスの表示
SLR の信頼ポリシーを調べることで、信頼できるサービスプリンシパルを表示できます。RAM コンソールで、ロールの詳細ページに移動し、[信頼ポリシー] タブを選択します。Principal 要素の Service フィールドは、SLR を引き受けることが許可されているサービスを識別します。

ActionTrail を使用した SLR の監視
ActionTrail ログを確認することで、SLR の作成、削除、および使用状況を追跡できます。
SLR ライフサイクルおよび前提条件の監査
SLR がいつ作成、削除、または引き受けられたかを追跡するには、ActionTrail コンソールで次のイベント名を検索します:
CreateServiceLinkedRole: SLR の作成を記録します。DeleteServiceLinkedRole: SLR の削除を記録します。AssumeRole: サービスが SLR を引き受けた時点を記録します。イベント詳細では、userIdentity.principalIdフィールドにサービスプリンシパル (例:tag.aliyuncs.com) が表示され、requestParameters.RoleArnフィールドに引き受けられた SLR の ARN が表示されます。{ ... "requestParameters": { ... "RoleArn": "acs:ram::ACCOUNT_ID:role/aliyunservicerolefortag", "RoleSessionName": "tag_operate", }, ... "userIdentity": { ... "principalId": "tag.aliyuncs.com", "userName": "tag.aliyuncs.com" }, "eventName": "AssumeRole" }
SLR アクティビティの監査
SLR が引き受けられた後に実行された操作を確認するには、[オペレーター] フィルターで SLR 名を検索します。
よくある質問
SLR のアクセスポリシーの範囲が広すぎると感じます。これはセキュリティリスクですか?
いいえ。SLR はセキュリティを考慮して設計されています:
アクセスポリシーは、サービスが機能するために必要な権限のみを含むようにサービスチームによって作成されています。
信頼ポリシーはロックされており、特定のリンクされたサービスのみがロールを引き受けることを許可します。
特定の SLR の権限について懸念がある場合は、そのサービスのドキュメントを参照するか、サポートにお問い合わせください。
SLR を削除できないのはなぜですか?
SLR がリンクされたサービス内のリソースにまだ関連付けられている場合、SLR を削除することはできません。削除は失敗し、依存リソースをリストアップしたエラーメッセージが表示されます。ロールを削除する前に、まずそれらのリソースを削除する必要があります。詳細については、本トピックの「SLR の削除」セクションをご参照ください。