Erstellen S2S, um IBM Cloud Activity Tracker Event Routing Zugriff zu gewähren, um Daten an IBM Cloud Logs zu senden
Verwenden Sie IBM Cloud® Identity and Access Management (IAM), um eine Autorisierung zu erstellen, die IBM Cloud Activity Tracker Event Routing Zugriff auf IBM Cloud Logs gewährt.
Sie müssen die Service-to-Service-Autorisierung S2S ) IBM Cloud konfigurieren, in dem sich IBM Cloud Logs befindet.
Vorbereitende Schritte
-
Lesen Sie mehr über die Verwaltung von Berechtigungen zur Gewährung des Zugriffs zwischen Diensten.
-
Sie müssen Zugriff auf den Zieldienst haben, um die Autorisierung zwischen den Diensten zu verwalten. Weitere Informationen finden Sie unter Berechtigungen zum Verwalten von Berechtigungen.
-
Die Autorisierung, die Sie für IBM Cloud Activity Tracker Event Routing definieren, erfordert, dass Sie über die Rolle
Administratorfür IBM Cloud Logs verfügen. -
Stellen Sie sicher, dass Sie die Autorisierung in dem Konto definieren, in dem sich IBM Cloud Logs befindet.
-
Wenn Sie eine Autorisierung zwischen einem Service in einem anderen Konto und einem Zielservice in Ihrem aktuellen Konto erstellen, ist nur der Zugriff auf die Zielressource erforderlich. Für das Quellkonto benötigen Sie nur die Konto-ID.
Servicezugriffsrollen
Sie müssen Sender die Rolle erteilen, Berechtigungen zum Senden von Daten an IBM Cloud Logs zu erteilen.
Erstellen einer Autorisierung über die Konsole
Führen Sie die folgenden Schritte aus:
-
Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Autorisierungen aus.
-
Klicken Sie auf Erstellen.
-
Wählen Sie ein Quellenkonto aus.
Wenn sich IBM Cloud Activity Tracker Event Routing und IBM Cloud Logs im selben Konto befinden, in dem Sie die Autorisierung definieren, wählen Sie "Dieses Konto" aus.
Wenn sich IBM Cloud Activity Tracker Event Routing und IBM Cloud Logs in verschiedenen Konten befinden, wählen Sie "Anderes Konto" aus. Geben Sie dann die Konto-ID des Quellkontos ein, d. h. das Konto, in dem IBM Cloud Activity Tracker Event Routing so konfiguriert werden soll, dass Daten an IBM Cloud Logs gesendet werden.
-
Wählen Sie
Activity Tracker Event Routingals Quelldienst aus. Legen Sie dann den Umfang des Zugriffs auf alle Ressourcen fest. -
Wählen Sie Cloud Logs als Zieldienst aus. Legen Sie dann den Umfang des Zugriffs fest.
Um Zugriff auf alle Instanzen und Ressourcen im Konto zu gewähren, wählen Sie "Alle Ressourcen" aus.
Um Zugriff auf eine bestimmte Instanz zu gewähren, wählen Sie eine einzelne Instanz aus, indem Sie Ressourcen basierend auf ausgewählten Attributen > Service-Instanz konfigurieren.
-
Wählen Sie im Abschnitt "Servicezugriff" die Option "Absender" aus, um IBM Cloud Activity Tracker Event Routing Zugriff auf den Bucket zu gewähren.
-
Klicken Sie auf Autorisieren.
Autorisierung über die Befehlszeilenschnittstelle (CLI) erstellen
Führen Sie den folgenden Befehl aus, um eine Autorisierung für IBM Cloud Activity Tracker Event Routing zu erstellen.
ibmcloud iam authorization-policy-create atracker logs "Sender" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID]
Hier können Sie die folgenden Parameter einstellen, um Zugriff auf einen einzelnen Bucket zu gewähren:
TARGET_SERVICE_INSTANCE_ID: ID IBM Cloud Logs.
Weitere Informationen zu allen Parametern, die für diesen Befehl verfügbar sind, finden Sie unter ibmcloud iam authorization-policy-create.
Erstellen eines Berechtigungskontenkreuzes mit Hilfe der CLI
Führen Sie den folgenden Befehl aus, um eine Autorisierung in dem Konto zu erstellen, in dem sich der Zieldienst befindet, wenn sich IBM Cloud Activity Tracker Event Routing und der Zieldienst in verschiedenen Konten befinden:
ibmcloud iam authorization-policy-create atracker cloud-object-storage "Object Writer" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID] [--source-service-account SOURCE_SERVICE_ACCOUNT_GUID ]
Hier können Sie die folgenden Parameter einstellen, um Zugriff auf einen einzelnen Bucket zu gewähren:
TARGET_SERVICE_INSTANCE_NAME: CRN IBM Cloud Logs.SOURCE_SERVICE_ACCOUNT_GUID: Legen Sie die Kontonummer fest, bei der IBM Cloud Activity Tracker Event Routing so konfiguriert ist, dass Daten an den Zieldienst gesendet werden. Verwenden Sie diese Option nur, wenn der Quelldienst von einem anderen Konto stammt.
Weitere Informationen zu allen Parametern, die für diesen Befehl verfügbar sind, finden Sie unter ibmcloud iam authorization-policy-create.
Autorisierung mit Terraform erstellen
Bevor Sie eine Autorisierung mit Terraform erstellen können, stellen Sie sicher, dass Sie Folgendes abgeschlossen haben:
- Installieren Sie Terraform CLI und konfigurieren Sie IBM Cloud. Weitere Informationen finden Sie im Tutorial "Erste Schritte mit Terraform" auf IBM Cloud. Das Plug-in abstrahiert die IBM Cloud APIs, die zur Erfüllung dieses Tasks verwendet werden.
- Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen
main.tf. In dieser Datei definieren Sie Ressourcen mithilfe HashiCorp. Weitere Informationen finden Sie in der Terraform-Dokumentation.
Verwenden Sie die folgenden Schritte, um eine Autorisierung mit Terraform zu erstellen:
-
Erstellen Sie eine Autorisierungsrichtlinie zwischen Diensten, indem Sie das Ressourcenargument
ibm_iam_authorization_policyin Ihrermain.tf-Datei verwenden.Das folgende Beispiel erstellt eine Autorisierung zwischen zwei Diensten:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "atracker" target_service_name = "logs" roles = ["Sender"] description = "Authorization Policy" transaction_id = "terraformAuthorizationPolicy" }Das folgende Beispiel erstellt eine Autorisierung zwischen zwei bestimmten Dienstinstanzen:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "atracker" source_resource_instance_id = ibm_resource_instance.instance1.guid target_service_name = "logs" target_resource_instance_id = ibm_resource_instance.instance2.guid roles = ["Sender"] }Die Ressource
ibm_iam_authorization_policyerfordert den Quelldienst, den Zieldienst und die Rolle. Der Quelldienst erhält Zugriff auf den Zieldienst, und die Rolle ist die Berechtigungsstufe, die der Zugriff zulässt. Optional können Sie eine Beschreibung für die Autorisierung und eine Transaktions-ID hinzufügen.-
Sie können eine
target_resource_instance_idzur Verfügung stellen, um eine IBM Cloud Logs Zielinstanz zu erfassen. -
Weitere Beispiele finden Sie in der Terraform-Dokumentation für Autorisierungsressourcen.
-
-
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter "Initialisierung von Arbeitsverzeichnissen ".
terraform init -
Stellen Sie die Ressourcen aus der Datei
main.tfbereit. Weitere Informationen finden Sie unter "Provisioning Infrastructure with Terraform ".-
Rufen Sie
terraform planauf, um einen Terraform-Ausführungsplan zu erstellen und eine Vorschau der vorgeschlagenen Aktionen anzuzeigen.terraform plan -
Rufen Sie
terraform applyauf, um die im Plan definierten Ressourcen zu erstellen.terraform apply
-
Autorisierung mithilfe der API erstellen
Verwenden Sie die IAM-Richtlinienmanagement-API, um einen Quellenservice für den Zugriff auf einen Zielservice zu berechtigen. Sehen Sie sich das folgende API-Beispiel an, um eine Richtlinienmethode
mit der type=authorization zu erstellen, die für einen cloud-object-storage-Bucket als Ziel angegeben ist.
Die unterstützten Attribute zum Erstellen einer Berechtigungsrichtlinie hängen davon ab, was der einzelne Service unterstützt.
curl --request POST \
--url https://iam.cloud.ibm.com/v1/policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "<account-id>"
},
{
"name": "serviceName",
"value": "atracker"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Sender"
}
],
"resources": [
{
"attributes": [
{
"name": "serviceName",
"value": "logs"
},
{
"name": "serviceInstance",
"value": "$CLOUD_LOGS_INSTANCE_ID",
"operator": "stringEquals"
}
]
}
]
}'